升级到 Yosemite 后的 Apache 问题

Tom*_*ley 8 apache-http-server httpd

升级到 Yosemite 后,我的 Mac 网络服务器将无法工作。当我输入apachectl终端时,我得到这个:

httpd: Syntax error on line 527 of /private/etc/apache2/httpd.conf: Syntax error on line 8 of /private/etc/apache2/other/+php-osx.conf: Cannot load /usr/local/php5/libphp5.so into server: dlopen(/usr/local/php5/libphp5.so, 10): Symbol not found: _unixd_config\n  Referenced from: /usr/local/php5/libphp5.so\n  Expected in: /usr/sbin/httpd\n in /usr/local/php5/libphp5.so
Run Code Online (Sandbox Code Playgroud)

如果我输入sudo apachectl [re]start什么都没有发生,就好像它已经启动,然后我再次输入它,它说它已经在运行。此外,我安装了 Web 共享首选项窗格(http://clickontyler.com/web-sharing/),当我将开关从关闭轻弹到开启时,它仍然说它已关闭,即使开关处于开启位置.

你们想要/需要查看哪些文件?真的需要尽快解决这个问题。

小智 8

出现此问题是因为 Yosemite 安装了最新版本的 Apache (2.4) 而较早版本的 Mac OS X 使用的是 Apache 2.2

从错误中可以看出,您使用的不是 Apple 提供的标准版本的 PHP,而是 liip.ch 提供的不同版本。按照上面 Nuttyx 的建议删除 # 符号将加载 Apple 版本的 php (5.5.14)。如果您希望继续运行 liip 提供的版本,您需要重新安装它,以便它在 Apache 2.4 中正确加载。在此处查看详细说明:(http://blog.liip.ch/archive/2014/06/11/php-osx-available-for-os-x-10-10-yosemite.html

注意如果您使用的是虚拟主机,您可能需要稍微更改您的配置文件。特别是您需要更改以下内容:

2.2 配置:

Order allow,deny
Allow from all
Run Code Online (Sandbox Code Playgroud)

2.4 配置:

Require all granted
Run Code Online (Sandbox Code Playgroud)


Ott*_*o G 6

另请注意,Yosemite 安装程序会使用新的默认 Apache 2.4 配置文件覆盖整个 /private/etc/apache2/httpd.conf 文件。

例如,如果Listen添加了任何指令,它们将消失并需要再次添加。例如:

Listen 127.0.0.1:81
Run Code Online (Sandbox Code Playgroud)

我在以下文件中找到了我的旧配置,但由于与 2.2 的差异,它可能不应该直接复制到 http.conf 文件中:

/private/etc/apache2/httpd.conf~previous

有一个升级指南:http : //httpd.apache.org/docs/2.4/upgrading.html

确保任何先前包含的额外配置文件仍然包含在内,然后使用以下命令测试配置:

sudo apachectl configtest
Run Code Online (Sandbox Code Playgroud)