Mountain Lion 下的 Web Sharing 无法使用

问题

尽管 Mountain Lion 号称有200项更新,但是它在没有提到的更新内容里面将 Web Sharing 开启的界面给干掉了,只是在支持里面不痛不痒的提了下,并且更改了原来的apache 配置文件,同时还删除了原系统下自己添加的so文件。因此遇到问题的话最好使用 apachectl configtest 检查一下 apahe 的配置文件。如果想恢复以前的那种模式话,建议操作如下:

解决方案

  1. 找到 lion 里面的 mod_bonjour.so/usr/libexec/apache2 的目录里面
  2. /etc/apache2/httpd.conf 里面 LoadModule 部分增加 LoadModule bonjour_module libexec/apache2/mod_bonjour.so,如果有PHP需要的话,也可以将其开启。
  3. 老的配置文件在 /etc/apache2/httpd.conf~previous,可以参考修改。
  4. /etc/apache2/users目录下面创建 用户名.conf,例如我的登陆用户名是foo,这边就创建一个foo.conf。如果不清楚自己的用户名,可以使用 ls /Users 来查看自己的用户名是什么。
  5. 将以下内容copy到 用户名.conf 的文件里面,并修改为自己的用户名:
<Directory "/Users/用户名/Sites/">
  Options Indexes MultiViews
  AllowOverride None
  Order allow,deny
  Allow from all
</Directory>
	
  1. sudo apachectl configtest 检查配置文件的语法,如果语法有错误,它会提示你具体错误在哪里。
  2. sudo apachectl stop && sudo apachectl start ,使用该命令启动apache ,这样就可以像原来一样使用了。

其他的问题

  1. 执行了sudo apachectl start 之后得到提示org.apache.httpd: Already loaded,但是依旧无法访问:
    • 建议先执行 sudo apachectl configtest 检查配置文件的正确性,因为 Mountain Lion 的升级会将你原先自己增加的so文件全部干掉。所以即便你原先能跑起来的配置文件也未必能在新的系统里面跑的起来。
  2. 可能某些人很怀念原来的GUI开关界面,建议可以选用 CLICKONTYLER 他们的配置文件,这个配置文件可以在配置面板增加一个Web Sharing的开关选项。但是请先按照上面的解决方案执行一遍,因为它没有帮你完成这些检查,仅仅只是提供一个UI开关的界面而已。

所有系统环境相关的问题

  1. 如果你升级了XCode,需要重新在XCode里面安装命令行工具。
  2. 如果你使用了HomeBrew,那最好的方式是使用brew doctor检查下 HomeBrew 现在的配置,因为可能会有问题。还有某些命令行需要brew link xxxx 重新链接一下。
  3. 目前我自己安装的所有gem包全部都消失了,最好检查一下是否自己安装的ruby工具是否还在,使用gem list --local来检查。
  4. 使用gem install jeykll安装的时候会提示没有/usr/bin/gcc-4.2。我的做法是将/usr/bin下的gcc做个软链接,ln -s /usr/bin/gcc-4.2 /usr/bin/gcc
Q.E.D.