Как стать автором
Обновить

Установка php-fpm на сервер с DirectAdmin

В этом посте решил поделиться тем, как устанавливал php-fpm 5.3 на сервер с DirectAdmin, где установлен еще старый apache 1.3

Первым делом начинаем с установки самого php-fpm, тут в принципе сложностей не возникло:

configure выглядело следующим образом:

"--prefix=/usr/local/php53" \
"--enable-force-cgi-redirect" \
"--enable-fastcgi" \
"--with-config-file-path=/usr/local/etc/php5/cgi" \
"--with-curl=/usr/local/lib" \
"--with-gd" \
"--with-gettext" \
"--with-jpeg-dir=/usr/local/lib" \
"--with-freetype-dir=/usr/local/lib" \
"--with-kerberos" \
"--with-mcrypt" \
"--with-mhash" \
"--with-mysql" \
"--with-mysqli=mysqlnd" \
"--with-pcre-regex=/usr/local" \
"--with-pdo-mysql=mysqlnd" \
"--with-pear=/usr/local/lib/php" \
"--with-png-dir=/usr/local/lib" \
"--with-zlib" \
"--with-zlib-dir=/usr/local/lib" \
"--with-openssl" \
"--with-iconv=/usr/local" \
"--enable-bcmath" \
"--enable-calendar" \
"--enable-exif" \
"--enable-ftp" \
"--enable-gd-native-ttf" \
"--enable-magic-quotes" \
"--enable-soap" \
"--enable-sockets" \
"--enable-mbstring" \
"--enable-zip" \
"--enable-wddx" \
"--enable-fpm"



Далее делаем стартовый скрипт, берем файл отсюда
php5.3.*/sapi/fpm/init.d.php-fpm.in
Так как все это собиралось на freebsd то кладем его сюда /usr/local/etc/rc.d/
после чего правим стартовый скрипт, у меня получились следующие изменения

php_fpm_BIN=/usr/local/php53/sbin/php-fpm
php_fpm_CONF=/usr/local/php53/etc/php-fpm.conf
php_fpm_PID=/var/run/php-fpm.pid
php_opts="--fpm-config $php_fpm_CONF"


Остальное оставляем без изменений

После этого настраиваем наш /usr/local/php53/etc/php-fpm.conf

[global]
pid = /var/run/php-fpm.pid
error_log = /var/log/php-fpm.log
[admin]
listen = /fcgi/admin/public_html/admin.sock
listen.owner = $pool
listen.group = $pool
listen.mode = 0666
user = $pool
group = $pool
pm = dynamic
pm.max_children = 50
pm.start_servers = 3
pm.min_spare_servers = 3
pm.max_spare_servers = 10
php_admin_value[open_basedir] = /home/$pool/:/tmp:/var/tmp:/var/www/html

где admin — это имя пользователя под которым будем запускать php5.3

Далее нужно собрать mod_fastcgi
Смотрим его документацию и выбираем вариант

3) Installing mod_fastcgi as a DSO
==================================
компилируем
$ cd <mod_fastcgi_dir>
<mod_fastcgi_dir>$ apxs -o mod_fastcgi.so -c *.c

наш apache хранит модули в папке /usr/lib/apache
сюда мы и копируем наш скомпилированный модуль.

Далее настраиваем apache, в файле httpd.conf
прописываем следующее:
LoadModule fastcgi_module /usr/lib/apache/mod_fastcgi.so

и после строки ClearModuleList
добавляем
AddModule mod_fastcgi.c

Собственно на этом основная настройка и закончена.
Теперь выбираем virtual host в котором хотим запускать php 5.3

и добавляем следующее

<IfModule mod_fastcgi.c>
<FilesMatch \.php$>
SetHandler php5-fcgi
</FilesMatch>
<Location "/fastcgiphp">
Order Deny,Allow
Deny from All
# Prevent accessing this path directly
Allow from env=REDIRECT_STATUS
</Location>
Action php5-fcgi /fastcgiphp
</IfModule>

<IfModule mod_fastcgi.c>
FastCgiExternalServer /usr/local/bin/admin -socket /fcgi/admin/public_html/admin.sock
Alias /fastcgiphp /usr/local/bin/admin
</IfModule>


Запускаем для проверки phpinfo и должно выводиться следующее:
Server API FPM/FastCGI
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.