Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah yang perlu saya lakukan jika mac nginx tidak dapat menghuraikan fail php?

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

PHPz
PHPzasal
2023-04-11 10:31:03686semak imbas

Ia adalah operasi biasa untuk menggunakan Nginx untuk membina pelayan web pada Mac, tetapi kadangkala anda menghadapi masalah yang Nginx tidak dapat menghuraikan fail PHP. Dalam kes ini, apabila mengakses fail PHP, ia akan dimuat turun terus dan bukannya dihuraikan dan dilaksanakan, yang membawa kesulitan kepada pembangunan web.

Artikel ini akan memperkenalkan cara menyelesaikan masalah yang Nginx tidak dapat menghuraikan fail PHP apabila menggunakan Nginx untuk membina pelayan web pada Mac. Ia terutamanya merangkumi aspek berikut:

  1. Analisis sebab
  2. Penyelesaian
  3. Analisis sebab

Nginx tidak menyokong penghuraian PHP secara lalai . PHP-FPM perlu digunakan untuk melaksanakan penghuraian PHP. Selepas PHP-FPM dimulakan, ia mewujudkan sambungan Soket dengan Nginx dan memajukan permintaan kepada proses PHP-FPM untuk diproses kemudian mengembalikan hasil pemprosesan kepada Nginx, dan akhirnya Nginx mengembalikan hasilnya kepada klien.

Oleh itu, sebab Nginx tidak boleh menghuraikan fail PHP mungkin seperti berikut:

  1. PHP-FPM tidak dipasang
  2. PHP-FPM tidak dimulakan
  3. Penghuraian PHP tidak dikonfigurasikan dalam fail konfigurasi Nginx
  4. Penyelesaian

Atas sebab di atas, ambil kaedah berikut untuk menyelesaikannya.

2.1 Pasang PHP-FPM

Mula-mula anda perlu memasang PHP-FPM, anda boleh menggunakan Homebrew untuk memasang:

brew install php-fpm

Selepas pemasangan selesai, anda boleh gunakan arahan berikut untuk menyemak sama ada ia berjaya dipasang:

php-fpm -v

Jika maklumat versi PHP dipaparkan, pemasangan berjaya.

2.2 Mulakan PHP-FPM

Selepas memasang PHP-FPM, anda perlu memulakan proses PHP-FPM:

sudo php-fpm

Selepas bermula, anda boleh menggunakan yang berikut arahan untuk menyemak PHP-FPM Sama ada permulaan berjaya:

ps aux | grep php-fpm

Jika maklumat yang serupa seperti berikut dipaparkan, ini bermakna PHP-FPM berjaya dimulakan:

_www           49202   0.0  0.7  5871400  11664   ??  S    11:42上午   0:00.03 php-fpm: pool www

2.3 Konfigurasikan Nginx

dalam fail konfigurasi Nginx Untuk menambah konfigurasi penghuraian PHP, anda boleh menambah kandungan berikut dalam segmen pelayan:

location ~ \.php$ {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

Arahan penghuraian:

  • location ~ .php$: bermaksud memadankan semua permintaan yang berakhir dengan .php
  • fastcgi_pass   127.0.0.1:9000;: Menunjukkan bahawa permintaan akan dimajukan ke proses PHP-FPM untuk diproses Nombor port di sini harus konsisten dengan nombor port digunakan apabila proses PHP-FPM dimulakan
  • fastcgi_index  index.php;: Menunjukkan bahawa apabila permintaan Apabila tiada fail tertentu dalam direktori, index.php digunakan secara lalai sebagai fail masukan
  • fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;: menunjukkan bahawa laluan penuh fail yang diminta dihantar ke proses PHP-FPM, di mana $document_root mewakili direktori akar Web konfigurasi Nginx, $ fastcgi_script_name mewakili laluan penuh permintaan (tidak termasuk nama domain dan parameter)
  • include        fastcgi_params;: mewakili pengenalan fail konfigurasi parameter FastCGI, yang mengandungi beberapa konfigurasi parameter yang berkaitan dengan FastCGI.

Selepas konfigurasi selesai, anda boleh menggunakan arahan berikut untuk memuatkan semula konfigurasi Nginx:

sudo nginx -s reload

Di atas adalah penyelesaian kepada masalah yang Nginx tidak dapat menghuraikan fail PHP apabila menggunakan Nginx untuk membina pelayan web pada kaedah Mac. Semoga artikel ini bermanfaat kepada anda.

Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika mac nginx tidak dapat menghuraikan fail 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