laravel开发的程序上传附件突然报错:ErrorException: is_dir(): open_basedir restriction in effect. File(/goods) is not within the allowed path(s)

1. 运行环境

宝塔LNMP

1). 当前使用的 Laravel 版本?

8.83.27

2). 当前使用的 php/php-fpm 版本?

PHP 版本:8.0.26

php-fpm 版本:

2. 问题描述?

laravel开发的程序突然报错,调试器POST请求显示500,具体的错误如下:

ErrorException: is_dir(): open_basedir restriction in effect. File(/goods) is not within the allowed path(s): (/www/wwwroot/www.abc.com/:/tmp/) in file /www/wwwroot/www.abc.com/vendor/symfony/http-foundation/File/File.php on line 126

网上找了很多教程,比如关闭宝塔的防跨站,以及设置open_basedir都没有效果,关闭防跨站,就会提示不能创建相关目录,问题是我的目录本来就存在,且权限也都给了。

都不行,其他办法也试过了,前几天一直正常的,系统没有任何操作,就突然这样了。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 6

打码打了个寂寞了这是。
看起来问题是tmp权限问题,设置下权限看看。要么就是硬盘满了

6个月前 评论

错误提示 很明显了 open_basedir 配置的问题

6个月前 评论

福州皆喜租物 :grin:

6个月前 评论
陈怼怼 (作者) 6个月前

把goods目录添加到public/.user.ini里面,注意需要修改属性,chattr -i .user.ini 添加后chattr +i .user.ini

6个月前 评论

错误信息不是很明显吗?php.ini或框架设置了open_basedir范围,你打开的目录文件不在允许的目录范围内,linux系统预设目录没有/goods这样的目录(除非你自己创建的),如果是自己创建的,需要将此目录添加到open_basedir范围内,如果不是自己创建的,检查下代码,是不是文件路径搞错了。

file

6个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!