Недавно я установил OSX Server на чистую установку Yosemite 10.10.3 и хотел настроить конфигурацию apache, чтобы изменить версию PHP, используемую сервером. Я установил php с помощью homebrew и внес изменения в файл конфигурации apache. Это работало отлично, пока на следующий день я не заметил, что apache вернулся к использованию версии PHP по умолчанию, которая поставляется с Yosemite.
Немного поигравшись, я понял, что файл конфигурации Apache, который я редактировал ( /Library/Server/Web/Config/apache2/httpd_server_app.conf
), генерируется заново каждый раз при перезапуске приложения OSX Server, возвращая его к версии PHP по умолчанию, которая поставляется с Yosemite.
Есть ли значение по умолчанию httpd.conf
, на основе которого OSX Server генерирует свои данные 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, когда простое изменение порядка не решит проблему.