Nginx 是一款開源、高效能的 Web 伺服器,可以作為反向代理伺服器、負載平衡器等。而 PHP 是一種常用的程式語言,用於開發動態網站和 Web 應用程式。
在使用 Nginx 部署 PHP 程式時,可能會遇到 PHP 錯誤的問題。為了更好地排查和解決問題,需要將 PHP 的錯誤訊息記錄到日誌檔案中。本文將介紹如何使用 Nginx 輸出 PHP 錯誤日誌文件,方便後續的問題檢查與處理。
要輸出 PHP 錯誤日誌文件,我們需要在 Nginx 的設定檔中加入一些設定項。在 CentOS 系統上,Nginx 的設定檔通常位於 /etc/nginx/nginx.conf。在檔案中找到http 模組的設定段,一般位於檔案的頂部,新增以下的設定項:
http { ... server { ... 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; # error log fastcgi_param PHP_VALUE "error_log=/var/log/nginx/php_errors.log"; } ... } ... }
location ~ .php$ 表示只有在存取以.php 結尾的URL 時才會使用到該配置項。 fastcgi_pass 指定了 PHP 的 FastCGI 伺服器的位址和連接埠號碼。 fastcgi_param 用於設定 PHP 的參數,其中 SCRIPT_FILENAME 指定 PHP 腳本的路徑和檔案名稱。 include fastcgi_params 告訴 Nginx 使用預設的 FastCGI 參數。最後一行新增了 fastcgi_param PHP_VALUE "error_log=/var/log/nginx/php_errors.log";,表示將 PHP 的錯誤訊息記錄到 /var/log/nginx/php_errors.log 檔案中。
在配置 Nginx 後,我們需要建立一個日誌文件,用於記錄 PHP 的錯誤訊息。假設我們要將日誌檔案儲存到/var/log/nginx/php_errors.log,可以使用下列指令建立檔案:
sudo touch /var/log/nginx/php_errors.log
然後使用下列指令修改檔案的屬主和權限:
sudo chown nginx:nginx /var/log/nginx/php_errors.log sudo chmod 644 /var/log/nginx/php_errors.log
測試時,可以建立一個PHP 腳本並出現錯誤,例如:
<?php echo 1/0; ?>
將這個腳本儲存為test.php,然後將其放置在Nginx 的Web 根目錄下,例如/usr/share/nginx/html/test.php。在瀏覽器中造訪 http://localhost/test.php,將會看到一個 PHP 錯誤。然後使用以下命令查看日誌檔案內容:
sudo tail /var/log/nginx/php_errors.log
如果一切正常,應該可以看到類似如下的錯誤訊息:
[17-Oct-2021 20:52:42 UTC] PHP Warning: Division by zero in /usr/share/nginx/html/test.php on line 2
在本文中,我們介紹如何在Nginx 中輸出PHP 錯誤日誌文件,這對於檢查和處理PHP 問題非常重要。要輸出 PHP 錯誤日誌文件,首先需要在 Nginx 的設定檔中新增 fastcgi_param PHP_VALUE "error_log=/var/log/nginx/php_errors.log";,然後建立日誌文件,並測試輸出。
以上是nginx中怎麼輸出php錯誤日誌文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!