Saya tahu ini adalah pertanyaan yang populer tetapi saya belum menemukan orang dengan masalah yang sama. Saya dapat melayani file PHP selama ekstensi .php tidak ada di url. Sebagai contoh:
Jika saya pergi ke localhost
saya dilayani file index.php saya. Jika saya pergi ke localhost/index.php
saya mengunduh file. Ini konfigurasi saya:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.php index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
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
}
# Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
#location /RequestDenied {
# proxy_pass http://127.0.0.1:8080;
#}
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
Saya cukup bingung dengan masalah ini dan saya bertanya-tanya apakah ada yang punya pengalaman dalam masalah ini.
php.ini
?Jawaban:
Jika ini kadang-kadang berfungsi (jadi Anda tahu PHP-FPM sudah aktif dan berfungsi), saya akan cukup siap untuk menjadi masalah nginx. Saya curiga terhadap beberapa aturan di blok lokasi PHP Anda. Mereka mungkin melanggar URL tertentu yang menyebabkan nginx keluar.
Anda hanya perlu 2 baris untuk menangkap indeks direktori:
Lepaskan lokasi itu kembali, muat ulang nginx dan lihat apa yang terjadi.
Jika Anda perlu menulis ulang (URL cantik di Wordpress, dll) Anda ingin menambahkan sesuatu seperti ini
Tetapi hanya lakukan itu setelah URL standar berfungsi.
sumber
Namun memiliki masalah yang sama, saya juga membutuhkan baris ini
Saya juga punya
dan harus memastikan itu pergi setelah lokasi
~ \.php$ {..}
sumber
include fastcgi.conf;
hampir samainclude fastcgi_params;
tetapi juga termasukfastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
yang beberapa pengguna yang memasukkaninclude fastcgi_params;
bukan.conf
termasuk secara manual dalam konfigurasi situs mereka.