我正在为服务器中的图像上传运行以下脚本,并在以下主机上完美运行时收到以下错误。
码
$user_id = Auth::id();
$logicpath = 'userdp/' . $user_id . '/';
$pubpath = 'userdp/' . $user_id . '/' . $dpFile;
$path = '/userdp/' . $user_id . '/' . $dpFile;
if (!file_exists($logicpath)) {
mkdir($logicpath, 0777, true);
}
Run Code Online (Sandbox Code Playgroud)
错误
UploadController.php第605行中的ErrorException:mkdir():权限被拒绝
在HandleExceptions-> handleError('2','mkdir():权限被拒绝','/var/www/html/laravel/app/Http/Controllers/UploadController.php','605',array('dp'= > object(UploadedFile),'ext'=>'jpg','img'=> object(Image),'mime'=>'image / jpeg','width'=>'200','height'=> '200','fileSize'=>'17152','dpFile'=>'f12f298ab18d58a59c4ed8a589cd1cdc.jpg','user_id'=>'1','logicpath'=>'userdp / 1 /','pubpath'=> 'userdp / 1 / f12f298ab18d58a59c4ed8a589cd1cdc.jpg','path'=>'/userdp/1/f12f298ab18d58a59c4ed8a589cd1cdc.jpg')
我尝试chmod 777 public并重新启动了服务器。但这没有用。
小智 6
尝试:
sudo chown -R www-data:www-data /var/www/yoursite/public
Run Code Online (Sandbox Code Playgroud)
错误:
[ErrorException]
mkdir(): Permission denied
Run Code Online (Sandbox Code Playgroud)
如果您在文件夹中创建项目/WWW并且遇到上述错误,请尝试使用以下命令,它对我有用。
sudo chown -R www-data:www-data /var/www
sudo chown -R $USER:$USER /var/www
Run Code Online (Sandbox Code Playgroud)
运行此命令后,尝试再次创建项目。
cd /var/www
composer create-project laravel/laravel projectname "5.6.*"
Run Code Online (Sandbox Code Playgroud)
因为我使用的是 laravel 5.6,所以我在创建项目时指定了版本。
Geo*_*rna -13
您必须递归执行 chmod 以确保所有子目录也具有相同的权限。尝试运行这个:
chmod -R 777
Run Code Online (Sandbox Code Playgroud)
现在,虽然这可以解决您的问题,但您绝对应该阅读设置上述权限所出现的问题,如下面评论中发布的链接所示。我也在这里发帖:
http://stackoverflow.com/a/11271632/2790481
/var/www/html/laravel/storage编辑:例如,这只能在 Laravel 存储目录中完成,而不能在系统级别完成。我最初忘记提及这一点,因此所有的反对票。
| 归档时间: |
|
| 查看次数: |
26278 次 |
| 最近记录: |