Когда я использую эту конфигурацию, файлы PHP работают в базовой папке ( /var/www/dmcblue.com/www
) . Но я добавил туда символическую ссылку как data
из / usr / share / phpMyAdmin
. Файлы доступны (например, http: // [IP_ADDRESS] / data / themes / dot .gif
), но файлы PHP просто возвращают 404.
# /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name [IP_ADDRESS];
# note that these lines are originally from the "location /" block
#root /var/www/dmcblue.com/www;
#index index.php index.html index.htm;
location / {
root /var/www/dmcblue.com/www/;
try_files $uri $uri/ =404;
index index.php index.html index.htm;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
include fastcgi_params;
}
}
Более странная часть состоит в том, что если я добавлю следующую чушь, это сработает:
location /data/ {
root /var/www/dmcblue.com/www/;
try_files $uri $uri/ =404;
index index.php index.html index.htm;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
include fastcgi_params;
}
}
Это не имеет смысла, и я не уверен, как я пришел к это.
Все файлы являются частью группы nginx
, включая символическую ссылку.
По сути, я просто хочу использовать символические ссылки для создания подпапок, а это не работает для файлов PHP. Как мне сделать это правильно?
Я все еще не понимаю, почему, но я скорректировал конфигурацию из DigitalOcean , и, похоже, он работает. Если кто-нибудь сможет объяснить, почему оригинал не работает, я был бы очень признателен.
server {
listen 80;
listen [::]:80 ipv6only=on;
root /var/www/dmcblue.com/www;
index index.php index.html index.htm;
server_name [IP_ADDRESS];
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}