В этом посте решил поделиться тем, как устанавливал php-fpm 5.3 на сервер с DirectAdmin, где установлен еще старый apache 1.3
Первым делом начинаем с установки самого php-fpm, тут в принципе сложностей не возникло:
configure выглядело следующим образом:
Далее делаем стартовый скрипт, берем файл отсюда
php5.3.*/sapi/fpm/init.d.php-fpm.in
Так как все это собиралось на freebsd то кладем его сюда /usr/local/etc/rc.d/
после чего правим стартовый скрипт, у меня получились следующие изменения
Остальное оставляем без изменений
После этого настраиваем наш /usr/local/php53/etc/php-fpm.conf
где 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
и добавляем следующее
Запускаем для проверки phpinfo и должно выводиться следующее:
Server API FPM/FastCGI
Первым делом начинаем с установки самого 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