Cómo instalar y configurar PHP en Ubuntu 22.04: Guía completa paso a paso

目次

1. Introducción

¿Por qué usar PHP en Ubuntu?

PHP es un lenguaje de scripting del lado del servidor utilizado en muchas aplicaciones web, incluyendo WordPress. Ha sido ampliamente usado durante muchos años en el desarrollo web, y gran parte de los CMS y frameworks están construidos en PHP.

Ubuntu es una distribución de Linux altamente estable, utilizada por desarrolladores en todo el mundo y muy adecuada para entornos de servidor. La combinación de Ubuntu y PHP se aprovecha ampliamente, desde proyectos personales hasta entornos de producción empresariales.

Audiencia y objetivos de este artículo

Este artículo está dirigido tanto a principiantes que desean “instalar PHP en Ubuntu pero no saben por dónde empezar”, como a usuarios intermedios que buscan instalar una versión específica de PHP. El objetivo es explicar los pasos de la manera más clara posible.

Se asume que se utiliza Ubuntu 22.04 LTS, pero los pasos básicos son en general aplicables a otras versiones.

Qué aprenderás en este artículo

Al leer este artículo, podrás comprender y poner en práctica lo siguiente:

  • Método básico para instalar PHP en Ubuntu
  • Cómo instalar y cambiar entre múltiples versiones de PHP
  • Cómo verificar el funcionamiento de PHP y resolver problemas
  • Configuración con Apache o Nginx
  • Instalación de módulos de PHP más utilizados

2. Requisitos previos y preparación

Cómo verificar la versión de Ubuntu

Lo primero es comprobar la versión de Ubuntu que estás utilizando. El método de instalación de PHP y los módulos disponibles pueden variar ligeramente según la versión.

Ejecuta el siguiente comando para verificar la versión de Ubuntu:

lsb_release -a

También puedes usar este comando:

cat /etc/os-release

Este artículo se basa en Ubuntu 22.04 LTS, pero los pasos también son válidos para 20.04 o 23.10.

Mantener el sistema actualizado

Antes de instalar PHP, es importante actualizar los paquetes del sistema a la versión más reciente. Esto evita dependencias obsoletas o incompatibilidades. Ejecuta lo siguiente:

sudo apt update
sudo apt upgrade -y

Esto actualiza el índice del gestor de paquetes APT y permite instalar los paquetes en su versión más reciente.

Instalar utilidades necesarias

Para instalar ciertas versiones de PHP puede ser necesario añadir repositorios adicionales. Para ello se requiere el paquete “software-properties-common”. Si no está instalado, ejecútalo con:

sudo apt install -y software-properties-common

Este paquete permite usar comandos como add-apt-repository. Es especialmente útil al usar PPA (Personal Package Archive) para instalar versiones específicas de PHP.

Uso de permisos root o sudo

Muchas de las operaciones descritas requieren permisos de superusuario. Por ello deberás anteponer sudo a los comandos. Si no estás familiarizado, revisa el uso básico de este comando antes de continuar.

3. Métodos de instalación de PHP

En Ubuntu hay dos métodos principales para instalar PHP: desde el repositorio estándar o mediante un PPA (Personal Package Archive) para seleccionar la versión deseada. A continuación se explican ambos.

Instalar PHP desde el repositorio estándar

El repositorio oficial de Ubuntu incluye versiones estables de PHP. Si no necesitas una versión específica, puedes instalarlo con:

sudo apt install -y php

Después de la instalación, verifica con:

php -v

Ejemplo:

PHP 8.1.2 (cli) (built: ...)

En Ubuntu 22.04, la versión estándar es PHP 8.1.

Instalar una versión específica usando un PPA

Si quieres usar la última versión o gestionar múltiples versiones, puedes añadir el PPA ondrej/php.

Paso 1: Añadir el repositorio PPA

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

Este repositorio es ampliamente utilizado en la comunidad Ubuntu y ofrece versiones actualizadas y estables de PHP.

Paso 2: Instalar la versión deseada

Ejemplo, para instalar PHP 8.2:

sudo apt install -y php8.2

De manera similar puedes instalar PHP 7.4, 8.0, etc.

Paso 3: Verificar la versión

php -v

Si la instalación fue exitosa, verás la información de la versión.

4. Verificación del funcionamiento de PHP

Una vez instalado PHP, es importante comprobar que funciona correctamente. En Ubuntu se puede verificar tanto desde la línea de comandos (CLI) como a través de un servidor web (Apache o Nginx). A continuación se explican ambos métodos.

Verificación desde la línea de comandos (CLI)

En primer lugar, muestra la versión de PHP en la terminal:

php -v

Si aparece la versión instalada y la información de compilación, significa que PHP funciona correctamente en CLI.

Ejemplo de salida:

PHP 8.2.10 (cli) (built: Aug 23 2023 08:12:10) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.2.10, Copyright (c) Zend Technologies

