我有一个运行 CentOS 的 Vagrant VM,它是从一个 puphpet 文件 (config.yaml) 构建的,我正在尝试设置和访问 PHP 错误日志。
config.yaml - PHP 部分:
php:
install: '1'
settings:
version: '56'
modules:
php:
- cli
- intl
- mcrypt
pear: { }
pecl:
- pecl_http
ini:
display_errors: Off
error_reporting: E_ALL & ~E_NOTICE & ~E_STRICT
session.save_path: /var/lib/php/session
date.timezone: America/Denver
log_errors: On
error_log: /var/log/php_errors.log
fpm_ini:
error_log: /var/log/php-fpm.log
fpm_pools:
phpfp_tg4gv8zscipk:
ini:
prefix: www
listen: '127.0.0.1:9000'
security.limit_extensions: .php
user: www-user
group: www-data
composer: '1'
composer_home: ''
/etc/php.d/zzzz_custom.ini
[CUSTOM]
log_errors=true
error_reporting=E_ALL & ~E_NOTICE & ~E_STRICT
session.save_path=/var/lib/php/session
cgi.fix_pathinfo=1
date.timezone=America/Denver
error_log=/var/log/php_errors.log
display_errors=false
/etc/php.ini
error_log = /var/log/php_errors.log
log_errors = On
我做过:
sudo touch /var/log/php_errors.log
sudo chown www-data: /var/log/php_errors.log
sudo chmod +rw /var/log/php_errors.log
当我运行以下内容时,我什么也得不到:
sudo tail -f /var/log/php_errors.log
我知道应该有PHP错误,因为我在某个文件中显式创建它们进行测试,例如使用未声明的函数等。
我还尝试不在config.yaml和php.ini文件中设置error_log
以查看默认值是否有效,因为我认为它会将PHP错误转储到/var/log/httpd/error_log
中。
我真的不知道从这里去哪里。任何帮助都非常感谢!
如果您让 Puphpet 创建您的vhost
文件,请检查其中指定了哪些错误日志。不久前我遇到了这个问题,当我浏览/var/log
中的所有nginx
日志时发现了额外的错误日志。
对于nginx
和apache
,您应该分别检查vhost
文件的内容/etc/nginx/sites-available/
和/etc/apache2/sites-available/
。
首先要做的是输入:
phpinfo();
exit;
进入索引.php文件,并在那里查找error_log设置。然后至少你会知道 php 在做什么,而不是只知道 puphpet 可能会告诉 php 做什么。
希望这是有帮助的。