org.apache.httpd:已经加载

时间:2012-11-05 18:05:25

标签: macos apache

我对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 Mountain Lion

更新

重启后:

$ 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

3 个答案:

答案 0 :(得分:11)

手动运行服务器并修复报告的错误:

root#> /usr/sbin/httpd -k start

答案 1 :(得分:1)

我的修复是在httpd.conf中切换“... apache_access_log combined”。

我今天粗暴地面对同样的小挫折,虽然像glasnhos-,w / out ruby​​包装。 @glasnhost,你的想法让我失望..当天早些时候,我在apache httpd.conf附近玩耍,玩日志。我已经切换了这两个几乎相同的行中的第二行(带引号和w / out引号;注意一个有扩展名.log;而另一个是下划线{{1 }})。

_log
同样地,奇怪的是这个问题直到几个小时之后都没有吓到我的系统。感谢这个线程,我的系统恢复健康! 没有信心上升..

答案 2 :(得分:0)


阅读本文和Nick于11月5日回复,我试图以root用户身份在终端运行/ usr / sbin / http-wrapper。我收到了这个输出

titanium:~ root# /usr/sbin/httpd-wrapper
(2)No such file or directory: httpd: could not open error log file /private/var/log/apache2/error_log.
Unable to open logs
titanium:~ root#

然后我检查了/ private / var / log / apache2文件夹不存在。我创建了它并为每个人设置了权利。

titanium:log root# mkdir /private/var/log/apache2      
titanium:log root# chmod 777 /private/var/log/apache2/
titanium:log root#

对我有用!
注意:如果您关心安全性,请为/ private / var / log / apache2而不是777提供更多限制权限。