NGINX + PHP + Windows 8

Eu já tinha escutado alguns comentários sobre o servidor NGINX, sua performance e modelo de funcionamento diferenciado.

Mas foi só quando atualizei meu computador de trabalho para o Windows 8, e meu Apache se mostrou estranhamente lento, que eu busquei mais informações e artigos que me fizeram querer experimentar esta solução.

As Versões utilizadas foram: Windows 8 Build 8400, Nginx 1.2.4, PHP 5.4.7

Se quiser experimentar, é simples e rápido, seguem os passos:

1 – Baixe Nginx: http://nginx.org/download/nginx-1.2.4.zip
Descompacte e posicione onde você achar mais conveniente, o sistema será executado diretamente deste local, não há um instalador.
No meu caso E:\nginx

2. Faça o download do PHP http://windows.php.net/download/
Descompacte e posicione da mesma forma, onde deseja que seja executado.
No meu caso E:\nginx\php

3. Configure o seu “php.ini” a seu critério
Se precisar de mais informações: http://php.net/manual/pt_BR/ini.php
E insira as instruções abaixo nas últimas linhas do seu php.ini com sua configuração de pastas

cgi.fix_pathinfo = 1
extension_dir = "E:/nginx/php/ext"

4. Para chamar o PHP via FAST-CGI:
Crie um arquivo start-php.bat com as seguintes instruções:

set PHP_FCGI_MAX_REQUESTS=1000
E:/nginx/php/php-cgi.exe -b 127.0.0.1:9000 -c E:/nginx/php/php.ini

5. Para PARAR o servidor:
Crie um arquivo stop-nginx.bat com as seguintes instruções:

taskkill / F / IM nginx.exe> nul
taskkill / F / IM php-cgi.exe> nul


 

6. Configurando o NGINX

6.1 – Abra o arquivo de configurações se encontra em: “E:\nginx\conf\nginx.conf” com o Bloco de Notas. (Eu recomendo o Notepad++).

6.2 – Você pode alterar a pasta raiz do server, no meu caso optei por “E:\www

6.3 – Adicione “index.php à lista de opções de páginas iniciais.

location / {
root                         E:/www;
index  index.php index.html index.htm;
}

6.4 – Ajustem os parâmetros para a chamada de PHP

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root                          E:/www;
fastcgi_pass                  127.0.0.1:9000;
fastcgi_index                 index.php;
fastcgi_param                 SCRIPT_FILENAME  $document_root$fastcgi_script_name;
include                            fastcgi_params;
}

7. Estamos prontos para fazer um teste:
7.1 – Execute o arquivo “nginx.exe” que se encontra na pasta do servidor no meu caso: E:/nginx/nginx.exe para iniciar o servidor.
7.2 – Execute o arquivo “start-php.bat” para rodar o PHP.
7.3 – Abra o seu navegador, e digite a URL “http://localhost” você deve ver a seguinte mensagem:

Welcome to nginx!

8. Testando o PHP
8.1 – Crie um arquivo  “index.php” na pasta root do seu servidor e insira o código:

<?php
echo"<center><h1>Hello NGINX + PHP!!!</h1></center>";
?>

8.2 – Atualize a página do seu navegador, e você deve ver a mensagem:

Hello NGINX + PHP!!!

 

9. Criando Virtual Hosts
9.1 – Crie uma pasta com o nome “virtual-host” e nela um arquivo com o nome index.php com a seguinte instrução:

<?php
echo"<center><h1>Hello Virtual Host!!!</h1></center>";
?>

9.2 – No arquivo “nginx.conf” , configure o servidor virtual como o exemplo:

server {
listen 80;
server_name  virtual-host.com;
root          E:/www/virtual-host;
location / {
index index.php index.html index.htm ;
}
location ~ \.php$ {
fastcgi_pass                   127.0.0.1:9000;
fastcgi_index                  index.php;
fastcgi_param                  SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_split_path_info        ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO        $fastcgi_path_info;
include                        fastcgi_params;
}
}

9.3 – Você deve adicionar este domínio no arquivo hosts em: C:\Windows\System32\drivers\etc\hosts para que seja redirecionado para o servidor local quando chamado (este arquivo requer permissão de administrador para ser alterado).

127.0.0.1                         virtual-host.com

10. Feito isso vamos ao último teste!

10.1 – Para este vamos precisar reiniciar o servidor, basta executar o arquivo stop-nginx.bat e em seguida executar os nginx.exe e start-php.bat.
10.2 – Abra seu navegador e digite a URL http://virtual-host.com e você deve ver a mensagem:

Hello Virtual Host!!!

Conclusão:

Eu obtive um resultado muito satisfatório a principio, a navegação esta perfeita!
Tive muita facilidade em implantar e até o momento não encontrei nenhum problema ou mal funcionamento.

Fica a ressalva de que não é recomendado o uso do PHP via FAST-CGI em ambiente de produção por motivos de segurança.

Se quiserem mais detalhes de arquitetura e performance, sigam os posts abaixo:

Artigos:

Nginx: Poderoso, rápido e fácil [Profissionais de TI]

Nova versão do Apache (2.4.2) versus Nginx – Fight!!! [Coruja de TI]


Obrigado pela leitura!

3 comentários

    • Cleiton em 8 de outubro de 2012 às 17:18
    • Responder

    É sério q tu usa o win8 para server? putz…

  1. Ola Cleiton na verdade eu não uso pra server, rsrs… essa config fiz no meu pc em casa que uso pra tudo.
    Eu sou um tipo de canivete suíço no mundo da tecnologia…

    Obrigado por ler.

    Abs!

    • Anonimo em 13 de janeiro de 2013 às 21:29
    • Responder

    Interessante

Deixe uma dúvida, resposta ou sugestão