【问题标题】:Where does php cli log errors on a Mac 10.15Mac 10.15 上的 php cli 在哪里记录错误
【发布时间】:2020-09-11 10:11:39
【问题描述】:

我快速而肮脏地开发了一个本地脚本,并让它在命令行上运行。我没有安装服务器。

我的 php ini 位于 /usr/local/etc/php/7.4/php.ini

我通过使用激活了错误日志

error_reporting = E_ALL
display_errors = On
log_errors = On
error_log = /var/log/php_errors.log

我保存了更改,但没有找到写入 /var/log/php_errors.log 的日志

我必须怎么做才能将我的错误记录到文件中?

输出

$ php --ini
Configuration File (php.ini) Path: /usr/local/etc/php/7.4
Loaded Configuration File:         /usr/local/etc/php/7.4/php.ini
Scan for additional .ini files in: /usr/local/etc/php/7.4/conf.d
Additional .ini files parsed:      /usr/local/etc/php/7.4/conf.d/ext-opcache.ini


$ which php
/usr/local/bin/php

【问题讨论】:

  • 检查/var/log/apache2/error.log/var/log/apache2/access.log
  • @aviboy2006 我认为您没有阅读所有问题。见第2句I have no server installed
  • 首先通过 php --ini 检查 PHP CLI 是否正在使用该 ini 文件。这将向您显示Loaded Configuration File: 的路径
  • mac 带有默认的 Apache2 服务器配置。我说@RiggsFolly 检查您是否更改了正确的 php.ini 文件。因为每当 php cli 命令重新加载 php.ini 配置时,它都会发生变化。
  • @aviboy2006 嗯,是的,但我希望,与 Windows 10 和 IIS 不同,它不会自动启动,除非你真的要求它:)

标签: php macos command-line-interface


【解决方案1】:

我的理解是 php cli 以与 bash 脚本相同的方式将错误输出到命令行。因此,您可以以同样的方式将错误输出到您自己的日志文件中。

这是一个简单的脚本文件error_test.php,它有两个命令。首先回显一个字符串 - 第二个回显一个未定义的变量,这将产生一个错误:

<?php

echo "hello\n";
echo $test;

运行脚本

php error_test.php

它会输出以下内容:

hello
PHP Notice:  Undefined variable: test in /home/phi/Projects/sandbox/error_test.php on line 3

像 bash 脚本一样,我们可以将 stderr 输出重定向到带有 2&gt; 的文件

php error_test.php 2> error.log
cat error.log

这会在每次运行命令时替换日志文件。要将错误附加到日志文件,请使用2&gt;&gt;

php error_test.php 2>> error.log

要忽略错误,请重定向到/dev/null

php error_test.php 2>> /dev/null

【讨论】:

    猜你喜欢
    • 2017-05-20
    • 1970-01-01
    • 2011-09-15
    • 2011-03-05
    • 2011-06-13
    • 1970-01-01
    • 2011-09-17
    • 2017-06-25
    • 1970-01-01
    相关资源
    最近更新 更多