TP5项目 放到服务器上登陆界面报错

博客内容讲述了在将TP5项目部署到服务器时遇到的两个权限错误:1) runtime/log目录无法打开;2) mkdir()创建目录权限被拒。问题源于目录权限设置不当。文中提出了两种解决方案:一是使用`chmod -R daemon:daemon tp5`命令,二是检查并调整Apache或Nginx配置中的用户和组。同时,建议在项目部署前清理runtime,并确保文件权限与服务器环境匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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需要改一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值