我最近在全新安装的 Yosemite 10.10.3 上安装了 OSX Server,并想自定义 apache 配置以更改服务器使用的 PHP 版本。我使用 homebrew 安装了 php,并对 apache 配置文件进行了更改。这很顺利,直到第二天我注意到 apache 已恢复使用 Yosemite 附带的默认 PHP 版本。
经过一番尝试后,我意识到我正在编辑的 apache 配置文件 ( /Library/Server/Web/Config/apache2/httpd_server_app.conf
) 每次重新启动 OSX Server 应用程序时都会重新生成,并将其恢复为 Yosemite 附带的 PHP 默认版本。
OSX Sever是否httpd.conf
有生成它的默认值httpd_server_app.conf
?
更新:
我做了一些深入研究。当我将 LoadModule 调用添加到时,httpd_server_app.conf
我注释掉了旧版本,并在下一行添加了对新版本的调用。
#LoadModule php5_module libexec/apache2/libphp5.so
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
重新启动服务器时,新生成的文件如下所示(对新模块的调用保留,但对旧模块的调用被取消注释):
LoadModule php5_module libexec/apache2/libphp5.so
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
Apache 加载第一个模块,在本例中是旧版本。如果我将新模块调用放在旧模块调用上方,那么这个问题就解决了。虽然这感觉不是一个理想的解决方案,因为我仍然保留了另一个未注释的 LoadModule 调用。
我想象还存在与编辑 apache 配置有关的其他场景,其中简单地改变顺序无法解决问题。