Anteriormente demostré los pasos necesarios para compilar PHP 7 desde los fuentes con soporte para CGI (FPM). En esta oportunidad demuestro los pasos similares para instalar la última versión estable de PHP en un sistema corriendo Debian 10 con systemd.



Descargar la última versión estable de PHP desde el sitio oficial de descargas (www.php.net/downloads.php):

# cd
# wget https://www.php.net/distributions/php-7.4.0.tar.gz
# tar xzf php-7.4.0.tar.gz 

Revisar las opciones de configuración y ayuda del paquete:

# cd php-7.4.0/
# ./configure --help

Instalar las dependencias necesarias para compilar PHP 7.4 en Debian 10:

# apt-get install build-essential pkg-config libxml2-dev libssl-dev libcurl4-openssl-dev sqlite3 libsqlite3-dev libbz2-dev libonig-dev libreadline-dev libxslt-dev

Crear un script de configuración del paquete:

# nano configure.sh

En esta instalación en particular, utilizo las siguientes opciones:

#!/bin/bash

./configure --prefix=/usr/local/php7/ \
--disable-cli \
--enable-fpm \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--disable-ipv6 \
--with-openssl \
--with-pcre-jit \
--with-zlib \
--enable-bcmath \
--with-bz2 \
--with-curl \
--enable-calendar \
--enable-exif \
--enable-ftp \
--with-gettext \
--with-mhash \
--enable-intl \
--enable-mbstring \
--with-mysqli \
--enable-pcntl \
--with-pdo-mysql \
--with-readline \
--enable-sockets \
--with-xsl

Este script configura el paquete para que se instale en el directorio /usr/local/php7 y habilita el soporte para FPM, OpenSSL y MySQL, entre otras funcionalidades.

Configurar el paquete:

# chmod +x configure.sh
# ./configure.sh

Copmpilar e instalar PHP 7.4:

# make
# make install

Verificar:

root@linuxito:~/php-7.4.0# /usr/local/php7/bin/php-cgi -v
PHP 7.4.0 (cgi-fcgi) (built: Dec  4 2019 14:22:07)
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

Instalar el script de inicio SysV:

# cp sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm
# chmod +x /etc/init.d/php7-fpm
# update-rc.d php7-fpm defaults

Configurar el archivo php.ini de acuerdo al artículo Compilar PHP 7 con FPM desde los fuentes.

Luego crear el archivo php-fpm.conf:

# cd /usr/local/php7/etc/
# cp php-fpm.conf.default php-fpm.conf

Seguir los pasos del artículo anterior para configurar todos los pooles necesarios.

En este caso se trata de una instalación de Debian 10 con systemd. Como yo prefiero seguir utilizando scripts de inicio SystemV, y systemd lo permite, he decidido hacerlo así. Solo resta recargar la configuración del demonio systemd para que detecte este cambio:

# systemctl daemon-reload

Iniciar PHP-FPM por primera vez:

# service php7-fpm start

Verificar el funcionamiento:

root@linuxito:~# service php7-fpm status
● php7-fpm.service - LSB: starts php-fpm
   Loaded: loaded (/etc/init.d/php7-fpm; generated)
   Active: active (running) since Wed 2019-12-04 14:51:15 UTC; 1min 30s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 4170 ExecStart=/etc/init.d/php7-fpm start (code=exited, status=0/SUCCESS)
    Tasks: 16 (limit: 2377)
   Memory: 43.5M
   CGroup: /system.slice/php7-fpm.service
           ├─4172 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)
           ├─4175 php-fpm: pool www
           ├─4176 php-fpm: pool www
           ├─4177 php-fpm: pool www
           ├─4178 php-fpm: pool www
           ├─4179 php-fpm: pool www
           ├─4180 php-fpm: pool www
           ├─4181 php-fpm: pool www
           ├─4182 php-fpm: pool www
           ├─4183 php-fpm: pool www
           ├─4184 php-fpm: pool www
           ├─4185 php-fpm: pool www
           ├─4186 php-fpm: pool www
           ├─4187 php-fpm: pool www
           ├─4188 php-fpm: pool www
           └─4189 php-fpm: pool www

Dec 04 14:51:15 linuxito systemd[1]: Starting LSB: starts php-fpm...
Dec 04 14:51:15 linuxito php7-fpm[4170]: Starting php-fpm  done
Dec 04 14:51:15 linuxito systemd[1]: Started LSB: starts php-fpm.
root@linuxito:~# netstat -xlpn | grep php
unix  2      [ ACC ]     STREAM     LISTENING     214685   4172/php-fpm: maste  /var/run/php7-fpm.sock

Para configurar el acceso desde Nginx, seguir los pasos en el artículo Compilar PHP 7 con FPM desde los fuentes.


Tal vez pueda interesarte


Compartí este artículo