MacPorts Apache2在启动时停止启动
最近我在两台不同的机器上注意到的事情是,通过MacPorts安装的Apache2似乎在启动时停止启动。 诚实的事实是我以前不能发誓,但是我认为我会注意到,因为安装LaunchDaemon是我安装过程的一部分。 事实上,如果我尝试重新加载LaunchDaemon,它会失败:
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
org.macports.apache2: Already loaded
除非我手动启动Apache(使用sudo apachectl restart
),否则在我的进程列表中grep'ing“apache2”或“httpd”只会产生如下结果:
$ sudo ps -ef | egrep "apache2|httpd"
0 52 1 0 0:00.06 ?? 0:00.08 /opt/local/bin/daemondo --label=apache2 --start-cmd /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper start ; --stop-cmd /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper stop ; --restart-cmd /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper restart ; --pid=none
1410639199 6960 6792 0 0:00.00 ttys001 0:00.00 egrep apache2 | httpd
看起来守护进程本身就位,但没有可执行文件。 据我所知/可以告诉,相关的可执行文件(httpd和apachectl)可以由每个人执行。
有没有其他人注意到这一点? 有任何想法吗?
UPDATE
按照下面的要求,我确实执行了launchctl list
。 该列表很长,我不知道如何org.macports.*
它,但足以说没有org.macports.*
项目被列出。 这本身很有趣,因为我的MySQL守护进程以相同的方式加载。 它可以工作,但也不会出现在列表中。 让我知道是否真的需要整个输出。
UPDATE
我认为我已经执行sudo下的launchctl list
,但是由于launchctl list
的评论如下,我再次尝试确保我这样做了,但我错误地假设了。 在sudo下执行时,出现MacPorts项目:
51 - org.macports.mysql5
52 - org.macports.apache2
我不确定这是否会有所帮助,但还是有更多信息。
UPDATE
我在LaunchDaemons和Environment Variables上提出了一个不同但相关的问题。 随着我学习更多,我会更新这两个问题。
UPDATE
今天,基于邮件列表输入,我尝试使用通配符主目录。 在学术上,它比我想要的更具包容性,但实际情况是我是唯一使用这台计算机的人; 当然是唯一一个有Apache配置文件的人。
Include "/Users/*/Dropbox/Application Support/apache/conf.d.osx/*.conf"
Include "/Users/*/Library/Application Support/MacPorts/apache/conf.d/*.conf"
不幸...
httpd: Syntax error on line 512 of /opt/local/apache2/conf/httpd.conf: Wildcard patterns not allowed in Include /Users/*/Dropbox/Application Support/apache/conf.d.osx/*.conf
我在这里找到了我对这个问题的答案:
https://trac.macports.org/ticket/36101
“我在更改我的本地dnsmasq配置时显然修复了这个问题。在/ etc / hosts中,我将我的servername(gala)添加到了loopback条目中:
127.0.0.1 localhost gala
然后我更改/opt/local/apache2/conf/httpd.conf中的ServerName以匹配:
ServerName gala
Apache现在开始为我启动。“
由于我现在知道Apache为什么在启动时停止加载,因此我将阐明该答案并将此问题标记为已回答。 Apache在启动时停止启动的原因是我想跨系统共享一个httpd.conf
文件。 配置文件需要Include
我的主目录中存在的目录中的文件。 由于每个机器上的主目录不同,我试图引用${HOME}
环境变量。
在机器启动后手动启动时这样工作正常,但在启动时失败,因为环境变量尚未设置。 如上所述,请参阅此问题以获取更多信息。
抢:
有同样的问题:“sudo launchctl加载-w ...”在我登录时启动了Apache2,但在启动过程中没有工作(“-w”应该照顾到这一点)。 另外,正如你注意到的那样,这个守护进程似乎是用launchctl注册的。 它将显示“sudo launchctl list”,另一个“sudo launchctl load ...”将导致错误消息。
我玩“sudo port load apache2”和“sudo port unload apache2”,但无法在重新启动时运行httpd。
最后,我摆脱了MacPorts的启动项:“sudo port unload apache2”,并用“sudo launchctl list”检查了org.macports.apache2不再注册启动。
之后,我按照http://diymacserver.com> Docs> Tiger> Starting Apache中的步骤进行操作。 我只需要修改/ usr / local / ...路径到/ opt / local / ...
现在MacPorts的Apache2在每次重新启动的时候都可以正常启动。
祝你好运,克劳斯
链接地址: http://www.djcxy.com/p/43947.html上一篇: MacPorts Apache2 Stopped Launching on Boot
下一篇: How can I make a property "Write Once Read Many" in VB.NET?