Rumah >pembangunan bahagian belakang >masalah PHP >Apa yang perlu dilakukan jika nginx tidak menghuraikan fail php
nginx ialah pelayan web berprestasi tinggi yang sering digunakan dengan PHP untuk menghasilkan kandungan dinamik dalam aplikasi web. Walau bagaimanapun, kadangkala nginx mungkin tidak menghuraikan fail PHP dengan betul, menyebabkan aplikasi tidak berjalan dengan betul. Dalam artikel ini, kami akan meneroka beberapa isu biasa yang menyebabkan nginx gagal menghuraikan fail PHP dan menyediakan penyelesaian.
Mula-mula, pastikan PHP dipasang pada pelayan anda dan nginx dikonfigurasikan dengan betul untuk berfungsi. Untuk menyemak sama ada PHP telah dipasang dengan betul, buka terminal dan jalankan arahan berikut:
php -v
Ini akan memaparkan versi PHP yang dipasang pada pelayan anda. Jika versi PHP tidak dipaparkan, pertimbangkan untuk memasang PHP.
Untuk memastikan PHP berfungsi dengan nginx, edit fail konfigurasi nginx dan tambah baris berikut:
location ~ \.php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }
Di sini kami nyatakan lokasi dan parameter lain yang nginx gunakan untuk memproses fail PHP . Sila pastikan coretan ini ada dalam fail konfigurasi nginx anda dan fail sock di dalamnya sepadan dengan fail konfigurasi PHP anda.
Jika halaman utama aplikasi web anda ialah index.php, tetapi ia tidak mengendalikannya secara automatik dalam nginx, maka anda perlu Tambah index.php dalam arahan "index" fail konfigurasi nginx seperti berikut:
index index.php index.html;
Kini, apabila anda membuka halaman utama, nginx akan mencari index.php secara automatik dan mengendalikannya dengan betul.
Satu lagi sebab utama mengapa nginx tidak boleh menghuraikan fail PHP ialah kebenaran yang salah. Pastikan yang berikut:
Juga, pastikan pemilikan fail PHP Tetapkan kepada pengguna nginx, dan pemilikan direktori tempat fail PHP terletak ditetapkan kepada kumpulan nginx. Ini boleh dicapai dengan menggunakan arahan berikut:
sudo chown -R nginx:nginx /var/www/html/
Di sini kami menetapkan pemilikan direktori /var/www/html/ kepada pengguna dan kumpulan nginx.
Jika nginx tidak dapat menghuraikan fail PHP dan tiada mesej ralat, pastikan anda mendayakan modul PHP. Untuk mendayakannya, edit pilihan kompilasi nginx, tambah baris berikut:
--with-http_stub_status_module \ --with-http_ssl_module \ --with-http_realip_module \ --with-http_addition_module \ --with-http_sub_module \ --with-http_dav_module \ --with-http_flv_module \ --with-http_mp4_module \ --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-http_random_index_module \ --with-http_secure_link_module \ --with-http_auth_request_module \ --with-http_image_filter_module \ --with-http_geoip_module \ --with-http_degradation_module \ --with-http_xslt_module \ --with-http_stub_status_module \ --with-http_spdy_module \ --with-http_auth_request_module \ --with-http_slice_module \ --with-mail \ --with-mail_ssl_module \ --with-ipv6 \ --with-pcre \ --with-stream \ --with-stream_ssl_module \ --with-threads \ --with-debug \ --add-module=/path/to/php-src/sapi/nginx/
Di sini kami tambahkan --add-module=/path/to/php-src/sapi/nginx/ ke Dayakan modul PHP.
Jika nginx tidak dapat menghuraikan fail PHP tetapi tidak memaparkan sebarang mesej ralat, anda boleh mendapatkan maklumat lanjut tentang ralat dalam log ralat PHP. Untuk mendayakan pengelogan ralat PHP, buka fail php.ini dan nyahkomen baris berikut:
error_log = /var/log/php/error.log log_errors = On
Di sini, kami menentukan log ralat PHP sebagai /var/log/php/error.log dan Dayakan ralat pembalakan. Sila pastikan folder telah dibuat dan mempunyai kebenaran yang sesuai.
Kesimpulan
Dalam artikel ini, kami memperkenalkan beberapa sebab mengapa nginx tidak boleh menghuraikan fail PHP dan menyediakan penyelesaian. Apabila anda menghadapi masalah sedemikian, ikuti langkah di atas dan konfigurasikan nginx dengan betul untuk mengendalikan fail PHP.
Atas ialah kandungan terperinci Apa yang perlu dilakukan jika nginx tidak menghuraikan fail php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!