我有一个文件夹,它将成为我的应用程序用户创建的子文件夹的容器。我使用以下命令让我的应用程序执行mkdir()函数:“sudo chmod -R 775 / var / www / laravel / public / folder_want_give_permission_to”,“sudo chmod -R 777 / var / www / laravel / public / folder_want_give_permission_to “,”chown -R www-data:www-data folder_want_to_give_permission_to“。当我测试我的应用程序,访问执行mkdir函数的页面时,我必须不时运行命令,因为看起来Ubuntu“忘记”我允许在目录中获得权限并且我得到“ErrorException:mkdir() : 没有权限”。当我从我授予的权限的目录中删除所有子文件夹时,事情变得更糟,我创建第一个子文件夹后出现错误。我使用的Ubuntu版本是16.04。
要显示我的mkdir(),我想我必须解释所涉及的变量值。
我的系统计算管理用户目录的子目录数,以避免创建具有相同名称的目录。要创建用户目录,我使用下面的代码。
mkdir( $userdirectory, 0755, true);
如果用户是第一个注册的用户,那么$ userDirectory将具有这样的值。
“/无功/网络/ laravel /公共/ folder_want_to_give_permission_to / 1”
这会在我想要授予权限的文件夹中创建一个子目录,创建额外的子文件夹来存储图像。
现在创建子文件夹以将图像存储在用户文件夹中。
mkdir( $userdirectory. $numSubDir, 0755, true);
$ folder的值类似于“/ var / www / laravel / public / folder_want_to_give_permission_to / 1 /”,$ numSubdir存储类似“1”或“2”的数字来存储图像。
我最终会得到这样的结论: 的/ var / WWW / laravel /公共/ folder_want_to_give_permission_to / 1/1
因此,用户可以使用目录来存储这样的图像:
/var/www/laravel/public/folder_want_to_give_permission_to/1/1
/var/www/laravel/public/folder_want_to_give_permission_to/1/2
另一位用户
/var/www/laravel/public/folder_want_to_give_permission_to/2/1
/var/www/laravel/public/folder_want_to_give_permission_to/2/2
如果我想做的事情不明确: 的/ var / WWW / laravel /公共/ folder_want_to_give_permission_to / user_directory / folder_to_store_images_1
/var/www/laravel/public/folder_want_to_give_permission_to/user_directory/folder_to_store_images_2
一
答案 0 :(得分:1)
请运行以下命令,希望这有帮助。
sudo chown -R www-data:www-data / var / www / laravel /