¿Cuál es la forma más fácil de habilitar PHP en nginx?

126

¿Cuál es la forma más fácil de habilitar PHP en nginx en Ubuntu 12.04?

La mejor solución es la que solicita un trabajo mínimo, idealmente solo una instalación de paquete:)

    
pregunta sorin 10.05.2012 - 00:39

2 respuestas

135

El siguiente método te ayudará a comenzar rápidamente en Ubuntu 12.04:

Instalar las dependencias:

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

Instalar nginx:

sudo apt-get install nginx

Iniciar nginx:

sudo service nginx start

Prueba de que está funcionando (debe ver "¡Bienvenido a nginx!")

sudo service nginx stop

En la configuración del sitio de nginx (/ etc / nginx / sites-available / default), modifique la línea en el servidor {} sección

index index.html index.htm a index index.php index.html index.htm .

Descomenta las líneas en la sección del servidor {} comenzando con

listen para ipv4 / ipv6 ambos.

Desplácese hasta donde dice "location ~ .php {" y descomente las líneas para que se vea así:

location ~ \.php$ {
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  include fastcgi_params;
}

sudo service php5-fpm restart sudo service nginx restart

Su raíz web predeterminada se encuentra en / usr / share / nginx / www (según el archivo de configuración). (Ver root /usr/share/nginx/www;

(Nota: para Ubuntu 12.10 o posterior, deberá reemplazar la línea fastcgi_pass 127.0.0.1:9000; por esta para que funcione: fastcgi_pass unix:/var/run/php5-fpm.sock; )

    
respondido por el papashou 10.05.2012 - 01:07
46

EDITAR: como señaló Matt Browne , puede interesarte esto. publicación más reciente:
Cómo instalar Linux, Nginx, MySQL, PHP (pila LEMP) en Ubuntu 16.04

La respuesta de papashou es correcta en el antiguo Ubuntu 12.04. Desde Ubuntu 12.10, la configuración es un poco diferente. Esto es lo que hice:

Instalar

sudo apt-get install nginx php5-fpm

Habilitar PHP

Descomente las siguientes líneas en el archivo de configuración /etc/nginx/sites-available/default

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

#   # With php5-cgi alone:
#   fastcgi_pass 127.0.0.1:9000;
    # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
}

Iniciar (o reiniciar)

sudo service php5-fpm restart
sudo service nginx restart

Prueba nginx

Al abrir este enlace, http://localhost debería mostrar "¡Bienvenido a nginx!"

Prueba php

Crea un archivo php:

  • La ruta de destino es el resultado de

    awk -F' |;' '/^[^#]*root/ {print }' /etc/nginx/sites-available/default
    

    por ej. /usr/share/nginx/www

  • Escribe un archivo info.php con:

    echo '<?php phpinfo(); ?>' | \
        sudo tee /usr/share/nginx/www/info.php
    

    o como un trazador de líneas

    echo '<?php phpinfo(); ?>' | \
        sudo tee "$(awk -F' |;' '/^[^#]*root/ {print }' /etc/nginx/sites-available/default)/info.php"
    

Abrir http://localhost/info.php debería mostrar la página de información de PHP.

    
respondido por el olibre 07.03.2013 - 05:39

Lea otras preguntas en las etiquetas