Macports Apache httpd 无法在 Mac OS X Yosemite 上启动

Macports Apache httpd 无法在 Mac OS X Yosemite 上启动

因此,经过两天的努力,弄清楚为什么 Macports Apachehttpd突然决定停止工作,最终归结为以下原因:

$ sudo bash -x /opt/local/apache2/bin/apachectl -k start
ARGV='-k start'
HTTPD=/opt/local/apache2/bin/httpd
test -f /opt/local/apache2/bin/envvars
. /opt/local/apache2/bin/envvars
test x '!=' x
DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib
export DYLD_FALLBACK_LIBRARY_PATH
LYNX='lynx -dump'
STATUSURL=http://localhost:80/server-status
ULIMIT_MAX_FILES=
'[' x '!=' x ']'
ERROR=0
'[' 'x-k start' = x ']'
case $ARGV in
/opt/local/apache2/bin/httpd -k start
ERROR=1
exit 1

这就是房间里的大象,ERROR=1意味着什么吗?

我运行了调试并得到了上述相同的错误:

$ sudo bash -x /opt/local/apache2/bin/apachectl -k start -e Debug -E /dev/stdout

本地 Mac Apache 没有返回任何错误并httpd正常启动,它给出以下输出:

$ sudo bash -x /usr/sbin/apachectl -k start
ACMD=-k
ARGV='-k start'
HTTPD=/usr/sbin/httpd
test -f /usr/sbin/envvars
. /usr/sbin/envvars
test x '!=' x
DYLD_LIBRARY_PATH=/usr/lib
export DYLD_LIBRARY_PATH
LYNX='lynx -dump'
STATUSURL=http://localhost:80/server-status
ULIMIT_MAX_FILES=
LAUNCHCTL=/bin/launchctl
LAUNCHD_JOB=/System/Library/LaunchDaemons/org.apache.httpd.plist
'[' x '!=' x ']'
ERROR=0
'[' 'x-k start' = x ']'
case $ARGV in
/usr/sbin/httpd -k start
ERROR=0
exit 0

这可能是我最后一次尝试了,两天后我愿意放弃!

答案1

ERROR=1 表示 bash 脚本正在将环境变量“ERROR”设置为值 1。

apachectl 基本上执行以下操作:

$HTTPD $ARGV
ERROR=$?

exit $ERROR

问题是/opt/local/apache2/bin/httpd -k start退出时退出代码为 1。您应该弄清楚这是为什么。您说您运行了sudo /opt/local/apache2/bin/httpd -k start -e Debug -E /dev/stdout但没有看到任何错误。退出代码是什么?

答案2

我记得之前在 MAMP 上调用的模块unique_id_module阻止了它的启动。所以我禁用了它,httpd.conf现在 Macports Apache 启动时没有任何错误。

像这样取消注释即可:

#LoadModule unique_id_module modules/mod_unique_id.so

相关内容