En este artículo veremos cómo instalar PHP en CentOS 8 / CentOS Stream 8 paso a paso, tanto la versión 7.2 de la distribución, como PHP 7.3, PHP 7.4, PHP 8.0 ó incluso el nuevo PHP 8.1 (en fase experimental) de forma que quede integrado en tu servidor o VPS CentOS para la instalación de aplicaciones que lo necesitan, o desarrollo de las tuyas propias.
Contenido
Antes de instalar PHP en CentOS 8
Si quieres completar esta guía de instalación de PHP en CentOS 8 debes partir de unos requisitos mínimos:
- Un sistema CentOS 8 / CentOS Stream 8 actualizado.
- Acceso a línea de comandos como root o usuario con permisos de sudo.
- Servidor web instalado.
- Conexión a Internet.
En este tutorial usamos Apache cómo servidor web. En caso de no tenerlo instalado puedes consultar nuestra guía de instalación de Apache en CentOS 8.
Si ya tienes todo listo para empezar, regula tu escritorio a la altura más cómoda y abre tu terminal de comandos favorita.
Cómo instalar PHP en CentOS 8
Para instalar PHP 7.2 en CentOS 8 usaremos los paquetes disponibles en la distribución. Si fuiste usuario de la anterior versión de CentOS recordarás que los paquetes oficiales se estancaron en la versión 5.4.16; sin embargo, ahora por fin disponemos de PHP 7.2 sin repositorios adicionales.
Empezaremos actualizando la información de los repositorios:
~$ sudo yum update
Cómo instalar PHP 7.3, 7.4, 8.0 y 8.1 en CentOS 8
Si quieres instalar PHP 7.3, PHP 7.4, PHP 8.0 ó PHP 8.1 en CentOS 8 sigue estos pasos adicionales.
Instala el repositorio Remi:
~$ sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Actualiza las listas de paquetes:
~$ sudo yum update -y
Desactiva el módulo php incluido en la distribución de CentOS 8:
~$ sudo yum module disable -y composer glpi php
Hemos desactivado también un par de módulos más que son dependencias, pero que activaremos de nuevo enseguida.
Activa el módulo php del repositorio Remi que te interese (remi-7.3, remi-7.4, remi-8.0 ó remi-8.1):
~$ sudo yum module enable -y php:remi-7.4 composer glpi
Ya puedes continuar.
Instalación de PHP
Sea cual sea la versión de PHP que vas a instalar en CentOS 8, el paquete que buscamos es php:
~$ sudo yum install -y php
Tras la descarga e instalación del paquete php y sus dependencias se crea un nuevo servicio en nuestro sistema CentOS 8, llamado php-fpm.service, o más brevemente php-fpm.
El servicio php-fpm no se inicia tras la instalación ni está configurado para arrancar automáticamente con cada inicio del sistema, por lo que tendremos que hacer de forma manual esta primera configuración.
Para arrancar el servicio usaremos systemctl start:
~$ sudo systemctl start php-fpm
Y para que php-fpm inicie automáticamente en cada arranque del sistema usaremos systemctl enable:
~$ sudo systemctl enable php-fpm
Podemos comprobar que php-fpm está en ejecución y activado con el comando systemctl status php-fpm
:
Hecho esto, debemos recargar la configuración del servidor web, para que tenga en cuenta la nueva configuración de PHP:
~$ sudo systemctl reload httpd
Comprobar el funcionamiento de PHP en CentOS 8
Si quieres saber qué versión de PHP se ha instalado, puedes comprobarlo desde consola con el comando php -v
:
También puedes crear un pequeño script de prueba:
~$ nano hola.php
El contenido será el típico ‘Hola, mundo» de todo primer programador que se precie:
<?php echo "Hola, mundo\n\n";
Guardados los cambios y cerrado el archivo, lo ejecutamos desde consola con php:
~$ php hola.php hola, mundo ~$
Para probar la integración de PHP con el servidor web, crearemos un script fácilmente localizable vía web en la misma página por defecto del sistema:
~$ sudo nano /var/www/html/info.php
El contenido será únicamente la función phpinfo():
<?php phpinfo();
Guardamos y cerramos el archivo.
Podrás acceder a este archivo añadiendo /info.php a la dirección IP o dominio con que se pueda acceder a servidor web en CentOS 8, incluyendo 127.0.0.1 y localhost en el caso de acceso local.
Cómo configurar PHP en CentOS 8
Para configurar PHP en CentOS 8 trabajaremos sobre el archivo principal de configuración, cuya ruta es /etc/php.ini como puedes comprobar en la información que ofrece phpinfo().
Editaremos este archivo como superusuario:
~$ sudo nano /etc/php.ini
Una configuración prácticamente obligatoria es la zona horaria, ya que por defecto viene sin configurar.
Buscaremos la directiva date.timezone:
... [Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone ;date.timezone = ...
Eliminamos el carácter ; al inicio de línea e indicamos el valor de la zona horaria que corresponda:
... date.timezone = Europe/Madrid ...
Si no conoces el valor que corresponda a tu zona horaria, tal como se informa en los comentarios del propio php.ini puedes consultar todos los posibles valores en http://php.net/date.timezone.
Mensajes de error
Es necesario saber que PHP viene configurado por defecto con valores de producción, destinados a un servicio dirigido al público. Sin embargo, si lo que estás montando es un servicio para desarrollo necesitarás cambiar algunos valores.
En un entorno de producción los mensajes de error de PHP no se mostrarán en el navegador, para evitar mostrar información sensible. Sin embargo en un entorno de desarrollo es importante que se muestren estos mensajes de error, para ayudar en la depuración.
Las directivas que hay que tener en cuenta son:
... error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT ... display_errors = Off ... display_startup_errors = Off ...
Los valores para desarrollo serían los siguientes:
... error_reporting = E_ALL ... display_errors = On ... display_startup_errors = On ...
En los comentarios de php.ini verás los valores para producción y desarrollo sobre cada directiva, por lo que revertir los cambios será fácil.
Actualizar la configuración de PHP
Como PHP en CentOS 8 funciona en forma de servicio independiente, para que los cambios de configuración hagan efecto habrá que recargar la configuración de este servicio:
~$ sudo systemctl reload php-fpm
Cómo instalar extensiones de PHP en CentOS 8
En multitud de ocasiones necesitaremos instalar nuevas extensiones de PHP para nuestros desarrollos o para aplicaciones que las exigen como requerimiento.
Para instalar una extensión de PHP bastará con localizar el paquete e instalarlo con yum. La mayoría de paquetes de extensiones comienzan su nombre con php-.
Algunas extensiones incluyen arhivos propios de configuración que se guardan en /etc/php.d/. Si necesitas realizar ajustes en estos archivos, deberás recargar la configuración del servicio php-fpm para que hagan efecto.
Conclusión
Ya ves que instalar y configurar PHP en CentOS 8 / CentOS Stream 8 no tiene mayor problema que descargarlo desde los repositorios de la distribución y manejarlo como un servicio más de nuestro sistema. A partir de esto ya puedes comenzar a desarrollar tus aplicaciones o instalar las que funcionan con PHP.
¡Apoya comoinstalar.me!
¿Te ha servido nuestra pequeña guía de instalación y configuración para hacer funcionar este lenguaje de programación en tu máquina y quieres agradecérnoslo? Si es así, cualquier mínima contribución al mantenimiento del sitio y elaboración de más guías y tutoriales es bienvenida.
Puedes ayudarnos dejando una propina de tan sólo 1 $ desde PayPal:
O, si te sientes especialmente generoso, puedes invitarnos a un café:
¡Gracias!
¿Preguntas, dudas, sugerencias?
¿Tienes alguna pregunta, duda o sugerencia? Deja un comentario que revisaremos lo antes posible (los comentarios están moderados para evitar en lo posible toneladas de molesto SPAM, pero se revisan prácticamente a diario).
Perfecto aporte, soy novato y me ha funcionado a la primera.
Gracias.
¡Estupendo, topete!
Valioso aporte,
funcionó todo,
Dios que te bendiga.
Me alegro de que te haya servido.