PHP установка · 3 min read · Nov 03, 2025

Как скомпилировать и установить PHP 7.4 как PHP-FPM и FastCGI для ISPConfig 3 на Ubuntu 18.04 LTS

Ubuntu 18.04 поставляется с PHP 7.2 в качестве версии PHP по умолчанию. Основные версии PHP не на 100% совместимы друг с другом, поэтому веб-сайт может требовать более новой или более старой версии PHP для работы. ISPConfig поддерживает использование нескольких версий PHP на одном сервере, версия PHP может быть выбрана для каждого веб-сайта индивидуально в настройках веб-сайта. Этот учебник показывает, как установить PHP 7.4 в режиме FPM и FCGI наряду с PHP 7.2 на сервере Ubuntu 18. Дополнительные версии PHP устанавливаются в папку /opt, поэтому их установка не влияет на версию PHP по умолчанию.

1 Предварительная заметка

Я установлю PHP 7.4. Пожалуйста, обратите внимание, что PHP-FPM может использоваться как на серверах Apache, так и на Nginx, в то время как FastCGI доступен только для серверов Apache.

2 Установите предварительные условия

Установите предварительные условия для сборки PHP и редактор nano, который я буду использовать для редактирования конфигурационных файлов:

apt -y install build-essential nano net-tools autoconf
apt -y install libfcgi-dev libfcgi0ldbl libjpeg-turbo8-dev libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libkrb5-dev libpq-dev libxml2-dev libxslt1-dev libzip-dev libsqlite3-dev libonig-dev
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
cd /usr/include  
ln -s x86_64-linux-gnu/curl

(Последняя команда необходима, если вы собираете PHP с –with-imap, потому что в противном случае ./configure остановится с следующей ошибкой:

checking for crypt in -lcrypt... yes  
configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.  
root@server1:/tmp/php-7.4.0

)

3 Скомпилируйте PHP 7.4 как PHP-FPM и Fastcgi

Скачайте и извлеките архив PHP:

cd /tmp  
wget https://www.php.net/distributions/php-7.4.0.tar.gz  
tar xfz php-7.4.0.tar.gz
cd php-7.4.0

Настройте и соберите PHP 7.4 следующим образом (вы можете настроить команду ./configure в соответствии с вашими потребностями, посмотрите на

./configure --help

чтобы увидеть все доступные параметры; если вы используете другую команду ./configure, возможно, потребуются дополнительные библиотеки, или процесс сборки завершится неудачей):

./configure --prefix=/opt/php-7.4 --with-pdo-pgsql --with-zlib-dir --with-freetype --enable-mbstring --enable-soap --enable-calendar --with-curl --with-zlib --enable-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --with-zip --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-intl --with-pear --enable-fpm

Последний переключатель ( –enable-fpm) гарантирует, что эта версия PHP будет работать с PHP-FPM.

make  
make install

Скопируйте файлы в правильные места:

cp php.ini-production /opt/php-7.4/lib/php.ini
cp /opt/php-7.4/etc/php-fpm.conf.default /opt/php-7.4/etc/php-fpm.conf
cp /opt/php-7.4/etc/php-fpm.d/www.conf.default /opt/php-7.4/etc/php-fpm.d/www.conf

Настройте /opt/php-7.4/etc/php-fpm.conf

sed -i 's/;pid = run\/php-fpm.pid/pid = run\/php-fpm.pid/g' /opt/php-7.4/etc/php-fpm.conf

Затем обновите /opt/php-7.4/etc/php-fpm.d/www.conf:

cp /opt/php-7.4/etc/php-fpm.d/www.conf.default /opt/php-7.4/etc/php-fpm.d/www.conf

Если у вас уже установлены дополнительные версии PHP, пожалуйста, проверьте, что порт уже не используется:

netstat -tapn | grep -E ".*899.*php-fpm"

Если вы используете nginx в качестве веб-сервера, настройте /opt/php-7.4/lib/php.ini:

sed -i 's/;date.timezone =/date.timezone = "Europe\/Berlin"/g' /opt/php-7.4/lib/php.ini
sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /opt/php-7.4/lib/php.ini

3.1 Создание файла юнита systemd

Далее мы создадим файл юнита системы, который используется для запуска и остановки демона PHP-FPM.

nano /lib/systemd/system/php-7.4-fpm.service

с следующим содержимым:

[Unit]  
Description=The PHP 7.4 FastCGI Process Manager  
After=network.target  
  
[Service]  
Type=simple  
PIDFile=/opt/php-7.4/var/run/php-fpm.pid  
ExecStart=/opt/php-7.4/sbin/php-fpm --nodaemonize --fpm-config /opt/php-7.4/etc/php-fpm.conf  
ExecReload=/bin/kill -USR2 $MAINPID  
  
[Install]  
WantedBy=multi-user.target

Включите службу и перезагрузите systemd:

systemctl enable php-7.4-fpm.service  
systemctl daemon-reload

Наконец, запустите PHP-FPM.

systemctl start php-7.4-fpm.service

Чтобы включить Zend OPcache:

echo zend_extension=opcache.so >> /opt/php-7.4/lib/php.ini

3.2 Включение Memcache (по желанию)

Установите memcache с помощью этих команд.

cd /opt/php-7.4/etc  
../bin/pecl -C ./pear.conf update-channels  
../bin/pecl -C ./pear.conf install memcached

и включите memcache

echo extension=memcached.so >> /opt/php-7.4/lib/php.ini

3.3 Установка расширения xDebug (по желанию)

Модуль xDebug является расширением отладки для PHP. Установка является необязательной.

Установите xDebug с помощью этих команд.

cd /opt/php-7.4/etc  
../bin/pecl -C ./pear.conf update-channels  
../bin/pecl -C ./pear.conf install xdebug

и включите xDebug

echo zend_extension=/opt/php-7.4/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so >> /opt/php-7.4/lib/php.ini

Наконец, перезапустите демон php-fpm:

systemctl start php-7.4-fpm.service

Проверьте версию PHP:

cd /opt/php-7.4/bin  
./php --version

3.4 Включите PHP 7.4 в ISPConfig

В ISPConfig 3.1 вы можете настроить новую версию PHP в разделе System > Additional PHP Versions. На вкладке Name вы просто заполняете имя для версии PHP (например, PHP 7.4) - эта версия PHP будет отображаться под этим именем в настройках веб-сайта в ISPConfig:

Перейдите на вкладку FastCGI Settings и заполните поля следующим образом:

Path to the PHP FastCGI binary: /opt/php-7.4/bin/php-cgi  
Path to the php.ini directory: /opt/php-7.4/lib
![](/files/d0d14ba4-498f-4afc-b309-e6447696e788.jpg)

Затем перейдите на вкладку PHP-FPM Settings и заполните поля следующим образом:

Path to the PHP-FPM init script: php-7.4-fpm  
Path to the php.ini directory: /opt/php-7.4/lib  
Path to the PHP-FPM pool directory: /opt/php-7.4/etc/php-fpm.d  
![](/files/62167a30-12d7-415f-a01a-194d878513f6.jpg)

5 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.