Pull to refresh

Установка 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
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.