访问 PHP 错误日志 - 由 Puphpet 设置的 Vagrant CentOS VM


Access PHP Error Logs - Vagrant CentOS VM setup by Puphpet

我有一个运行 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日志时发现了额外的错误日志。

对于nginxapache,您应该分别检查vhost文件的内容/etc/nginx/sites-available//etc/apache2/sites-available/

首先要做的是输入:

phpinfo(); 
exit; 

进入索引.php文件,并在那里查找error_log设置。然后至少你会知道 php 在做什么,而不是只知道 puphpet 可能会告诉 php 做什么。

希望这是有帮助的。