如何在Laravel Valet中配置项目专属PHP错误日志?
当然可以搞定!Valet虽然默认用Nginx+PHP-FPM,但完全能实现像Apache那样给每个项目单独配置PHP错误日志的需求。我整理了两种实用方法,你可以根据自己的情况选:
方法1:为单个Laravel项目配置独立错误日志
如果只想给某一个项目单独设置,用Valet的自定义站点配置最方便:
- 先在你的Laravel项目根目录下创建
.valet文件夹(没有的话直接建):mkdir .valet - 在这个文件夹里新建
nginx.conf文件,写入以下内容:
这里location ~ \.php$ { fastcgi_param PHP_VALUE "error_log=${DOCUMENT_ROOT}/storage/logs/php_errors.log"; }${DOCUMENT_ROOT}会自动指向你的项目根目录,storage/logs/php_errors.log是日志存放路径——你也可以改成直接放在项目根目录的php_errors.log,看你偏好。 - 配置写完后,重启Valet让设置生效:
valet restart - 最后别忘了给日志目录开写入权限,比如用Laravel默认的
storage/logs的话:
如果服务器用户是chmod -R 775 storage/logswww-data,也可以用这个命令授权:chown -R www-data:www-data storage/logs
方法2:全局配置所有Valet项目的PHP错误日志
要是想让所有Valet托管的项目都自动把PHP错误日志写到各自的项目目录,就改PHP-FPM的全局配置:
- 先找到PHP-FPM的配置文件,Valet用的是Homebrew安装的PHP,路径大概是
/usr/local/etc/php/{你的PHP版本}/php-fpm.d/www.conf(比如PHP 8.2就是/usr/local/etc/php/8.2/php-fpm.d/www.conf)。 - 打开文件后,找到
php_admin_value[error_log]这一行,先把它注释掉(前面加个;),然后添加下面的配置:
同样,你可以把路径改成php_value[error_log] = $document_root/php_errors.log$document_root/storage/logs/php_errors.log,让日志和Laravel的应用日志放在一起。 - 保存文件后,重启PHP-FPM服务:
比如PHP 8.2就执行brew services restart php@{你的PHP版本}brew services restart php@8.2 - 同样要确保目标目录有写入权限哦。
验证配置
配置完成后,你可以在项目里写一行测试代码:
error_log("测试PHP错误日志写入");
然后去对应的日志文件里查看,应该能看到这条测试信息就说明配置成功啦!
内容的提问来源于stack exchange,提问作者Joel Jerushan
相关产品推荐
相关产品推荐

