Link Search Menu Expand Document
16 Января 2021 г.

Сборка php-fpm 8 из исходников на Debian 10

Содержание
  1. Подготовка
  2. Конфигурирование и сборка
  3. Настройка и запуск
  4. Подключаем к apache 2
  5. Обновление php-fpm
  6. Итог
  7. Update

В предыдущих статьях мы ставили php как модуль для сервера apache, то есть в данном случае php и apache работают как одно целое.

Существует также режим запуска php, как отдельного процесса. Режимом запуска управляет менеджер процессов FastCGI (FPM) или php-fpm.

По умолчанию, он взаимодействует с веб-сервером через порт 9000 или сокетный файл.

Процесс установки php под apache я расписал в статье.

Подготовка

Удалим распакованные исходники оставшихся от прошлых сборок php. Развернем еще раз.

rm -rf php-8.0.1
tar xvf php-8.0.1.tar.gz

Создадим директорию откуда будет работать менеджер php-fpm, и перейдем в директорию с исходниками.

mkdir php8-fpm
cd php-8.0.1

Конфигурирование и сборка

Конфигурируем с минимальными опциями.

./configure --prefix=/home/alex/php8-fpm --enable-fpm --with-config-file-path=/home/alex/php8-fpm/config --with-config-file-scan-dir=/home/alex/php8-fpm/config/conf.d --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mbstring

Собираем.

make
make install
make clean

Перейдем в собранную директорию, со следующей структурой.

cd php8-fpm
ls -1
bin
etc
include
lib
php
sbin
var

Настройка и запуск

Переименуем конфигурационные файлы.

mv /home/alex/php8-fpm/etc/php-fpm.conf.default /home/alex/php8-fpm/etc/php-fpm.conf
mv /home/alex/php8-fpm/etc/php-fpm.d/www.conf.default /home/alex/php8-fpm/etc/php-fpm.d/www.conf

Откроем файл конфигурации.

vim /home/alex/php8-fpm/etc/php-fpm.d/www.conf 

Внесем изменения в конфигурацию, исправим или раскоментируем строки.

user = daemon
group = daemon
listen = 127.0.0.1:9001

Запускаем.

sudo ./home/alex/php8-fpm/sbin/php-fpm

Проверяем, что процесс запущен.

sudo netstat -tulpn | grep 9001
tcp        0      0 127.0.0.1:9001          0.0.0.0:*               LISTEN      63768/php-fpm: mast 

Подключаем к apache 2

Для, того, чтобы проверить работоспособность php-fpm, подключим php-fpm в качестве application сервера к apache 2.

Откроем конфиг /home/alex/apache2/conf.httpd.conf, подключим два модуля и настроем обработку скриптов через proxy:fcgi

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

<FilesMatch \.php$> 
   SetHandler "proxy:fcgi://127.0.0.1:9001"
</FilesMatch>

Перезагружаемся и проверяем.

sudo /home/alex/apache2/bin/apachectl -k restart
php-fpm

Обновление php-fpm

Если необходимо обновить версию php, нужно проделать все предыдущие шаги с указанием свежей версии:

  • Подготовка
  • Конфигурирование и сборка
  • Настройка и запуск

Например таким образом:

wget https://www.php.net/distributions/php-8.0.2.tar.gz
tar xvf php-8.0.2.tar.gz
mkdir php8.0.2-fpm
cd php-8.0.2
./configure --prefix=/home/alex/php8.0.2-fpm --enable-fpm --with-config-file-path=/home/alex/php8.0.2-fpm/config --with-config-file-scan-dir=/home/alex/php8.0.2-fpm/config/conf.d --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mbstring
make
make install
mv /home/alex/php8.0.2-fpm/etc/php-fpm.conf.default /home/alex/php8.0.2-fpm/etc/php-fpm.conf
mv /home/alex/php8.0.2-fpm/etc/php-fpm.d/www.conf.default /home/alex/php8.0.2-fpm/etc/php-fpm.d/www.conf
vim /home/alex/php8.0.2-fpm/etc/php-fpm.d/www.conf
#user = daemon
#group = daemon
#listen = 127.0.0.1:9002 
# Проверка работоспособности
#sudo /home/alex/php8.0.2-fpm/sbin/php-fpm
sudo vim /etc/rc.local
#/home/alex/php8.0.2-fpm/sbin/php-fpm
sudo netstat -tulpn | grep 9002
# Для проверки подключим к nginx
location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9002;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}
sudo /home/alex/nginx/sbin/nginx -s reload

Свежая версия php собрана

php-fpm

Итог

Как видим собрать php-fpm не составляет особого труда.

Главное здесь желание и умение искать информацию в документации.

Update

06.02.2021

  • Добавлен пункт “Обновление php-fpm”

Возник вопрос или предложение пиши на почту alexsey_89@bk.ru или в Телеграмм канал

Дата публикации: 16 Января 2021 г.