OS X上编译安装Ruby后Apache无法启动的解决办法

作者: 空气 分类: Server 发布时间: 2012-10-13 03:33 ė1265 6没有评论

前天刚配置好的Mac的OS X 10.8.2系统下的web开发环境,昨天下午自己下载源码编译完Ruby后,Apache就再也启动不了了。

本来平时遇到这种问题是很好解决的,但令人纠结的是这次Apache不能启动却不报错,在网上搜了下,也没有什么结果,于是只能自己动手,一个环节一个环节的分析故障原因。
先利用以下命令

检查配置文件无问题

于是直接启动Apache

但是报错 org.apache.httpd: Already loaded

再依次执行以下命令

这次没有报错了

接着利用命令查看端口

发现80端口没有打开

枚举进程

httpd进程并没有启动

于是用以下命令

httpd进程启动了 可以正常监听80端口
测试了下网站可以正常打开 虚拟主机加载也无问题
说明Apache在启动环节出了问题

定位到Apache的自启动配置文件
/System/Library/LaunchDaemons/org.apache.httpd.plist

将其中
<string>/usr/sbin/httpd-wrapper</string>
替换成
<string>/usr/sbin/httpd</string>

然后先kill掉所有httpd进程
再执行

这次Apache可以正常启动了

问题到这里已经解决了,但是解决问题的方法并不完美,而且产生问题的原因也没解释清楚,所以继续分析 /etc/sbin/httpd-wrapper 这个文件。

打开文件
看到第一句

这里就是问题的症结所在
因为Mac的OS X系统是类BSD系统
所以下载源码编译Ruby时,默认的安装路径是

而我在之前安装Ruby时将系统内置的老版本的Ruby重命名了
导致这里用ruby脚本启动Apache的时候,无法找到Ruby,所以apache无法启动却不报错

知道问题在哪解决起来就容易了
先还原之前被修改过的 /System/Library/LaunchDaemons/org.apache.httpd.plist
然后给Ruby做个软链接

至此,问题完美解决。

为防以后出现别的错误,可以继续执行如下命令

分享此文到:

本文出自 空气的时光记事本,非注明转载皆为原创,转载时请注明出处及相应链接。

本文永久链接: http://www.liujingze.com/os-x%e4%b8%8a%e7%bc%96%e8%af%91%e5%ae%89%e8%a3%85ruby%e5%90%8eapache%e6%97%a0%e6%b3%95%e5%90%af%e5%8a%a8%e7%9a%84%e8%a7%a3%e5%86%b3%e5%8a%9e%e6%b3%95.html

0

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*