PHP tidak dipasang atau dikonfigurasikan
Pertama, sila pastikan pelayan anda telah memasang PHP dan mengkonfigurasi nginx dengan betul untuk dibuat ia berfungsi dengan betul. 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 ingin menentukan lokasi pemprosesan fail PHP nginx dan parameter lain. Sila sahkan bahawa blok kod telah ditambahkan pada fail konfigurasi nginx anda dan bahawa laluan ke fail sock sepadan dengan fail konfigurasi PHP anda.
fail index.php tidak ditetapkan
Jika halaman utama aplikasi web anda ialah index.php, tetapi ia tidak akan ditetapkan dalam nginx Diproses secara automatik, maka anda perlu menambah index.php dalam arahan "index" fail konfigurasi nginx seperti berikut:
index index.php index.html;
Sekarang, apabila anda membuka halaman utama, nginx akan mencari index.php secara automatik dan memprosesnya betul la.
Kebenaran fail PHP
Satu lagi sebab utama mengapa nginx tidak boleh menghuraikan fail PHP ialah kebenaran yang salah. Pastikan yang berikut:
Kebenaran fail PHP ialah 644
Kebenaran direktori tempat fail PHP terletak ialah 755
Juga pastikan bahawa pengguna nginx mempunyai pemilikan semua fail PHP, dan pemilikan direktori tempat fail PHP berada juga 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.
Modul PHP tidak didayakan
Jika nginx anda tidak dapat menghuraikan fail PHP tanpa menunjukkan sebarang mesej ralat, sila pastikan modul PHP didayakan. 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 menambah --add-module=/path/to/php-src/sapi/nginx/ untuk mendayakan modul PHP.
Log Ralat PHP
Jika nginx tidak dapat menghuraikan fail PHP tetapi tidak memaparkan sebarang mesej ralat, anda boleh mencari maklumat dalam log ralat PHP Maklumat lanjut tentang ralat. Buka fail php.ini dan nyahkomen baris berikut untuk mendayakan pengelogan ralat PHP
error_log = /var/log/php/error.log log_errors = On
Kami menentukan /var/log/php/error.log sebagai log ralat PHP dan membolehkan fungsi pengelogan ralat. Sila pastikan folder telah dibuat dan mempunyai kebenaran yang sesuai.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan nginx tidak menghuraikan fail php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!