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 都没有效果,关闭防跨站,就会提示不能创建相关目录,问题是我的目录本来就存在,且权限也都给了。

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

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 6

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

9个月前 评论

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

9个月前 评论

福州皆喜租物 :grin:

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

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

9个月前 评论

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

file

9个月前 评论