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都没有效果,关闭防跨站,就会提示不能创建相关目录,问题是我的目录本来就存在,且权限也都给了。
都不行,其他办法也试过了,前几天一直正常的,系统没有任何操作,就突然这样了。
打码打了个寂寞了这是。
看起来问题是tmp权限问题,设置下权限看看。要么就是硬盘满了
错误提示 很明显了 open_basedir 配置的问题
福州皆喜租物 :grin:
把goods目录添加到public/.user.ini里面,注意需要修改属性,chattr -i .user.ini 添加后chattr +i .user.ini
错误信息不是很明显吗?php.ini或框架设置了open_basedir范围,你打开的目录文件不在允许的目录范围内,linux系统预设目录没有/goods这样的目录(除非你自己创建的),如果是自己创建的,需要将此目录添加到open_basedir范围内,如果不是自己创建的,检查下代码,是不是文件路径搞错了。