Fatal error: Uncaught think\exception\ErrorException: error_log(/www/wwwroot/www.19jinze.xyz/runtime/log/201906/05.log): failed to open stream: Permission denied in /www/wwwroot/www.19jinze.xyz/thinkphp/library/think/log/driver/File.php:169 Stack trace: #0 [internal function]: think\Error::appError(2, 'error_log(/www/...', '/www/wwwroot/ww...', 169, Array) #1 /www/wwwroot/www.19jinze.xyz/thinkphp/library/think/log/driver/File.php(169): error_log('---------------...', 3, '/www/wwwroot/ww...') #2 /www/wwwroot/www.19jinze.xyz/thinkphp/library/think/log/driver/File.php(75): think\log\driver\File->write('---------------...', '/www/wwwroot/ww...', false, true) #3 /www/wwwroot/www.19jinze.xyz/thinkphp/library/think/Log.php(179): think\log\driver\File->save(Array, true) #4 /www/wwwroot/www.19jinze.xyz/thinkphp/library/think/Error.php(93): think\Log::save() #5 [internal function]: think\Error::appShutdown() #6 {main} thrown in /www/wwwroot/www.19jinze.xyz/thinkphp/library/think/log/driver/File.php on line 169
上传的时候忘记清理runtime所以办法存日志 清理完毕之后
Fatal error: Uncaught think\exception\ErrorException: mkdir(): Permission denied in /www/wwwroot/www.19jinze.xyz/thinkphp/library/think/log/driver/File.php:52 Stack trace: #0 [internal function]: think\Error::appError(2, 'mkdir(): Permis...', '/www/wwwroot/ww...', 52, Array) #1 /www/wwwroot/www.19jinze.xyz/thinkphp/library/think/log/driver/File.php(52): mkdir('/www/wwwroot/ww...', 493, true) #2 /www/wwwroot/www.19jinze.xyz/thinkphp/library/think/Log.php(179): think\log\driver\File->save(Array, true) #3 /www/wwwroot/www.19jinze.xyz/thinkphp/library/think/Error.php(93): think\Log::save() #4 [internal function]: think\Error::appShutdown() #5 {main} thrown in /www/wwwroot/www.19jinze.xyz/thinkphp/library/think/log/driver/File.php on line 52
这个问题是权限问题,所以我们可以切换到tp5目录然后使用chmod -R 777 tp5来解决,这不符合我们在线上的操作方式。一种比较推荐的做法是执行chmod -R daemon:daemon tp5来进行处理,这是因为在Mac上默认的Apache用户为daemon,当然也可以通过在配置文件中修改用户名和所属组来解决这一问题
仔细查看上述报错的文件代码,会发现是由于log文件夹无法创建所致,可以通过查看框架文件下的base.php发现需要在根目录下创建vendor, runtime, log等目录(默认不存在这些目录)
当然也存在是由于apace和nginx 更换问题
同时在线上使用宝塔管理的,要看看是否是文件的权限问题。也就是你的tp5框架里面的runtime的log所有者是否是www,如果是root需要改一下。