Verificación a través de un servidor web (Apache)

Si usas Apache, puedes confirmar la integración con PHP creando una página de prueba con la función phpinfo().

1. Crear archivo de prueba

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

2. Acceder con el navegador

http://localhost/info.php

3. Confirmar la información

Si se muestra la información detallada de PHP, significa que funciona correctamente con Apache.

🔍 Nota: Dado que phpinfo() muestra información sensible, elimina el archivo después de comprobarlo.

sudo rm /var/www/html/info.php

Verificación con Nginx + PHP-FPM

Con Nginx, PHP se procesa mediante php-fpm. Debes asegurarte de que los archivos .php estén configurados correctamente en el archivo de configuración de Nginx.

Si la configuración es incorrecta, puede mostrarse un error 500 o una descarga del archivo. En ese caso, revisa las directivas fastcgi_pass e include fastcgi-php.conf;.

5. Instalación de módulos comunes de PHP

El núcleo de PHP no incluye todas las funciones. Muchas se proporcionan como módulos (extensiones) que se instalan según la necesidad. A continuación se describen los módulos más usados.

¿Qué son los módulos de PHP?

Los módulos permiten funciones adicionales como conexión a bases de datos, soporte de caracteres multibyte, procesamiento de imágenes, XML y más.

En Ubuntu se instalan con APT, por ejemplo:

sudo apt install php-nombre-del-módulo

Si deseas una versión específica:

sudo apt install php8.2-mbstring

Principales módulos de PHP y su uso

php-mbstring (soporte multibyte)

Necesario para trabajar con caracteres multibyte como el japonés. Es casi imprescindible en sitios multilingües o aplicaciones de correo.

sudo apt install php-mbstring

php-mysql (conexión MySQL/MariaDB)

Permite integrar PHP con bases de datos MySQL o MariaDB. Es obligatorio en aplicaciones como WordPress.

sudo apt install php-mysql

php-gd (procesamiento de imágenes)

Se usa para generar, convertir o redimensionar imágenes. Útil para miniaturas o capturas.

sudo apt install php-gd

php-xml (procesamiento XML)

Necesario para manejar datos en XML, RSS o SOAP. Usado en CMS y APIs.

sudo apt install php-xml

php-curl (comunicación HTTP)

Permite enviar solicitudes HTTP desde el servidor, por ejemplo, al interactuar con APIs externas.

sudo apt install php-curl

php-zip (archivos comprimidos)

Soporta la compresión y descompresión de archivos ZIP.

sudo apt install php-zip

Habilitar módulos y reiniciar

Algunos módulos requieren habilitación explícita después de instalarlos:

sudo phpenmod nombre-del-módulo
sudo systemctl restart apache2

6. Gestión y cambio de versiones de PHP

En Ubuntu puedes instalar múltiples versiones de PHP en un mismo servidor y alternar entre ellas. Esto es útil en entornos de desarrollo o cuando se alojan múltiples aplicaciones.

Cambiar versión en CLI

Comando: update-alternatives

Este comando permite seleccionar la versión predeterminada en la terminal.

Paso 1: Verificar versiones instaladas

ls /usr/bin/php*

Paso 2: Registrar versiones en update-alternatives (solo la primera vez)

sudo update-alternatives --install /usr/bin/php php /usr/bin/php7.4 74
sudo update-alternatives --install /usr/bin/php php /usr/bin/php8.2 82

Paso 3: Seleccionar versión

sudo update-alternatives --config php

Aparecerá una lista de versiones disponibles, elige la deseada.

Paso 4: Verificar versión activa

php -v

Cambiar versión en Apache

Apache permite habilitar o deshabilitar módulos PHP según la versión que quieras usar.

1. Listar módulos disponibles

ls /etc/apache2/mods-available | grep php

2. Deshabilitar el módulo actual

sudo a2dismod php7.4

3. Habilitar el módulo deseado

sudo a2enmod php8.2

4. Reiniciar Apache

sudo systemctl restart apache2

De esta forma se aplica tanto en CLI como en la ejecución a través de Apache.

7. Configuración con Apache o Nginx

PHP no solo funciona de forma independiente, sino que se integra con servidores web para construir aplicaciones completas. En Ubuntu se usan principalmente Apache o Nginx. A continuación se explican ambos casos.

Configuración con Apache (mod_php)

Apache puede ejecutar scripts PHP directamente usando el módulo mod_php. Es un método sencillo, ideal para poner en marcha CMS como WordPress.

Paso 1: Instalar Apache y mod_php

sudo apt install -y apache2 libapache2-mod-php

Paso 2: Reiniciar Apache

sudo systemctl restart apache2

Paso 3: Probar con archivo PHP

Crea test.php en /var/www/html con el siguiente contenido:

<?php
phpinfo();
?>

Accede en el navegador:

http://localhost/test.php

Configuración con Nginx (PHP-FPM)

