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:
- ¿Cómo Compilar PHP 8 en Debian 10?
- Cómo instalar PHP 7.4 en Ubuntu 20.04
- COMPILANDO PHP DESDE EL CÓDIGO FUENTE
- PHP NUEVAS CARACTERÍSTICAS
- ¿Cómo instalar NGINX en Alpine Linux?
- Cómo instalar Apache en Ubuntu 20.04
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.
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?