Cómo instalar PHP 8.0 en Ubuntu 20.04 / 18.04


PHP es posiblemente uno de los lenguajes de programación del lado del servidor más utilizados. Es el idioma preferido al desarrollar sitios web dinámicos y receptivos. De hecho, plataformas CM populares como WordPress, Drupal y Magento están basadas en PHP.

En el momento de redactar esta guía, la última versión de PHP es PHP 8.0. Fue lanzado el 26 de noviembre de 2020. Cuenta con nuevas características y optimizaciones como tipos de unión, argumentos con nombre, operador seguro nulo, expresión de coincidencia, JIT y mejoras en el manejo de errores y la coherencia.

Este tutorial lo guía a través de la instalación de PHP 8.0 en Ubuntu 20.04/18.04.

En esta página

  • Add the Ondřej Surý PPA Repository on Ubuntu
  • Install PHP 8.0 with Apache on Ubuntu
  • Install PHP 8.0 with Nginx on Ubuntu
  • Install PHP 8 Extensions in Ubuntu
  • Verify PHP 8 Installation in Ubuntu

PHP 7.4 es la versión predeterminada de PHP en los repositorios de Ubuntu 20.04 en el momento de escribir este tutorial. Para instalar la última versión de PHP, usaremos los repositorios de Ondrej PPA. Este repositorio contiene múltiples versiones de PHP y extensiones de PHP.

Pero primero, actualice los paquetes de su sistema Ubuntu e instalemos algunas dependencias como se muestra.

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install  ca-certificates apt-transport-https software-properties-common

A continuación, agregue el PPA de Ondrej.

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

Cuando se le solicite, presione ENTRAR para continuar con la adición del repositorio.

A continuación, actualice los repositorios del sistema para comenzar a usar el PPA.

$ sudo apt update

Si está ejecutando el servidor web Apache, instale PHP 8.0 con el módulo Apache como se muestra.

$ sudo apt install php8.0 libapache2-mod-php8.0 

A continuación, reinicie el servidor web Apache para habilitar el módulo.

$ sudo systemctl restart apache2

Si desea utilizar el servidor web Apache con PHP-FPM, ejecute el siguiente comando para instalar los paquetes necesarios:

$ sudo apt install php8.0-fpm libapache2-mod-fcgid

Dado que PHP-FPM no está habilitado de forma predeterminada, habilítelo invocando los siguientes comandos:

$ sudo a2enmod proxy_fcgi setenvif
$ sudo a2enconf php8.0-fpm

Luego reinicie el servidor web Apache para que los cambios entren en vigencia.

$ sudo systemctl restart apache2

Si elige usar PHP 8.0 con la instalación de Nginx, el paso más recomendado es instalar PHP-FPM para procesar archivos PHP.

Por lo tanto, instale PHP y PHP-FPM usando el siguiente comando:

$ sudo apt install php8.0-fpm

El servicio PHP-FPM debería iniciarse automáticamente. Puede verificar esto como se muestra:

$ sudo systemctl status php8.0-fpm

Para que Nginx procese archivos PHP, configure su bloque de servidor Nginx actualizando la sección del servidor como se muestra:

server {

   # ... some other code

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.0-fpm.sock;
    }
}

Finalmente, reinicie el servidor web Nginx para que los cambios entren en vigencia.

$ sudo systemctl restart nginx

Las extensiones de PHP son bibliotecas que amplían la funcionalidad de PHP. Estas extensiones existen como paquetes y se pueden instalar de la siguiente manera:

$ sudo apt install php8.0-[extension-name]

Por ejemplo, el siguiente ejemplo instala las extensiones SNMP, Memcached y MySQL.

$ sudo apt install php8.0-snmp php-memcached php8.0-mysql

Para confirmar la versión de PHP instalada, ejecute el comando:

$ php -v

Además, puede crear un archivo php de muestra en/var/www/html como se muestra:

$ sudo vim /var/www/html/info.php

Pegue las siguientes líneas y guarde el archivo.

<?php

phpinfo();

?>

Finalmente, diríjase a su navegador y busque la dirección IP del servidor como se muestra.

http://server-ip/info.php

Debería mostrar la página web.

Esperamos que ahora pueda instalar PHP 8.0 e integrarlo cómodamente con los servidores web Apache o Nginx. Sus comentarios son bienvenidos.