Nginx es un servidor ligero y rápido, pero requiere PHP-FPM (FastCGI Process Manager) para procesar PHP.

Paso 1: Instalar Nginx y PHP-FPM

sudo apt install -y nginx php-fpm

Paso 2: Editar la configuración de Nginx

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

Asegúrate de incluir un bloque como este:

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

Paso 3: Reiniciar Nginx

sudo systemctl restart nginx

Paso 4: Probar con archivo PHP

Crea /var/www/html/test.php y verifica que muestre información de PHP.

Nota: Configuración del firewall

Si usas UFW (Uncomplicated Firewall), habilita el acceso web con:

sudo ufw allow 'Apache Full'
# o
sudo ufw allow 'Nginx Full'

Apache destaca por su facilidad, mientras que Nginx ofrece mejor rendimiento. Elige según tus necesidades.

8. Solución de problemas (Troubleshooting)

PHP no funciona (el navegador muestra el código fuente)

Causa

El servidor web no está procesando PHP y lo muestra como texto. Suele deberse a que el módulo no está activo o a una mala configuración.

Solución

  • Apache: verifica que libapache2-mod-php esté instalado y activo, y reinicia.
sudo apt install libapache2-mod-php
sudo systemctl restart apache2
  • Nginx: confirma que php-fpm está instalado y que fastcgi_pass apunta al socket correcto.
sudo systemctl restart php8.2-fpm
sudo systemctl restart nginx

Ciertas funciones no funcionan (función indefinida)

Causa

Faltan módulos de PHP.

Solución

sudo apt install php-mbstring php-xml php-curl
sudo systemctl restart apache2  # o nginx

Los errores de PHP no aparecen en pantalla

Causa

En la configuración por defecto, los errores suelen estar desactivados.

Solución

Edita php.ini:

sudo nano /etc/php/8.2/apache2/php.ini

Modifica estas líneas:

display_errors = On
error_reporting = E_ALL

Reinicia el servidor web:

sudo systemctl restart apache2

Ver logs de errores

  • Apache: /var/log/apache2/error.log
  • Nginx: /var/log/nginx/error.log
  • PHP-FPM: /var/log/php8.2-fpm.log
sudo tail -f /var/log/apache2/error.log

El flujo recomendado es: ver logs → revisar configuración → reiniciar servidor.

9. Resumen

En este artículo vimos cómo instalar y configurar PHP en Ubuntu, desde lo básico hasta configuraciones avanzadas.

Puntos clave

  • Verificar versión de Ubuntu y preparar sistema con actualizaciones.
  • Dos métodos de instalación: repositorio estándar o PPA.
  • Verificación tras la instalación: con php -v y phpinfo().
  • Módulos: instálalos según necesidad (ej. php-mysql, php-mbstring).
  • Cambio de versiones: usando update-alternatives o módulos de Apache.
  • Integración con Apache/Nginx: configuración correcta es clave.
  • En caso de problemas: revisar logs siempre ayuda.

Próximos pasos recomendados

  • Instalar MySQL/MariaDB y conectar con PHP
  • Configurar WordPress
  • Probar frameworks como Laravel
  • Configurar HTTPS con Let’s Encrypt
  • Automatizar procesos con systemd

La combinación Ubuntu + PHP ofrece un entorno robusto y flexible. Aprovecha este punto de partida para desarrollar servicios y aplicaciones web más avanzadas.

10. Preguntas frecuentes (FAQ)

Q1. ¿Cómo instalo la última versión de PHP en Ubuntu?

A1. Los repositorios estándar no siempre incluyen la versión más reciente. Agrega el PPA ondrej/php e instala la versión deseada:

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2

Q2. ¿Cómo cambiar la versión de PHP en CLI?

A2. Usa update-alternatives y selecciona la versión:

sudo update-alternatives --config php

Q3. Apache muestra el código PHP en vez de ejecutarlo.

A3. Asegúrate de que libapache2-mod-php esté instalado y habilitado:

sudo apt install libapache2-mod-php
sudo systemctl restart apache2

Q4. ¿Dónde está el archivo php.ini?

A4.

  • Apache: /etc/php/8.2/apache2/php.ini
  • CLI: /etc/php/8.2/cli/php.ini

Q5. ¿Cómo habilitar módulos de PHP?

A5. Después de instalar, habilítalos con:

sudo phpenmod mbstring
sudo systemctl restart apache2

Q6. Nginx no ejecuta PHP correctamente, ¿qué debo revisar?

A6. Verifica que php-fpm esté instalado y que la directiva fastcgi_pass apunte al socket correcto:

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

Q7. Los errores de PHP no se muestran en pantalla.

A7. Edita php.ini y activa:

display_errors = On
error_reporting = E_ALL

No olvides reiniciar el servidor web.

Con estas soluciones podrás manejar los problemas más comunes al usar PHP en Ubuntu.

侍エンジニア塾