我对apache有这个奇怪的问题:
$ apachectl configtest
Syntax OK
配置没问题,在一分钟前它实际上还在工作,在我关闭它之前。
$ sudo apachectl start
org.apache.httpd: Already loaded
不,这不对:
$ ps ax | grep httpd
58204 s000 R+ 0:00.00 grep httpd
让我们试着阻止它:
$ sudo apachectl stop
好像停了对吧?让我们尝试重新启动它:
$ sudo apachectl start
$ sudo apachectl start
org.apache.httpd: Already loaded
所以它必须在运行,但它不在ps ax
,它根本不起作用。
$ sudo apachectl stop
$ sudo apachectl stop
launchctl: Error unloading: org.apache.httpd
试图从自动启动中删除它:
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
launchctl: Error unloading: org.apache.httpd
但是当我尝试启动它时它是一样的,它假装它启动但它没有。错误日志中也没有任何内容。帮助!
OS X 10.8.2 山狮
更新:
重启后:
$ sudo apachectl start
Password:
org.apache.httpd: Already loaded
$ sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
org.apache.httpd: Already loaded
$ ps ax | grep httpd
7300 s000 R+ 0:00.00 grep httpd
所以我现在实际上没有网络服务器。
解决方案:
经过研究,org.apache.httpd.plist
我发现 apache 是由一个 ruby 脚本控制的,该脚本/usr/sbin/http-wrapper
运行时出现了一些问题,因为我已经更换了系统 ruby 解释器。这为我修复了它:
ln -s /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby /usr/bin/ruby