laravel项目的日志文件迁移
一个使用laravel的项目,因为使用量较大,服务器上的日志文件很大,且很占内存,所以决定将日志文件的存储位置迁移到其他的文件夹。
首先我看了laravel的文档后,去查看了config文件夹里的logging.PHP文件。
MysqL的查询日志的位置在app/providers文件夹下的AppServiceProviders.PHP中,在此处监听数据库并添加数据库的查询日志。我把此处的日志存放路径修改后,数据库查询日志也迁移到了新的目录下。
这种情况是open_basedir限制了PHP可以操作的文件目录,可以在配置文件中修改open_basedir信息,加上想要操作的路径或者直接注释掉这行。
查了下资料,说是open_basedir可以在 PHP.ini 里配置;也可以在 Apache 配置的 VirtualHost 或者 Direcotry 里设置;或者修改Nginx的配置文件 fastcgi.conf里的PHP_ADMIN_VALUE open_basedir;
修改完后重启Apache或者Nginx就可以生效。
但是我看了下服务器上用的是Nginx,但配置文件里没找到open_basedir信息,于是我又去查了下,发现是因为宝塔面板的原因,修改open_basedir是要下项目目录下的.user.ini的隐藏文件中修改,(或者也可以去掉网站目录下的勾选,防跨站攻击(open_basedir),然后重启PHP服务,但个人感觉不推荐)
在user.ini文件的open_basedir信息后面追加 “:/XXXXX/” ,xxxx是操作路径
然后发现报了另一个错误,这个报错就很明显了,大概率是日志存储路径文件夹权限的问题,我去修改了下文件夹的权限,发现日志迁移成功了。