首頁  >  文章  >  後端開發  >  nginx中怎麼輸出php錯誤日誌文件

nginx中怎麼輸出php錯誤日誌文件

PHPz
PHPz原創
2023-03-28 13:54:20768瀏覽

Nginx 是一款開源、高效能的 Web 伺服器,可以作為反向代理伺服器、負載平衡器等。而 PHP 是一種常用的程式語言,用於開發動態網站和 Web 應用程式。

在使用 Nginx 部署 PHP 程式時,可能會遇到 PHP 錯誤的問題。為了更好地排查和解決問題,需要將 PHP 的錯誤訊息記錄到日誌檔案中。本文將介紹如何使用 Nginx 輸出 PHP 錯誤日誌文件,方便後續的問題檢查與處理。

設定 Nginx

要輸出 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn