GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo compilar e instalar PHP 7.4 como PHP-FPM y FastCGI para ISPConfig 3 en Ubuntu 18.04 LTS

Ubuntu 18.04 viene con PHP 7.2 como versión predeterminada de PHP. Las principales versiones de PHP no son 100% compatibles entre sí, por lo que un sitio web puede requerir una versión de PHP más nueva o más antigua para funcionar. ISPConfig lo admite para usar múltiples versiones de PHP en el mismo servidor, la versión de PHP se puede seleccionar para cada sitio web individualmente en la configuración del sitio web. Este tutorial muestra cómo instalar PHP 7.4 como modo FPM y FCGI junto con PHP 7.2 en un servidor Ubuntu 18. Las versiones de PHP adicionales se instalan en la carpeta /opt, por lo que su instalación no afecta a la versión de PHP predeterminada

1 nota preliminar

Instalaré PHP 7.4. Tenga en cuenta que PHP-FPM se puede usar en servidores Apache y Nginx mientras que FastCGI solo está disponible para servidores Apache.

2 Instalar los requisitos previos

Instale los requisitos previos para compilar PHP y el editor nano que usaré para editar los archivos de configuración:

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

(El último comando es necesario si compila PHP con --with-imap, porque de lo contrario, ./configure se detendrá con el siguiente error:

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

)

3 Compila PHP 7.4 como PHP-FPM y Fastcgi

Descargue y extraiga el archivo 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

Configure y cree PHP 7.4 de la siguiente manera (puede ajustar el comando ./configure según sus necesidades, eche un vistazo a

./configure --help

para ver todas las opciones disponibles; si usa un comando ./configure diferente, es posible que se requieran bibliotecas adicionales o que el proceso de compilación falle):

./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

El último cambio (--enable-fpm) asegura que esta versión de PHP funcionará con PHP-FPM.

make
make install

Copie los archivos en las ubicaciones correctas:

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

Ajuste /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

Luego actualice /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

Si ya tiene instaladas versiones adicionales de PHP, verifique que el puerto no esté en uso:

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

Si usa nginx como su servidor web, ajuste /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 Crear el archivo de unidad systemd

A continuación, crearemos el archivo de la unidad del sistema que se utiliza para iniciar y detener el demonio PHP-FPM.

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

con el siguiente contenido:

[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

Habilite el servicio y vuelva a cargar systemd:

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

Finalmente, inicie PHP-FPM.

systemctl start php-7.4-fpm.service

Para habilitar Zend OPcache:

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

3.2 Habilitar Memcache (opcional)

Instala Memcache con estos comandos.

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

y habilitar memache

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

3.3 Instalar la extensión xDebug (opcional)

El módulo xDebug es una extensión de depuración para PHP. La instalación es opcional.

Instale xDebug con estos comandos.

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

y habilite 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

Finalmente reinicie el demonio php-fpm:

systemctl start php-7.4-fpm.service

Pruebe la versión de PHP:

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

3.4 Habilitar PHP 7.4 en ISPConfig

En ISPConfig 3.1, puede configurar la nueva versión de PHP en Sistema> Versiones adicionales de PHP. En la pestaña Nombre, simplemente ingrese un nombre para la versión de PHP (por ejemplo, PHP 7.4); esta versión de PHP aparecerá con este nombre en la configuración del sitio web en ISPConfig:

Vaya a la pestaña Configuración de FastCGI y complete los campos de la siguiente manera:

Path to the PHP FastCGI binary: /opt/php-7.4/bin/php-cgi
Path to the php.ini directory: /opt/php-7.4/lib

Luego, vaya a la pestaña Configuración de PHP-FPM y complete los campos de la siguiente manera:

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 Enlaces

  • PHP:http://www.php.net/
  • ISPConfig:http://www.ispconfig.org/
  • Debian:http://www.debian.org/

Ubuntu
  1. Cómo instalar PHP 7.4 y 8.0 en Ubuntu 18.04 o 20.04

  2. Cómo instalar PHP 7 (PHP-FPM y FastCGI) para ISPConfig 3 en Debian 8 (Jessie)

  3. Cómo instalar PHP 7 como PHP-FPM y FastCGI para ISPConfig 3 en Debian 8 (Jessie)

  4. Cómo instalar PHP 5.6 en Ubuntu 16.04 LTS

  5. Cómo instalar PHP 7.4 en Ubuntu 20.04 LTS

Cómo instalar PHP 5.6, PHP 8.0 y PHP 8.1 en Ubuntu 20.04 LTS

Cómo instalar Apache/PHP-FPM en Ubuntu 16.04 LTS

Cómo instalar Lighttpd con PHP y MariaDB en Ubuntu 16.04 LTS

Cómo instalar Lighttpd, PHP y MariaDB en Ubuntu 20.04 LTS

Cómo instalar ISPConfig en Ubuntu 20.04 LTS

Cómo usar varias versiones de PHP (PHP-FPM y FastCGI) con ISPConfig 3 (Ubuntu 12.04 LTS)