nginx giving 404 when accessing php from alias directory
Posted
by
code90
on Server Fault
See other posts from Server Fault
or by code90
Published on 2012-08-28T22:31:21Z
Indexed on
2012/09/07
9:40 UTC
Read the original article
Hit count: 251
I am trying to migrate from apache to nginx. The php sites that I am hosting need to access a shared library which turns out to be an alias directory. Below is the configuration I came up with. html files work fine, but php files giving 404. I have read through and tried most (if not all) of the answers to the similar questions with no any success. Any hint on what might be causing the issue in my case?
location /wtlib/ {
alias /var/www/shared/wtlib_4/;
index index.php;
}
location ~ /wtlib/.*\.php$ {
alias /var/www/shared/wtlib_4/;
try_files $uri =404;
if ($fastcgi_script_name ~ /wtlib(/.*\.php)$) {
set $valid_fastcgi_script_name $1;
}
fastcgi_pass 127.0.0.1:9013;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/shared/wtlib_4$valid_fastcgi_script_name;
fastcgi_param REDIRECT_STATUS 200;
include /etc/nginx/fastcgi_params;
}
Thanks all !
Update: Following seems to be working fine:
location /wtlib/ {
alias /usr/share/php/wtlib_4/;
location ~* .*\.php$ {
try_files $uri @php_wtlib;
}
location ~* \.(html|htm|js|css|png|jpg|jpeg|gif|ico|pdf|zip|rar|air)$ {
expires 7d;
access_log off;
}
}
location @php_wtlib {
if ($fastcgi_script_name ~ /wtlib(/.*\.php)$) {
set $valid_fastcgi_script_name $1;
}
fastcgi_pass $byr_pass;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/php/wtlib_4$valid_fastcgi_script_name;
fastcgi_param REDIRECT_STATUS 200;
include /etc/nginx/fastcgi_params;
}
© Server Fault or respective owner