Cómo instalar PHP en Ubuntu 18.04 LTS

En esta entrada vamos a ver cómo instalar PHP en Ubuntu 18.04 LTS Bionic Beaver paso a paso, para dotar de las últimas versiones de este lenguaje, PHP 7.3, PHP 7.4 e incluso PHP 8.0, a tu servidor o VPS Ubuntu, imprescindible en el desarrollo web o para instalar potentes CMS y aplicaciones web.

Antes de instalar PHP en Ubuntu 18.04

Para seguir esta guía de instalación y configuración de PHP en Ubuntu 18.04 LTS necesitarás:

  • Una instalación actualizada de Ubuntu 18.04.
  • Acceso por consola con un usuario administrador (con privilegios de sudo).
  • Además, para aprovechar todo el potencial de PHP en aplicaciones web, conviene tener instalado un servidor web.

Este tutorial trabaja sobre Apache y Nginx, así que si aún no tienes instalado ninguno de ellos puedes seguir la guía de instalación de Apache en Ubuntu 18.04  o la guía de instalación de Nginx en Ubuntu 18.04 publicadas en este mismo sitio.

Cómo instalar PHP en Ubuntu 18.04

Para instalar PHP en Ubuntu 18.04 LTS podríamos utilizar los paquetes procedentes de los repositorios de la propia distribución, pero hay que saber que esto nos restringe a la versión 7.2 de PHP.

Como paso previo actualizaremos las listas de paquetes desde una consola con el comando apt:

~$ sudo apt update

Si deseas trabajar con la versión incluida por defecto en Ubuntu 18.04 LTS, PHP 7.2, sáltate el siguiente paso.

Cómo configurar el repositorio de PHP 7.3, PHP 7.4 y PHP 8.0 para Ubuntu 18.04

Si queremos disfrutar de versiones más modernas de PHP en Ubuntu 18.04 LTS, a partir de PHP 7.3 hasta PHP 8.0 en el momento de actualizar esta guía, tendremos que añadir un repositorio adicional.

Necesitaremos añadir algunas herramientas para la administración de repositorios:

~$ sudo apt install -y software-properties-common

Ahora ya podemos añadir el repositorio para las versiones actualizadas de PHP en Ubuntu 18.04 LTS:

~$ sudo add-apt-repository ppa:ondrej/php

Esta operación requerirá confirmación:

...
Pulse [ENTRAR] para continuar o Ctrl+C para cancelar la adición.

Pulsaremos la tecla Intro para confirmar la instalación del repositorio.

Es recomendable actualizar los paquetes para los que existan versiones nuevas:

~$ sudo apt upgrade -y

Nomenclatura de los paquetes

A partir de este momento, cualquier referencia a paquetes de PHP sin número de versión hacen referencia a la última versión estable disponible, PHP 8.0 en el momento de actualizar esta guía. Si necesitas PHP 7.4 debes especificar php7.4 en los nombres de los paquetes.

Por ejemplo, el paquete libapache2-mod-php instalaría el módulo de PHP 8.0 para Apache, mientras que el paquete libapache2-mod-php7.4 instalaría la versión 7.4.

Dependiendo del servidor web que tengamos instalado en Ubuntu 18.04, necesitaremos PHP funcionando como un módulo del servidor o como un servicio independiente. Vamos a ver cómo hacer la instalación de PHP para los servidores Apache y Nginx.

PHP para Apache

En este caso PHP funciona como módulo del servidor web, así que el paquete que necesitaremos es php, que instalaremos con el comando apt:

~$ sudo apt -y install libapache2-mod-php

Al finalizar la descarga e instalación, PHP y el módulo para el servidor web quedan perfectamente integrados y listos para usar.

PHP para Nginx

En este caso el servidor web conectará con el servicio independiente PHP-FPM, por lo que el paquete que necesitamos es php-fpm, que instalaremos con apt:

~$ sudo apt install -y php-fpm

Instalados el paquete php-fpm y sus dependencias se crea un nuevo servicio en Ubuntu 18.04, el servicio php7.2-fpm.service o php7.2-fpm, que queda en ejecución, aunque es necesario realizar algo de configuración extra para que el servidor web conecte con el servicio PHP-FPM.

