Seu problema está na diretiva root
e no escopo deste root
.
location /ecwid_fu_scripts/ {
root /home/ankush/ecwid_fu_scripts/;
Nesse caso, quando alguém solicita example.com/ecwid_fu_scripts/, o nginx está procurando os arquivos no root
definido, mais o local. Isso se torna / home / ankush / ecwid_fu_scripts / ecwid_fu_scripts /, que não é onde seu index.php está localizado.
Para resolver isso, você tem duas opções (com o # 2 sendo a opção preferida, se você tiver liberdade sobre o seu projeto):
- Altere o
root
desse bloco de localização para / home / ankush / em vez disso. -
Ou reestruture a estrutura do seu projeto para que tudo esteja em uma pasta de projeto relativa. Agora, defina o global
root
- a diretiva fora de qualquer bloco de localização - para o novo nome da pasta do projeto (digamosroot /home/ankush/ecwid_files/;
, após a diretivaserver_name
).
Agora, ainda precisamos adicionar o conteúdo do bloco location ~ \.php$
dentro do bloco location /ecwid_fu_scripts/
, porque quando o root
é alterado, as coisas relacionadas a essa nova raiz precisam ser usadas no mesmo bloco. Isso se deve a esse tipo de armadilha : o bloco de localização para ecwid_fu_scripts está dizendo que é um arquivo .php, ele faz try_files e, em seguida, termina com este bloco e é enviado para o próximo bloco relacionado: o global location ~ \.php$
. O problema é que ele não sabe mais o que é o root
, já que ele não é definido globalmente. Assim, fastcgi_pass neste bloco não está obtendo o caminho completo.
Então, no final, sua configuração ficará assim com a opção nº 1:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
location /assets/images/ {
root /home/ankush/fu_main_files/;
autoindex off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 100;
}
location /ecwid_fu_scripts/ {
index index.php;
root /home/ankush/;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location / {
proxy_pass http://localhost:9001;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}