Если возможно, я хотел бы сохранить установку Apache по умолчанию и просто указать ей использовать другую версию PHP, созданную / установленную с использованием MacPorts. Возможно ли это (и если да, то есть ли простой процесс настройки)?
Я знаю, что Apache хочет, чтобы я указал модуль PHP для загрузки, но мне не ясно, как я могу использовать другую установку PHP (если это вообще возможно). Нужно ли мне компилировать новый модуль apache, который каким-то образом указывал бы на мою копию PHP, созданную с помощью MacPorts? Буду очень признателен за любые разъяснения того, что мне нужно сделать!
Обновить: Как насчет включения FastCGI и запуска PHP через него вместо модуля apache? Я знаю, что между двумя подходами есть компромиссы, но возможно ли это, или я столкнусь с аналогичными проблемами?
Macports PHP libphp5.so обычно не совместим с системой Apache OSX по умолчанию. Вот что происходит на моем macosxserver.
# /etc/apache2/httpd.conf
LoadModule php5_module /opt/local/apache2/modules/libphp5.so
Попытка запустить сервер
~> sudo /usr/sbin/apachectl -k start
httpd: Syntax error on line 118 of /private/etc/apache2/httpd.conf:
Cannot load /opt/local/apache2/modules/libphp5.so into server: dlopen(/opt/local/apache2/modules/libphp5.so, 10):
Library not loaded: /opt/local/lib/libaprutil-1.0.dylib\n Referenced from: /opt/local/apache2/modules/libphp5.so\n
Reason: Incompatible library version: libphp5.so requires version 5.0.0 or later, but libaprutil-1.0.dylib provides version 4.0.0
Вы можете легко скомпилировать PHP для использования вашей установки Apache по умолчанию, задав путь по умолчанию apxs
.
# In PHP source directory
./configure --with-apxs2=/usr/sbin/apxs
Конечно, (повторная) компиляция PHP может потребовать больше работы, чем вы хотите унаследовать. Самый простой способ - принять установку Macport Apache и настроить ваш osxserver для использования /opt/local/apache2
в качестве службы HTTPD по умолчанию.