Instalar PHP, PHP-FPM en Alpine Linux

Español

PHP es un lenguaje script de propósito general que es usado fundamentalmente para desarrollo web, es pragmático, fácil de aprender y usar, está en constante evolución con una amplia comunidad de de desarrollares que se encargan de enriquecer este popular lenguage de programación con nuevas características, por tanto está en constante evolución.

PHP 8.0 incorporó características modernas como: Unión de tipos (Union Types), Argumentos nombrados (Named arguments), expresiones match (Match expressions), compilación en tiempo de ejecución (Just In Time Compilation) .

PHP-FPM es usado conjuntamente con un servidor web como Apache o NGINX y se encarga de servir contenido dinámico, mientras el servidor web se encarga de servir el contenido estático.

En el día de hoy vamos a instalar PHP 8.0 en Alpine Linux.

Le puede interesar:

Instalar PHP y PHP-FPM

PHP-FPM introduce el concepto de pools, cada pool puede recibir conexiones en un socket TPC/IP (IP:Puerto) o en socket UNIX, y puede ejecutarse bajo un usuario y grupo diferente. Cada pool tiene su fichero de configuración, por defecto en Alpine el fichero de configuración se puede encontrar en:

Para instalar PHP conjuntamente con PHP-FPM ejecute el siguiente comando:

Antes de ejecutar el siguiente comando asegurese de tener activo el repositorio community

https://ams.edge.kernel.org/alpine/v3.14/community

Ahora proceda con la instalación:

# apk add php8 php8-fpm
fetch https://ams.edge.kernel.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz
fetch https://ams.edge.kernel.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
(1/3) Installing php8-common (8.0.9-r0)
(2/3) Installing php8 (8.0.9-r0)
(3/3) Installing php8-fpm (8.0.9-r0)
Executing busybox-1.33.1-r3.trigger
OK: 303 MiB in 77 packages

Una vez terminado el proceso puede explorar las configuraciones por defecto, aquí una muestra de las estructura de directorios:

# tree  /etc/php8/
/etc/php8/
├── conf.d
├── php-fpm.conf
├── php-fpm.d
│   └── www.conf
└── php.ini

2 directories, 3 files

Puede saber el valor de la directiva listen ejecutando el comando:

# grep 'listen =' -R /etc/php8/
/etc/php8/php-fpm.d/www.conf:listen = 127.0.0.1:9000

Crear enlace simbólico

El repositorio community provee 2 versiones de PHP: 7.4, 8.0 por la tanto debemos crear un enlace simbólico a la versión correspondiente

# ln -s /usr/bin/php8 /usr/bin/php

Mostrar versión instalada

php -v
PHP 8.0.9 (cli) (built: Jul 30 2021 03:43:07) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.9, Copyright (c) Zend Technologies

Mostrar módulos instalados

php -m
[PHP Modules]
Core
date
filter
hash
json
libxml
pcre
readline
Reflection
SPL
standard
zlib

[Zend Modules]

Como muestra la salida anterior solo se ha instalado un número reducido de módulos o extensiones, puede mostrar todos los módulos disponibles para instalar con el siguiente comando:

# apk search php8
php8-imap-8.0.9-r0
php8-ftp-8.0.9-r0
php8-pspell-8.0.9-r0
php8-phar-8.0.9-r0
...

Para instalar un módulo adicionales, por ejemplo curl y mysqli ejecute:

# apk add php8-curl php8-mysqli
(1/4) Installing php8-curl (8.0.9-r0)
(2/4) Installing php8-openssl (8.0.9-r0)
(3/4) Installing php8-mysqlnd (8.0.9-r0)
(4/4) Installing php8-mysqli (8.0.9-r0)
OK: 304 MiB in 81 packages

Administrar el servicio php-fpm8

En esta parte aprenderemos cómo iniciar, detener o reiniciar el servicio php-fpm8 , para esto usaremos el sistema de inicialización OpenRC. OpenRC es el sistema de inicialización por defecto en distribuciones como Gentoo y Alpine Linux.

Comprobar estado

# rc-service php-fpm8 status
 * status: stopped

Iniciar

# rc-service php-fpm8 start
 * Caching service dependencies ...                     [ ok ]
 * Checking /etc/php8/php-fpm.conf ...
 * /run/php-fpm8: creating directory
 * Starting PHP FastCGI Process Manager ...             [ ok ]

Ahora puede comprobar si el servicio se inició correctamente

rc-service php-fpm8 status
 * status: started

Iniciar con el sistema operativo

Puede asegurarse de que el servicio php-fpm8 se iniciará automáticamente después de un reinicio del sistema ejecutando el siguiente comando:

# rc-update add php-fpm8 default
 * service php-fpm8 added to runlevel default

Refrescar las configuraciones

Cada vez que realice un cambio en los ficheros de configuración primero verifique el cambio que hizo con el comando:

# php-fpm8 -t
[31-Jul-2021 23:17:01] NOTICE: configuration file /etc/php8/php-fpm.conf test is successful

Y luego refresque las configuraciones con:

# rc-service php-fpm8 reload
 * Reloading PHP FastCGI Process Manager ...	[ ok ]

Reiniciar

# rc-service php-fpm8 restart
 * Stopping PHP FastCGI Process Manager ...        [ ok ]
 * Checking /etc/php8/php-fpm.conf ...
 * Starting PHP FastCGI Process Manager ...        [ ok ]

Detener

# rc-service php-fpm8 stop
 * Stopping PHP FastCGI Process Manager ...       [ ok ]

Para integrar PHP-FPM y NGINX consulte: ¿Cómo instalar NGINX en Alpine Linux?

YouTube video

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.