Rumah >pembangunan bahagian belakang >masalah PHP >Apakah yang perlu saya lakukan jika mac nginx tidak menghuraikan php?

Apakah yang perlu saya lakukan jika mac nginx tidak menghuraikan php?

藏色散人
藏色散人asal
2021-07-23 10:02:022701semak imbas

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.

Apakah yang perlu saya lakukan jika mac nginx tidak menghuraikan php?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn