Rumah >Operasi dan penyelenggaraan >Nginx >Bagaimana untuk menyelesaikan nginx tidak mendorong ralat php
1 Memahami kaedah pelaporan dan pengumpulan ralat
Semasa proses menggunakan pelayan, kami lazimnya mematikan output ralat PHP Mesej ralat PHP boleh mendedahkan kelemahan keselamatan atau membawa kepada kebocoran maklumat. Tetapi semasa proses pembangunan, kami memerlukan mesej ralat ini untuk mencari masalah dan nyahpepijat atur cara.
Satu cara untuk menyelesaikan masalah ini ialah menghidupkan output ralat PHP. Dalam PHP kita boleh menetapkan tahap log ralat atau melaporkan ralat dengan segera. Kami boleh menambah beberapa pilihan pada fail konfigurasi Nginx untuk memaparkan mesej ralat PHP.
2. Tetapan ralat PHP dalam fail konfigurasi Nginx
Buka fail konfigurasi pelayan Nginx, biasanya /etc/nginx/nginx.conf
, cari blok http{}
dan tambah konfigurasi berikut :
server { # server settings ... # server block location rules ... # php-fpm status check location ~ ^/(status|ping)$ { access_log off; # php-fpm settings fastcgi_param PHP_VALUE "error_reporting=E_ALL"; include fastcgi_params; fastcgi_pass unix:/run/php/php7.4-fpm.sock; } # php error logs location ~ \.php$ { fastcgi_param PHP_VALUE "error_log=/var/log/nginx/php_error.log"; include fastcgi_params; fastcgi_pass unix:/run/php/php7.4-fpm.sock; } # error pages error_page 404 /404.html; error_page 500 502 503 504 /50x.html; # static files location ~* \.(jpg|jpeg|gif|png|css|js|ico)$ { expires 7d; access_log off; } # disable direct access to .ht files location ~ /\.ht { deny all; } }
Antaranya, fastcgi_param PHP_VALUE
digunakan untuk menghantar maklumat ralat kepada proses PHP yang diminta oleh pelayan Nginx. error_reporting=E_ALL
bermaksud mengeluarkan semua maklumat tahap ralat. fastcgi_param PHP_VALUE "error_log=/var/log/nginx/php_error.log";
bermaksud mengeluarkan maklumat ralat PHP ke fail /var/log/nginx/php_error.log
.
Selepas menukar fail konfigurasi, muat semula pelayan Nginx:
sudo systemctl reload nginx
3 Tetapan yang salah dalam fail konfigurasi PHP
Fail konfigurasi PHP adalah umum. Untuk /etc/php/7.4/fpm/php.ini
, cari baris error_reporting
dan tetapkannya untuk memaparkan semua mesej ralat:
error_reporting = E_ALL
Kemudian cari baris display_errors
dan tetapkannya kepada On
supaya ia boleh dipaparkan di web halaman Semua mesej ralat PHP dipaparkan:
display_errors = On
Kemudian simpan fail dan mulakan semula PHP-FPM:
sudo systemctl restart php7.4-fpm
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan nginx tidak mendorong ralat php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!