Actualizar PHP 7.3 en Ubuntu y Debian

En este artículo vamos a ver como podemos actualizar PHP a la versión 7.3 en Ubuntu y Debian.

Es posible que tu CMS WordPress o cualquier otro te avise de que estás trabajando con una versión antigua de PHP.

WordPress ha detectado que tu sitio está funcionando con una versión insegura de PHP.

Ejemplo de WordPress quejándose de tu versión de PHP

Es bastante facil realizar esta actualización pero recuerda realizar unas copias de seguridad de tus webs antes de empezar a toquetear.

Como actualizar PHP

Para actualizar PHP de una forma correcta debemos añadir un repositorio. Tambien tenemos que exportar un listado con todas las extensiones PHP que teníamos instaladas para instalarlas posteriormente y como no, tenemos que instalar la nueva versión de PHP.

No te asustes, vamos paso por paso.

Añadimos el respositorio necesario

Empezaremos instalando el repositorio PHP PPA Ondrej. Este repositorio publica PHP 7.3 en todas las versiones compatibles de Ubuntu y Debian.

Añadir repositorio en Ubuntu

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

Añadir repositorio en Debian

sudo apt install apt-transport-https lsb-release
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'

El resto de pasos son similares en ambas distribuciones

Si estás actualizando PHP desde una versión anterior, es importante asegurarse de tener instaladas las mismas extensiones PHP.

Desde la versión PHP 7.2 en adelante ya no se incluye la extensión mcrypt. Aparte de eso, PHP 7.3 incluye todas las extensiones que estaban en PHP 7.1 y 7.2.

Para ver las extensiones instaladas puedes utilizar el comando dpkg -l | grep php | tee extphp.txt . Este comando lee los paquetes de PHP y los vuelca en un fichero de texto llamado extphp.txt. El fichero se guarda en el directorio en el que estás trabajando.

Instalación base de PHP 7.3

sudo apt install php7.3 php7.3-common php7.3-cli

Instalar las extensiones de PHP necesarias

Ahora puedes instalar las extensiones de PHP que puedas necesitar. Si estás configurando de cero, o no sabes qué paquetes instalar, puedes instalar los siguientes paquetes con el siguiente comando.

Si estás actualizando, mira el archivo extphp.txt que exportaste anteriormente para ver la lista de extensiones que tenias instaladas y añade las que te hagan falta.

apt install php7.3-mysql php7.3-bcmath php7.3-bz2 php7.3-curl php7.3-gd php7.3-intl php7.3-json php7.3-mbstring php7.3-readline php7.3-xml php7.3-zip

Una vez instaladas las extensiones, seguramente necesites integrar PHP con Apache. Si utilizas utilizando Nginx o Apache con mod_event, necesitas instalar el paquete php7.3-fpm. Si en cambio usas PHP como un módulo de Apache incorporado, necesitas el paquete libapache2-mod-php7.3.

En Apache, puedes lanzar el comando apachectl -V para ver la versión de MPM actual, ya sea prefork o evento.

Nginx y Apache con Event MPM

apt install php7.3-fpm

Apache con Prefork MPM

apt install libapache2-mod-php7.3

Comprobar la instalación del nuevo PHP

Para ver si se ha instalado correctamente podemos lanzar el comando php -v

php -v

Este comando nos devolverá última la versión de PHP instalada en nuestro servidor linux.

Ahora, vamos a colocar en alguna de nuestras webs un fichero llamado info.php para ver la versión de PHP con la que está funcionando.

Navegamos hasta la ubicación donde se encuentra la web en la que queremos poner el archivo y escribimos:

sudo nano info.php

Dentro de este archivo añadimos lo siguiente:

<?php
phpinfo();
?>

Ahora accedemos a esa web que acabamos de publicar desde cualquier navegador. Por ejemplo: www.tufantasticawebconphp.com/info.php

Cambiar y activar la versión de PHP en Apache

Para cambiar la versión de PHP con la que está trabajando Apache primero debemos deshabilitar la version de PHP. Esto lo hacemos con el comando a2dismod phpX (Donde X es la versión de PHP que queremos deshabilitar)

a2dismod php7.0
sudo service apache2 restart

A continuacuón debemos activar la nueva versión, esto lo hacemos con el comando a2enmod phpX (Donde X es la versión de PHP que hemos instalado y queremos habilitar)

a2enmod php7.3
service apache2 restart

Una vez hecho esto, volvemos a acceder a nuestra web para comprobar el info.php y veremos que ya estamos funcionando con la versión de PHP que hemos habilitado.

Resultado de actualizar PHP 7.3
Esta es la información de php.info después de actualizar a php7.3