PHP en Ubuntu: instala FPM y comprueba la ejecución
Para ejecutar aplicaciones PHP en Ubuntu, instala una versión mantenida que sea compatible con el proyecto. Si utilizarás Nginx, PHP-FPM es una opción habitual para procesar scripts. No necesitas añadir un PPA externo por defecto si los paquetes de la distribución cubren tu necesidad.
Esta guía parte de un laboratorio sin instalaciones previas en conflicto. Revisa requisitos de la aplicación y soporte antes de cambiar versiones en un sitio existente.
Identifica paquetes y versión
cat /etc/os-release
apt-cache policy php php-fpm
sudo apt update
sudo apt install php-cli php-fpm php-mysql php-curl php-mbstring php-xml php-zip
php -v
php -m
Las extensiones del ejemplo no son una lista universal. Una aplicación puede necesitar otras o no utilizar algunas. Consulta sus requisitos y evita instalar componentes sin propósito.
Comprueba FPM por separado
El comando php -v corresponde al ejecutable de consola. El proceso que atiende la web puede utilizar otra versión o configuración.
systemctl list-units --type=service 'php*-fpm.service'
ls -l /run/php/
Identifica el servicio y socket reales. No copies php8.3-fpm.sock a un servidor cuya instalación utiliza otra ruta. Si hay varias versiones, documenta cuál atiende cada sitio.
Configura Nginx con una ruta controlada
En el bloque del sitio, una configuración de referencia puede incluir:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
El ejemplo utiliza el esquema de paquetes de Ubuntu y una ruta que debes comprobar. Revisa que root y el mapeo del script correspondan al sitio y que no se envíen archivos inexistentes al backend.
Valida con nginx -t y recarga solo si termina correctamente. Comprueba también el servicio FPM y sus logs.
Prueba sin divulgar configuración
Puedes crear temporalmente un script mínimo que devuelva un mensaje y comprobar que se ejecuta, en lugar de publicar phpinfo con detalles del sistema.
<?php
header('Content-Type: text/plain; charset=utf-8');
echo "PHP responde\n";
Si el navegador descarga el archivo o muestra su código, detén la publicación y corrige la configuración antes de colocar scripts con secretos. Retira el archivo de prueba al terminar.
php.ini, límites y cargas
Los límites de memoria, subida y tiempo deben corresponder a la aplicación y capacidad del servidor. No los aumentes todos ante cualquier error.
Comprueba qué archivo de configuración carga cada entorno. Cambiar php.ini de la CLI no modifica necesariamente FPM. Reinicia o recarga el servicio apropiado siguiendo su procedimiento y vuelve a probar.
Actualizaciones y repositorios externos
Un PPA puede ofrecer versiones adicionales, pero añade un proveedor y un ciclo de mantenimiento. Evalúa necesidad, compatibilidad y posibilidad de volver atrás antes de incorporarlo.
Consulta soporte de PHP y del proveedor de paquetes. Para actualizar, prueba temas, plugins, extensiones y procesos programados, no solo la portada.
Preguntas frecuentes
¿Instalar php-cli hace que Nginx ejecute PHP?
No. Necesitas un backend, como FPM, y una configuración que le envíe correctamente los scripts.
¿Por qué mi tarea cron usa otra versión PHP?
Puede resolver otro ejecutable o configuración. Usa rutas y versiones explícitas cuando el proceso lo requiera.
¿Puedo dejar phpinfo para revisar después?
No es recomendable en una web pública. Puede revelar detalles del entorno; utiliza diagnósticos temporales y retíralos.
En pocas palabras
PHP necesita una versión mantenida y extensiones compatibles con la aplicación. La CLI y FPM pueden utilizar configuraciones diferentes; comprobar una no acredita automáticamente la otra.
Conclusión
Retira cualquier diagnóstico público y conserva una configuración mínima documentada. Antes de actualizar PHP, prueba la aplicación completa y prepara una vía de retorno.
Para continuar, revisa Cómo instalar Ubuntu desde una USB: paso a paso y Cómo instalar Docker en Ubuntu 24.04: guía práctica paso a paso.
