php 兩種執行方式:
apache module 以及 php-fpm
有不同的 error log 設定、路徑:
apache module
1.首先,找到 php.ini 的位置 (大部分會是在 /etc/php.ini)
$ php --ini |grep Loaded Loaded Configuration File: /etc/opt/remi/php74/php.ini
2.
vi /etc/opt/remi/php74/php.ini
通常 會是被註解的狀態:
: : : ;error_log = php_errors.log ; Log errors to syslog (Event Log on Windows). ;error_log = syslog : : : 改成這樣: error_log = /path/to/php_errors.log #檔案會以 apache:apache 身份寫入,所以要確認 /path/to 目錄必需是 apache:apache 能夠讀寫
另外,也可在 php 程式最前面加兩行,
自己決定錯誤記錄檔案的位置、檔名
<?php ini_set("log_errors", 1); ini_set('error_log', '/path/to/err_log.txt'); #或 ini_set('error_log', dirname(__FILE__).'/err_log.txt'); #檔案會以 apache:apache 身份寫入,所以要確認 /path/to 目錄必需是 apache:apache 能夠讀寫 echo 1/0; ?>
php-fpm
若是 php-fpm相關 error 記錄會存在 /var/log/php-fpm
# ls -l /var/log/php-fpm/ total 244 -rw------- 1 root root 0 Jan 21 03:49 error.log -rw------- 1 root root 20275 Dec 31 01:00 error.log-20231231 -rw------- 1 root root 9681 Jan 7 00:37 error.log-20240107 -rw------- 1 root root 13663 Jan 14 03:40 error.log-20240114 -rw------- 1 root root 11518 Jan 19 10:51 error.log-20240121 -rw-r--r-- 1 apache apache 0 Jan 21 03:49 www-error.log -rw-r--r-- 1 apache apache 4794 May 10 2023 www-error.log-20230514 -rw-r--r-- 1 apache apache 21808 Jan 17 02:14 www-error.log-20240117 -rw-r--r-- 1 apache apache 146828 Jan 18 08:13 www-error.log-20240121
相關設定
vi /etc/php-fpm.d/www.conf
php_admin_value[error_log] = /var/log/php-fpm/www-error.log