En primer lugar configuraremos el servidor por defecto:

~$ sudo nano /etc/nginx/sites-available/default

Localizamos este bloque location desactivado:

...
# pass PHP scripts to FastCGI server
#
# location ~ \.php$ {
#       include snippets/fastcgi-php.conf;
#
#       # With php-fpm (or other unix sockets):
#       fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
#       # With php-cgi (or other tcp sockets):
#       fastcgi_pass 127.0.0.1:9000;
#}
...

Activaremos el bloque y las líneas necesarias para conectar con el servicio PHP-FPM. Además cambiaremos el nombre del archivo php7.0-fpm.sock por php7.4-fpm.sock, ya que la versión de PHP para Ubuntu 18.04 es la 7.4:

...
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
        include snippets/fastcgi-php.conf;
#
#       # With php-fpm (or other unix sockets):
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
#       # With php-cgi (or other tcp sockets):
#       fastcgi_pass 127.0.0.1:9000;
}
...

Guardados los cambios, recargamos la configuración del servidor web:

~$ sudo systemctl reload nginx

En el caso de tener más servidores virtuales habrá que repetir la operación anterior en los archivos de configuración de cada uno de ellos.

Cómo saber la versión de PHP instalada

Si quieres saber cuál es la versión de PHP que se acaba de instalar en tu sistema Ubuntu 18.04 puedes usar el comando php en consola:

~$ php -v
PHP 7.4.13 (cli) (built: Nov 28 2020 06:24:43) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.13, Copyright (c), by Zend Technologies

Cómo probar PHP en consola

Para comprobar el funcionamiento de PHP directamente en consola crearemos un pequeño script con nuestro editor de texto favorito:

~$ nano test.php

Su contenido podría ser el siguiente:

<?php echo "Hola, mundo\n\n";

Para ejecutar este script en consola usaremos el comando php y observaremos la salida que produce:

~$ php test.php
Hola, mundo

~$

Podemos ver que PHP funciona correctamente.

Cómo comprobar la integración de PHP con el servidor web

Tras instalar PHP en Ubuntu 18.04 y realizar, si es necesario, la integración con el servidor web, podemos comprobar que todo funciona creando una sencilla página web en PHP ubicada en la raíz de documentos de la página web por defecto del servidor:

~$ sudo nano /var/www/html/info.php

El contenido será la función phpinfo():

<?php phpinfo();

Ahora, a través de un navegador introduciremos como URL la dirección IP, el nombre de máquina o su dominio si lo tiene, añadiendo al final la ruta /info.php.

En este ejemplo, el servidor es accesible mediante el dominio ubuntu64.local.lan, así que la URL http://ubuntu64.local.lan/info.php sería válida:

como instalar php en ubuntu 18.04 lts bionic beaver
Comprobación de la instalación de PHP en Ubuntu 18.04 LTS

Si has elegido instalar PHP 8.0 para tu máquina Ubuntu 18.04 LTS el resultado será similar:

como instalar php 8 en ubuntu 18.04 lts

Cómo configurar PHP en Ubuntu 18.04

Aunque gran parte de la configuración ya viene hecha, para configurar PHP en Ubuntu 18.04 LTS buscaremos los archivos de configuración bajo el directorio /etc/php/x.x/ (donde x.x depende la versión de PHP instalada en nuestro sistema Ubuntu 18.04).

El archivo de configuración de PHP para el módulo de Apache es /etc/php/x.x/apache2/php.ini:

~$ sudo nano /etc/php/7.4/apache2/php.ini

Sin embargo, para el servicio PHP-FPM encontraremos el archivo php.ini en la ruta /etc/php/x.x/fpm/:

~$ sudo nano /etc/php/7.4/fpm/php.ini

Vamos a ver algunos ajustes iniciales que podríamos hacer en php.ini.

Zona horaria

Editando la configuración de PHP en Ubuntu 18.04 deberíamos configurar la zona horaria del servidor, buscando la cláusula date.timezone:

...
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =
...

Para conocer qué valores admite date.timezone podemos seguir el enlace https://www.php.net/manual/es/timezones.php. Una vez conocido el valor que necesitamos, descomentamos date.timezone y añadimos ese valor:

...
date.timezone = Europe/Madrid
...

Tratamiento de mensajes de error

Es importante tener en cuenta el comportamiento de PHP ante los errores. Por defecto PHP viene con valores para entornos de producción, por lo que por motivos de seguridad no se informa sobre los errores que se produzcan en los scripts PHP. Podemos comprobarlo buceando en php.ini:

...
; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
; http://php.net/error-reporting
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
...
; Default Value: On
; Development Value: On
; Production Value: Off
; http://php.net/display-errors
display_errors = Off
...
; Default Value: Off
; Development Value: On
; Production Value: Off
; http://php.net/display-startup-errors
display_startup_errors = Off
...

Si el servidor Ubuntu 18.04 en el que estamos trabajando es para desarrollo, prácticas, etc. entonces puede ser más conveniente asignar valores de desarrollo, tal y como indica la ayuda en los comentarios:

...
error_reporting = E_ALL
...
display_errors = On
...
display_startup_errors = On
...

Aplicar los cambios

Todos estos cambios y cualquier otro que necesites realizar en tu configuración no entrarán en vigor hasta la próxima vez que se cargue la nueva configuración.

En el caso de Apache recargamos la configuración del servidor web:

~$ sudo systemctl reload apache2

Mientras que para Nginx lo que recargamos es el servicio PHP-FPM:

~$ sudo systemctl reload php7.2-fpm

Cómo instalar extensiones PHP en Ubuntu

PHP es un lenguaje de script muy potente de por sí. Pero la mayoría de su potencia a día de hoy se debe a la cantidad de extensiones que se pueden añadir para extender sus capacidades y, por tanto, las de nuestras aplicaciones web.

La instalación por defecto de PHP en Ubuntu 18.04 incluye las extensiones mínimas para empezar a trabajar con este lenguaje. Pero tarde o temprano necesitaremos más extensiones para aplicaciones más importantes como sistemas CMS, sistemas de comercio electrónico, frameworks para aplicaciones, etc.

Para instalar extensiones de PHP en Ubuntu 18.04 basta con buscarlas en el repositorio mediante apt e instalarlas. Prácticamente todos los paquetes de extensiones de PHP tienen un nombre que comienza por php-.

Por ejemplo, una de las extensiones que más se instala es la que nos conecta con MariaDB o MySQL. Para instalarla mediante apt utilizaríamos un comando en consola como:

~$ sudo apt -y install php-mysql

Recuerda lo dicho anteriormente sobre la versión de PHP instalada y la nomenclatura de los paquetes.

Se descargará la extensión junto con sus dependencias y quedará instalada y lista para utilizar, pero habrá que recargar la configuración del servidor web o del servicio PHP-FPM para que se tengan en cuenta los cambios.

Conclusión

Como acabas de comprobar, ahora que sabes cómo instalar PHP en Ubuntu 18.04 LTS Bionic Beaver, esta es una tarea trivial que cualquiera puede realizar en su sistema. A partir de este paso ya puedes comenzar con el desarrollo o instalación de complejas aplicaciones web.

En siguientes tutoriales veremos cómo ampliar las capacidades de nuestro servidor Ubuntu 18.04 LTS y la instalación de algunas de las aplicaciones más populares.

Déjame un comentario con cualquier corrección, duda o sugerencia.

¡Apoya este sitio!

Si te ha servido esta guía de instalación y configuración de PHP en Ubuntu 18.04 LTS y te apetece colaborar en el mantenimiento de este portal, cualquier mínima contribución es bienvenida, y puedes hacerlo invitándome a un café:

 

O dejando 1 $ de propina en PayPal:

¡Gracias!

Valora esta entrada

5/5 - (1 voto)

4 comentarios en «Cómo instalar PHP en Ubuntu 18.04 LTS»

  1. Buenas tardes.

    Este es uno de los mejores tutoriales que he encontrado en mucho tiempo.
    Se puede ver que la persona que lo ha realizado tiene un gran conocimiento del tema.

    Muchas gracias y saludos.

    Responder

Deja un comentario