Configurando um server block no NGINX com PHP5-FPM
No NGIX, um server block é exatamente igual a um VHOST no servidor Apache. Vamos direto ao assunto:
###1 - Instalação NGINX e PHP Primeiro instalamos o PHP5-FPM e o servidor NGINX:
1
sudo apt-get install php5-fpm nginx
###2 - Configurando server blocks do NGINX Após terminar a instalação, acesse a pasta onde as configurações dos server blocks do NGINX ficam guardadas:
1
cd /etc/nginx/sites-available
Dentro dessa pasta há um arquivo default
, que contém as configurações padrão. Crie uma cópia desse arquivo com o nome que você quiser (de preferência que seja parecido com a URL do seu server block para manter um padrão):
1
sudo cp default meusite.com
Agora abra o arquivo copiado com seu editor de texto preferido e remova os comentários #
das seguintes linhas:
1
2
3
4
5
6
7
8
9
10
11
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;
}
Agora, no mesmo arquivo, configure as variáveis root
e server_name
como achar melhor. root
é a pasta a partir da qual os arquivos serão servidos (vamos usar /var/www/meusite.com/public
) e server_name
é a URL para acessar seu servidor (vamos usar meusite.com
, que permitirá acesso pela URL http://meusite.com
):
1
2
3
4
5
root /var/www/meusite.com/public;
# ...
server_name meusite.com;
Salve o arquivo de configuração.
###3 - Habilitando o arquivo de configuração
É necessário que esse arquivo de configuração também esteja disponível dentro da pasta sites-enabled
, que fica no mesmo nível que a pasta sites-available
. Para isso, criamos um link simbólico para não replicar o documento de configuração já criado:
1
2
cd /etc/nginx/sites-enabled
sudo ln -s ../sites-available/meusite.com
###4 - Criando a pasta para servir os arquivos
O próximo passo é criar a pasta de onde os arquivos serão servidos. Use mkdir -p
para que os arquivos pai também sejam criados:
1
sudo mkdir -p /var/www/meusite.com/public
###5 - Criando uma entrada nos hosts do Linux
Abra o arquivo hosts
do Linux, que fica dentro da pasta /etc
, e adicione mais uma linha com os valores 127.0.0.1 meusite.com
.
###6 - Finalizando
Reinicie o serviço do PHP-FPM e o servidor NGINX:
1
2
sudo service nginx restart
sudo service php5-fpm restart
Pronto! Agora você pode acessar seu novo server block a partir da URL http://meusite.com
:
1
curl meusite.com
###E se não funcionar? O primeiro motivo pode ser que a configuração padrão esteja atrapalhando. Tente executar esses comandos:
1
2
3
sudo rm /etc/nginx/sites-enabled/default
sudo service nginx restart
sudo service php5-fpm restart
Outro motivo pode ser a permissão da pasta do projeto. Tente modificá-la da seguinte forma:
1
sudo chmod -R /var/www/meusite.com/public