PHP, Nginx, Ubuntu · 4 min read · Jan 23, 2026

Instalando PHP 5.3, Nginx Y PHP-fpm En Ubuntu/Debian

Instalando PHP 5.3, Nginx Y PHP-fpm En Ubuntu/Debian

Versión 1.1
Sígueme en Twitter

Dado que Apache es la mayoría de las veces un proceso que consume mucha memoria, la gente comenzó a buscar diferentes formas de alojar su sitio web. Apache claramente no es el único servidor web disponible. Algunos buenos ejemplos son lighttpd y nginx. En este tutorial te mostraré cómo instalarlo en tu servidor Ubuntu. Este tutorial también se aplica a Debian, aunque hay solo una diferencia muy pequeña.

¿Listo? Comencemos, ¿verdad?

Paso 0 - Notas Preliminares

Para completar este tutorial, asumo que has instalado un sistema base de Debian o Ubuntu. Cómo se puede hacer esto, se puede leer en diferentes tutoriales. Este tutorial solo se centra en hacer que nginx+php funcione sin muchas complicaciones.

Paso 1 - Nginx

Instalar nginx es el primer paso que tenemos que hacer. Esto se puede hacer fácilmente descargándolo del repositorio.

sudo apt-get install nginx

El vhost predeterminado debe ser cambiado para funcionar correctamente.

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

Un buen punto de partida para tu configuración es:

server {
    listen   80;
    server_name  localhost;
    access_log  /var/log/nginx/localhost.access.log;

## Ubicación predeterminada
    location / {
        root   /var/www;
        index  index.php;
    }

## Las imágenes y el contenido estático se tratan de manera diferente
    location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
      access_log        off;
      expires           30d;
      root /var/www;
    }

## Analiza todos los archivos .php en el directorio /var/www
    location ~ .php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass   backend;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_param  QUERY_STRING     $query_string;
        fastcgi_param  REQUEST_METHOD   $request_method;
        fastcgi_param  CONTENT_TYPE     $content_type;
        fastcgi_param  CONTENT_LENGTH   $content_length;
        fastcgi_intercept_errors        on;
        fastcgi_ignore_client_abort     off;
        fastcgi_connect_timeout 60;
        fastcgi_send_timeout 180;
        fastcgi_read_timeout 180;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
    }

## Deshabilitar la visualización de .htaccess y .htpassword
    location ~ /\.ht {
        deny  all;
    }
}  
upstream backend {  
        server 127.0.0.1:9000;  
}  
 

Ok, hemos terminado aquí. Ahora instalaremos los archivos necesarios para PHP.

Paso 2 - Instalando PHP

Muchos sitios dependen de PHP para proporcionarles contenido dinámico, ya sea un wiki, software de foro, weblog o algo completamente diferente.

Si estás ejecutando Ubuntu, primero debemos resolver dos dependencias requeridas para los paquetes dotdeb. Si estás ejecutando la versión amd64, debes reemplazar i386 con amd64.

¡Para Debian no tendrás que hacer esto!

cd /tmp
wget http://us.archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5ubuntu2_i386.deb
wget http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu38_3.8-6ubuntu0.2_i386.deb
sudo dpkg -i *.deb

Nuevamente, esto es solo necesario si estás en Ubuntu.

El resto del tutorial se aplica tanto a Ubuntu como a Debian.

Tendremos que agregar el repositorio dotdeb a las fuentes de APT, para que podamos usar su PHP 5.3 empaquetado y php-fpm:

sudo echo "deb http://php53.dotdeb.org stable all" >> /etc/apt/sources.list

Actualiza apt:

sudo apt-get update

El texto resultante debería incluir dotdeb.

Ahora instalaremos PHP (parte 1):

sudo apt-get install php5-cli php5-common php5-suhosin

Debemos instalar el cli antes que el resto, porque esto causará problemas más adelante.

sudo apt-get install php5-fpm php5-cgi

Si planeas usar una base de datos o necesitas módulos específicos (mcrypt, ldap, snmp, etc.) también puedes instalarlos.

Ok, así que ahora tenemos nginx y PHP.

Una pequeña observación: Si estás usando “etiquetas cortas de PHP” (

Paso 3 - Finalizando

Reinicia nginx para ponerte al día con los cambios de configuración que hicimos anteriormente.

sudo /etc/init.d/nginx restart

El reinicio debería haberse realizado sin problemas.

Después de instalar php5-fpm, debería haberse iniciado. Si cambiaste tus archivos php.ini, debes reiniciar php5-fpm.

sudo /etc/init.d/php5-fpm restart

Muy bien. Ahora deberían estar ambos en funcionamiento.

Paso 4 - Pruebas

Para probar si la ejecución de PHP está funcionando, crea un archivo index.php en /var/www con el siguiente contenido:

Visita tu servidor web y deberías poder ver el phpinfo generado. Si no, algo salió mal.

Paso 5 - Solución de Problemas & Notas Finales

Si no viste el phpinfo, puede haber algo mal. Para rastrear lo que salió mal, puedes verificar el registro de errores de nginx:

sudo tail /var/log/nginx/error.log

Recuerda, si cambiaste tu php.ini debes reiniciar php5-fpm. Reiniciar nginx no es necesario.

En mi configuración de ejemplo, he habilitado la interceptación de errores de fastcgi. Si ocurre un error grave (por ejemplo, un “no se puede redeclarar la clase xyz”), nginx puede capturar esta página y mostrar una página de error “agradable” que algo salió mal. De esta manera, se proporciona menos información en caso de que algo esté saliendo muy mal.

Si no te gusta esto, puedes desactivarlo.

Si php5-fpm no está en funcionamiento, tus archivos PHP no pueden ser analizados y nginx mostrará al usuario una página de error.

Bueno, creo que hemos terminado y ahora puedes servir PHP con tu nuevo servidor web basado en nginx. Nginx es bastante agradable y puedes configurar mucho. Si necesitas reescrituras, ten en cuenta que nginx no funciona con archivos .htaccess. Necesitarás cambiar la configuración de tu vhost para que las reescrituras funcionen.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.