php - Mac 10.15 上的 php cli 在哪里记录错误
问题描述
我快速而肮脏地开发了一个本地脚本,并让它在命令行上运行。我没有安装服务器。
我的 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
解决方案
我的理解是 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>
php error_test.php 2> error.log
cat error.log
每次运行命令时都会替换日志文件。要将错误附加到日志文件,请使用2>>
.
php error_test.php 2>> error.log
要忽略错误,请重定向到/dev/null
php error_test.php 2>> /dev/null
推荐阅读
- php - 如何一次杀死多个 laravel php artisan 命令?
- jenkins - Jenkins 的代理设置中缺少 WebSocket
- javascript - 为什么 '[' + array + ']' 返回一个普通数组?
- makefile - 将路径组合到makefile中的文件名数组
- amazon-web-services - 当我尝试将 lambda 函数集成到 AWS 的 API 网关中时出现错误消息当我检查端点 URL 时
- go - Bufio 扫描功能正在等待 GO 中的最后一个缓冲区(尾操作)
- node.js - 在猫鼬的判别模型中更新数组
- r - 如何转换数据帧的时间格式
- html - 从路径 HTML 发送 .txt 文件夹
- typescript - 如何使用 MobX 状态树对 API 响应进行建模?