saya baru saja menginstal nginx 1.1.13 dan php 5.4.0 pada mesin centos 5.8 final 64bit. Nginx dan PHP / Fpm sedang berjalan, dan saya bisa menjalankan skrip php melalui ssh command line, tetapi di browser saya terus mendapatkan 'File not found.' kesalahan pada semua file PHP saya.
Ini adalah bagaimana saya membuat nginx.conf saya menangani skrip PHP:
location ~ \.php$
{
root /opt/nginx/html;
fastcgi_pass unix:/tmp/fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /opt/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
Ini adalah copy / paste langsung dari server saya yang lain, di mana ia berfungsi dengan baik dengan pengaturan ini (tetapi mereka menjalankan versi php / fpm yang lebih lama).
Mengapa saya mendapatkan kesalahan itu?
Jawaban:
Masukkan "sertakan fastcgi_params;" sebelum semua "fastcgi_param *" lines, "sertakan fastcgi_params;" mengganti semua baris "fastcgi_param *" Anda (lihat nginx debug log):
sumber
Saya memiliki masalah yang sama.
Apa yang saya lakukan untuk menyelesaikan ini adalah memeriksa pengguna yang menjalankan nginx, php-fpm dan memeriksa izin mereka untuk mengakses folder di mana root berada. Ini adalah 'data-www' default.
tetapi Anda bisa mengetahuinya dengan menggunakan perintah
ps aux | grep php-fpm
danps aux | grep nginx
.Anda harus memastikan folder tersebut dapat diakses oleh pengguna yang menjalankan proses ini.
sumber
Saya memiliki masalah yang sama, dan bagi saya itu adalah perintah "root" yang salah konfigurasi / tidak ada di konfigurasi server nginx
sumber
Saya menggunakan konfigurasi seperti itu, semoga bisa membantu Anda. Ia bekerja di OS X. Bagi saya, jawaban @Xosofox bekerja. Saya salah mengetik versi nginx 1.6.2 sebagai 1.2.6, sehingga root menjadi direktori yang tidak ada.
sumber
Saya mengatasi masalah ini dengan mengubah pengguna dan grup menjadi pengguna saat ini: grup di php-fpm.d / www.conf
Secara default, pengguna dan grup adalah 'nginx', ubah ....
Semoga ini membantu
sumber