macos+php-fpm+php5_module


Дано:

Mac os x 10.8 с входящем в сборку по-умолчанию apache и php 5.3.15.

Задача:

Собрать php 5.x с возможностью работы в FastCGI режиме и режиме модуля к apache на примере php 5.4 в mac os x.

Подробно об установке php 5.4 в mac os x через homebrew написано здесь.

Проверяем варианты установки php54 командой brew options php54.

screenshot_1

Стандартная формула установки предлагает сконфигурировать php с ключом --with-fpm. Этот вариант не подходит, так как исключает возможность запуска в виде модуля к apache (implies --without-apache).

Подправим формулу установки (Если в будущем мы решим обновить пакет php54, то все изменения, описанные тут, надо будет проделать снова).

Открываем в редакторе файл /usr/local/Library/Formula/php54.rb и дописываем ключ --enable-fpm.

Сохраняем и устанавливаем/переустанавливаем пакет php54 командой brew install/reinstall php54.

Теперь наш php54 может работать как модуль к apache, так и в режиме fastCGI, для проверки открываем httpd.conf находим подключение libphp5.so LoadModule php5_module libexec/apache2/libphp5.so

и меняем его на

#LoadModule php5_module libexec/apache2/libphp5.so

LoadModule php5_module /usr/local/Cellar/php54/5.4.14/libexec/apache2/libphp5.so

Перезапускаем apache sudo apachectl restart Видим что теперь php может работать в fastCGI режиме --enable-fpm.

screenshot_2

У нас теперь два php-fpm. Для php 5.3.15 лежит тут /usr/sbin/php-fpm, для php 5.4.14 лежит тут /usr/local/Cellar/php54/5.4.14/sbin/php-fpm.

Конфиги лежат соответственно тут /private/etc/php-fpm.conf и тут /usr/local/etc/php/5.4/php-fpm.conf.

Для переключения между версиями php я использую следующие действия:

Для nginx:

Делаем alias в bash_profile для php 5.4.14 php-fpm.

alias php-fpm54="/usr/local/Cellar/php54/5.4.14/sbin/php-fpm"

Перезапускаем консоль и теперь запускаем или php-fpm, или php-fpm54. Запускаем nginx. Готово.

screenshot_3

screenshot_4

Для apache:

открываем httpd.conf комментируем нужную строчку

#LoadModule php5_module libexec/apache2/libphp5.so

LoadModule php5_module /usr/local/Cellar/php54/5.4.14/libexec/apache2/libphp5.so

перезапускаем apache. Готово.

screenshot_6

Для CLI:

редактируем bash_profile, добавляем строчку

PATH="$(brew --prefix josegonzalez/php/php54)/bin:$PATH"

перезапускаем консоль. Готово.

screenshot_5

Все..