Rumah >pembangunan bahagian belakang >masalah PHP >Apakah yang perlu saya lakukan jika mac nginx tidak menghuraikan php?
Penyelesaian untuk mac nginx tidak menghuraikan php: 1. cp fail baharu dengan nama yang betul; 2. Jalankan arahan "php-fpm --fpm-config..."; fail www.conf; 4. Matikan proses Penyelesaian.
Persekitaran pengendalian artikel ini: sistem macOS10.15, versi PHP7.1, komputer MacBook Air 2019
mac nginx tidak menghuraikan php apa yang perlu dilakukan?
Perangkap yang dihadapi oleh mac apabila menggunakan php di bawah nginx
Saya telah diminta oleh seseorang untuk membantu mereka menggunakan tapak web, dan kemudian saya ingin menyahpepijatnya dalam nginx tempatan terlebih dahulu. Pada mulanya, apabila saya membuka halaman, ia menunjukkan 403. Saya telah melihat ini sebelum ini adalah masalah kebenaran dengan nginx Selepas menukar kebenaran, saya mendapati bahawa apabila saya mengakses halaman PHP, saya memuat turunnya secara langsung teringat bahawa komputer saya mungkin tidak mempunyai persekitaran PHP, jadi saya memuat turun PHP Kemudian masih masalah yang sama. Pendek kata, kerana saya tidak begitu mahir dengan PHP (saya menggunakan perisian seperti xampp sebelum ini), saya mengambil sedikit masa untuk menyelesaikannya.
Perkara pertama yang perlu difahami ialah nginx sendiri tidak boleh mengendalikan PHP Ia hanyalah pelayan web Apabila bahagian hadapan meminta PHP, nginx perlu menghantar antara muka kepada penterjemah PHP untuk diproses, dan kemudian kembali. hasilnya ke bahagian hadapan. Secara amnya, nginx menghantar permintaan kepada proses pengurusan fastcgi untuk diproses. Sebagai contoh, konfigurasi dalam nginx:
location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#这里原来不是$document_root,搞得我很蒙,还好网上查到改好了,不然会报file not found include fastcgi_params; }
Jadi untuk memulakan fastcgi, php-fpm digunakan di sini. Ia adalah pengurus php fastcgi dan hanya digunakan untuk bahasa php (versi lama php perlu dimuat turun secara berasingan daripada php- fpm, php-fpm yang saya gunakan telah menyepadukan ini).
Terdapat banyak soalan pelik di sini.
Kali pertama menjalankan php-fpm
gagal: /private/etc/php-fpm.conf fail tidak ditemui,
Penyelesaian: Tetapi terdapat fail php-fpm.conf.default dalam direktori ini, jadi cp fail baharu dengan nama yang betul
Jalankan php-fpm untuk kali kedua
Gagal: Tidak dapat mencari /usr/var/log/php-fpm.log
Penyelesaian: Tiada direktori sedemikian sama sekali saya menukarnya dalam fail conf tetapi ia tidak mempunyai kesan , saya tidak mempunyai pilihan selain melaksanakan php-fpm melalui arahan berikut (saya akan menggunakan arahan ini untuk melaksanakan kemudian)
php-fpm --fpm-config /private/etc/php-fpm.conf --prefix /usr/local/var
Jalankan php-fpm untuk kali ketiga
Failed: No pool defined. at least one pool section must be specified in config file
Penyelesaian: Pergi ke direktori /etc/php-fpm.d/ dan terdapat fail www.conf.default, cp fail bernama www .conf
Jalankan php-fpm untuk kali keempat
Gagal: Pelabuhan telah diduduki
Penyelesaian: Bunuh ini proses
sudo lsof -i tcp: 9000#Cari nombor proses yang menduduki port 9000
kill -9 port#Kill!
Jalankan php-fpm buat kali kelima
Berjaya!
##Suplemen:
Ada sedikit perbezaan apabila mengkonfigurasi nginx Pada mac, php-fpm mendengar secara langsung port 9000, tetapi pada pelayan, ia mendengar php7.0. -fpm.sock tetapi fail soket, kaedah ini mungkin lebih pantas, jadi dalam konfigurasi php pada nginx, tukar
fastcgi_pass 127.0.0.1:9000;
kepada:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
untuk menjalankan php dengan jayanya
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Teruskan menambah
Perkara yang sangat menarik, untuk dimuat naik 27m Dalam video , nginx melaporkan terus 413 Entiti Permintaan Terlalu Besar, tetapi saya tidak menetapkannya...
Tambah
server { ... client_max_body_size 80m; ... }
pada konfigurasi nginx (set-enabled/default) dan baca semula konfigurasi . Mulakan semula pelayan
nginx -s reload service nginx restart
dan kemudian ubah suai php.ini, ubah suai dua konfigurasi
upload_max_filesize = 80M post_max_size = 80M
dan kemudian tutup proses php-fpm dan mulakan semula~
ps: Cikgu Dia memang tak buat research langsung... mp4 tak boleh upload sebab jenis ni tak tambah sistem saya kena cari sendiri... Tak selesa :(
nota : Kini lebih disyorkan untuk menggunakan apt daripada apt-get di bawah ubuntu...jadi, sudah tiba masanya untuk menukar
Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika mac nginx tidak menghuraikan php?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!