Qual é a maneira mais fácil de ativar o PHP no nginx?

128

Qual é a maneira mais fácil de ativar o PHP no nginx no Ubuntu 12.04?

A melhor solução é aquela que requer trabalho mínimo, idealmente apenas uma instalação de pacote:)

    
por sorin 10.05.2012 / 00:39

2 respostas

137

O seguinte método irá começar rapidamente no Ubuntu 12.04:

Instale as dependências:

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

Instale o nginx:

sudo apt-get install nginx

Iniciar o nginx:

sudo service nginx start

Teste que está funcionando (deve aparecer "Bem-vindo ao nginx!")

sudo service nginx stop

Na configuração do seu site nginx (/ etc / nginx / sites-available / default), modifique a linha na seção {} do servidor

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

Descomente as linhas na seção {} do servidor começando com

listen para ipv4 / ipv6 ambos.

Role para baixo até onde diz "location ~ .php {" e remova o comentário das linhas para que fique assim:

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

Sua raiz da web padrão está localizada em / usr / share / nginx / www (de acordo com o arquivo de configuração). (Veja root /usr/share/nginx/www;

(Nota: Para o Ubuntu 12.10 ou mais recente, você precisará substituir a linha fastcgi_pass 127.0.0.1:9000; por isso para que funcione: fastcgi_pass unix:/var/run/php5-fpm.sock; )

    
por papashou 10.05.2012 / 01:07
46

EDIT: Como apontado por Matt Browne você pode estar interessado neste post mais recente:
Como Instalar o Linux, Nginx, MySQL, PHP (LEMP stack) no Ubuntu 16.04

A resposta da papashou está correta no antigo Ubuntu 12.04. Desde o Ubuntu 12.10, a configuração é um pouco diferente. Aqui está o que eu fiz:

Instalar

sudo apt-get install nginx php5-fpm

Ativar PHP

Remova o comentário das seguintes linhas no arquivo de configuração /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 (ou reiniciar)

sudo service php5-fpm restart
sudo service nginx restart

Teste em nginx

Abrindo este link http://localhost deve exibir "Welcome to nginx!"

Teste em php

Crie um arquivo php:

  • O caminho de destino é a saída de

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

    por exemplo. /usr/share/nginx/www

  • Escreva um arquivo info.php com:

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

    ou como one-liner

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

Abrir http://localhost/info.php deve exibir a página de informações do PHP.

    
por olibre 07.03.2013 / 05:39