Назад | Перейти на главную страницу

OSX по умолчанию Apache + MacPorts PHP?

Если возможно, я хотел бы сохранить установку 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 по умолчанию.