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 autoconfapt -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-devln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.acd /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.gzcd 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.inised -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /opt/php-7.4/lib/php.ini3.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.ini3.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.ini3.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 --version3.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Затем перейдите на вкладку 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 5 Ссылки
- PHP: http://www.php.net/
- ISPConfig: http://www.ispconfig.org/
- Debian: http://www.debian.org/
Get new posts in your inbox
No spam. Unsubscribe anytime.