我最近在全新安装的Yosemite 10.10.3上安装了OSX Server,并希望自定义apache配置以更改服务器使用的PHP版本。我使用自制软件安装了php,并对apache配置文件进行了更改。直到第二天,我注意到apache已还原为使用Yosemite随附的默认版本的PHP时,此方法才能正常工作。
玩了一段时间后,我意识到/Library/Server/Web/Config/apache2/httpd_server_app.conf
每次重新启动OSX Server应用程序时,都会重新生成我正在编辑的apache配置文件,并将其恢复为Yosemite附带的默认PHP版本。
httpd.conf
OSX Sever是否生成它的默认值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配置有关的方案,仅更改顺序无法解决问题。