Não use um caminho relativo na diretiva root
. Use o caminho absoluto.
Estou tentando executar o nginx e o php-cgi no meu PC com Windows. Cheguei ao ponto de querer mover o diretório html de volta para dois diretórios, para poder criar uma estrutura.
O único problema que tenho agora é que o PHP não pega nenhum arquivo .php. Eu tentei carregar um arquivo estático html (localhost / test.html) e funciona bem, mas localhost / info.php não funciona em todos.
Alguém pode me dar alguma orientação sobre isso? A parte do bloco do servidor pode ser encontrada abaixo.
server {
listen 80;
server_name localhost;
root ../../www;
index index.html index.htm index.php;
#charset koi8-r;
#access_log logs/host.access.log main;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9123;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
O php-cgi no Windows tem um bug relacionado a caminhos relativos aparentemente:
[PHP-BUG] Bug # 54955 [NEW]: O FastCGI não reconhece os caminhos relativos do Windows
Suas soluções são:
Se você estiver usando uma pilha NGINX em uma máquina local para desenvolvimento, pode haver uma configuração pré-configurada que esteja reproduzindo Gotcha:
open_basedir = "c:/webserver.;c:/”
Aqui é onde descobri o erro no Windows com o WinNMP:
Today I wanted to try out Nginx server my windows machine. After setting up the basic server block details for my project, I called the site URL. In the WT-NMP stack to quickly setup the software I needed. In the server block, I needed to specify my root path in a different location other than WWW.
Then when I hit the URL, I was getting “No Input File Specified” for my PHP script.
Now I’m not much of a reader so I just goggled here and there and didn’t found much of a fix. So then I reviewed the php log files. There I got the error message as my project folder path is not within the allowed path(s): (c:/wt-nmp)
So basically I had to edit php.init open_basedir value to include the path I stored my project. However here I could see that even the driver is considered to be as a path. So I ended up placing the driver letter since if I want to store more websites in my ‘d’ drive, I would not encounter this error. This is the final line. I have bold my text to indicate the change I made.
open_basedir = “c:/wt-nmp.;d:/”
“Happy Nginx, is a good Nginx.”