En este artículo vamos a ver cómo instalar PHP en Rocky Linux 8 paso a paso, de modo que puedas trabajar con este lenguaje de programación sobre tu servidor o VPS Rocky Linux, tanto en tus propios desarrollos como con aplicaciones de terceros.
Antes de instalar PHP en Rocky Linux 8
Si quieres seguir los pasos de esta guía de instalación de PHP en Rocky Linux 8 sólo necesitas cumplir los siguientes requisitos básicos:
- Un sistema Rocky Linux 8 actualizado.
- Acceso a línea de comandos con un usuario con privilegios de sudo.
- Opcionalmente, un servidor web.
- Conexión a Internet.
Si no dispones aún de servicio web te recomendamos consultar previamente nuestras guías de instalación de Apache en Rocky 8 o instalación de Nginx en Rocky 8.
En caso de tener todo listo, es hora de regular la altura correcta de nuestra mesa de trabajo, abrir nuestra terminal de comandos favorita y empezar a trabajar.
Cómo instalar PHP en Rocky Linux 8
A la hora de instalar PHP en Rocky Linux 8 tenemos varias opciones, según si queremos usar la versión del repositorio de la distribución (que sólo ofrece PHP 7.2) o alguna versión del repositorio alternativo (que ofrece versiones mucho más modernas, pero también anteriores).
PHP 8.1, 8.0 y anteriores
Si queremos trabajar con PHP 8.0, PHP 8.1, versiones anteriores o con la misma versión PHP 7.2 pero con mayor frecuencia de actualización, necesitamos instalar el repositorio alternativo.
Para ello instalamos el siguiente paquete:
~$ sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Desactivamos el módulo php de los repositorios de la distribución (y también algunos módulos dependientes):
~$ sudo yum module disable -y composer glpi php
Activamos el módulo de PHP de la versión que necesitemos en el repositorio alternativo (y también los módulos dependientes que desactivamos en el paso anterior); por ejemplo, para PHP 8.0:
~$ sudo yum module enable -y php:remi-8.0 glpi composer
Si deseas otra versión de PHP, sustituye en el comando anterior php:remi-8.0 por php:remi-7.3, php:remi-7.4, php:remi-8.1, etc.
Listo.
Instalación de PHP
Independientemente de los repositorios que hayamos decidido utilizar, actualizaremos la información de los mismos:
~$ sudo yum update
E instalamos los paquetes de PHP:
~$ sudo yum install -y php-fpm php-cli
Tras la descarga e instalación de estos paquetes y sus dependencias tenemos un nuevo servicio en Rocky Linux 8, el servicio php-fpm o php-fpm.service que no queda en ejecución ni habilitado para su inicio automático, cosa que haremos de forma manual.
Iniciamos el servicio con el comando systemctl:
~$ sudo systemctl start php-fpm
Podemos comprobar su estado en cualquier momento con la opción status del mismo comando:
~$ systemctl status php-fpm
Para que PHP-FPM esté siempre disponible iniciando automáticamente con Rocky Linux 8 tendremos que habilitarlo:
~$ sudo systemctl enable php-fpm
Si no necesitamos dicha disponibilidad y preferimos iniciarlo manualmente cuando sea necesario, deshabilitamos el servicio:
~$ sudo systemctl disable php-fpm
Si realizamos cambios en la configuración de PHP necesitaremos aplicarlos con la opción reload:
~$ sudo systemctl reload php-fpm
Cambios importantes pueden necesitar el reinicio del servicio:
~$ sudo systemctl restart php-fpm
Finalmente, también podemos detener el servicio:
~$ sudo systemctl stop php-fpm
Apache
Una vez instalado y en ejecución el servicio PHP, habrá que recargar la configuración del servidor web:
~$ sudo systemctl reload httpd
Nginx
Tendremos que hacer algunos ajustes en el archivo de configuración nginx.conf:
~$ sudo nano /etc/nginx/nginx.conf
Dentro del bloque server añadimos este bloque location:
... server { ... location ~ \.php$ { fastcgi_pass unix:/run/php-fpm/www.sock; } ... } ...
Guardamos los cambios y recargamos la configuración del servicio:
~$ sudo systemctl reload nginx
Cómo comprobar PHP en consola (CLI)
Para trabajar con scripts de PHP en modo consola es imprescindible que la versión CLI de este lenguaje esté instalada. El comando principal es php y podemos comprobar que funciona simplemente usándolo para saber el número de la versión de PHP que hemos instalado en Rocky Linux 8:
~$ php -v PHP 7.2.24 (cli) (built: Oct 22 2019 08:28:36) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
En este tutorial asumiremos la versión de PHP procedente del repositorio de Rocky Linux 8, pero todo lo explicado es aplicable a cualquier otra versión.
Cómo comprobar la integración con el servidor web
Para comprobar que PHP está integrado con el servidor web de nuestra máquina Rocky Linux 8 crearemos un pequeño script en este lenguaje.
Si usamos Apache:
~$ sudo nano /var/www/html/info.php
Y si usamos Nginx:
~$ sudo nano /usr/share/nginx/html/info.php
El contenido será únicamente una línea que llama a la función phpinfo() cuya misión es crear una página de información sobre la versión de PHP instalada y su configuración actual:
<?php phpinfo();
Guardados los cambios, podemos acceder a esta página desde el navegador indicando la dirección del servidor Rocky Linux 8 y añadiendo la ruta /info.php.
Por ejemplo, la máquina Rocky Linux 8 que hemos empleado para este tutorial es accesible en el subdominio rocky8.local.lan, así que podemos usar http://rocky8.local.lan/info.php como URL de comprobación.
Por ejemplo, para la versión de PHP incluida en los repositorios de Rocky Linux 8:
Para la versión PHP 8.0 del repositorio alternativo:
Y para la nueva versión PHP 8.1:
Cómo configurar PHP en Rocky Linux 8
Vamos a configurar PHP en Rocky Linux 8 para realizar una serie de ajustes mínimos, aunque ya hemos visto que la configuración por defecto es totalmente funcional.
El archivo de configuración principal es /etc/php.ini, aunque existen otros archivos de configuración para las extensiones de PHP en /etc/php.d/ y archivos de configuración del servicio PHP-FPM como /etc/php-fpm.conf y los ubicados en la ruta /etc/php-fpm.d/.
Realizaremos los ajustes sobre php.ini:
~$ sudo nano /etc/php.ini
Empezaremos con la configuración horaria, buscando la directiva date.timezone:
... [Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone ;date.timezone = ...
Por defecto está desactivada, así que la activaremos eliminando el carácter ; al inicio de línea y le daremos el valor adecuado a la zona horaria del servidor (o el que necesiten nuestras aplicaciones):
... date.timezone = Europe/Madrid ...
Si no conoces el valor que corresponde a tu zona horaria, puedes consultar los valores disponibles en la documentación de PHP.
También hay que tener en cuenta si deseamos una configuración de producción (para servidores a los que accederán los usuarios finales) o de desarrollo (para depuración, pruebas y desarrollo de aplicaciones).
Por defecto los valores asignados corresponden a entornos de producción, pero si estamos trabajando con un servidor para desarrollo buscaremos las siguientes directivas:
... error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT ... display_errors = Off ... display_startup_errors = Off ...
Y cambiaremos sus valores actuales por los siguientes:
... error_reporting = E_ALL ... display_errors = On ... display_startup_errors = On ...
Una vez hechos los ajustes necesarios, guardamos los cambios y recargamos la configuración del servicio php-fpm:
~$ sudo systemctl reload php-fpm
Cómo instalar extensiones de PHP en Rocky Linux 8
Es posible que durante el desarrollo o instalación de alguna aplicación sea un requisito la disponibilidad de ciertas extensiones de PHP. Instalarlas es tan fácil como buscarlas con yum si no conocemos el nombre del paquete:
~$ sudo yum search mbstring |grep -i php Última comprobación de caducidad de metadatos... php-mbstring.x86_64 : A module for PHP applications which need multi-byte string handling
Normalmente el nombre de estos paquetes comienza con el prefijo php- y termina con el nombre de la extensión. Como hemos visto, si necesitamos la extensión mbstring instalaremos el paquete php-mbstring:
~$ sudo yum install -y php-mbstring
Las extensiones tienen sus propios archivos de configuración con extensión .ini en el directorio /etc/php.d, y muchas de ellas admiten configuración en el archivo principal php.ini.
Por ejemplo, la extensión mbstring instala su propio archivo de configuración /etc/php.d/20-mbstring.ini que permite habilitarla o deshabilitarla activando o desactivando la directiva extension que contiene dicho archivo:
; Enable mbstring extension module extension=mbstring
Conclusión
Ahora que sabes cómo instalar y configurar PHP en Rocky Linux 8 ya puedes desarrollar aplicaciones web o de consola, o instalar aplicaciones de terceros sobre tu servidor o VPS Rocky.
¡Apoya comoinstalar.me!
¿Ya tienes este lenguaje de programación disponible en tu máquina gracias a nuestra pequeña guía? Si es así y quieres agradecérnoslo, cualquier pequeña aportación contribuye mucho al mantenimiento de este sitio y la creación de más guías y tutoriales.
Puedes ayudarnos dejando 1 $ de propina desde PayPal:
O, si te sientes especialmente agradecido, puedes invitarnos a un café:
¡Gracias!
¿Dudas, preguntas, sugerencias?
¿Te han surgido dudas o preguntas con este tutorial? ¿Quieres hacernos alguna sugerencia o corrección? Cuéntanoslo en un comentario que, aunque están moderados para evitar SPAM, se revisan a diario.