为 Laravel 创建具有正确权限的目录

Eds*_*ima 6 permissions

我是开发人员。几天前,我开始在 Ubuntu 上使用 Laravel。当我使用终端创建一个新目录时,它会出现一个挂锁。即使以 root 身份登录,我也必须使用chmod.

如何为所有类型的用户创建具有所有权限的目录?

Geo*_*sen 15

laravel在 Ubuntu 上使用时,您希望通过以下方式进行设置,以确保您不使用或不需要对创建的文件进行 root 访问。

  1. 创建的项目的位置应该在/var/www/html文件夹中,但可以在任何地方。
  2. 安装 composer 并进行全局设置,以便您可以laravel使用它进行全局安装。
  3. /var/www/html需要设置权限,这样您就不需要root特权来操作那里的文件,就像您的情况一样。

安装作曲家:

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
Run Code Online (Sandbox Code Playgroud)

检查安装:

composer -V
Run Code Online (Sandbox Code Playgroud)

使用composer安装laravel:

composer global require "laravel/installer=~1.1"
Run Code Online (Sandbox Code Playgroud)

检查安装:

laravel -V
Run Code Online (Sandbox Code Playgroud)

为laravel设置文件夹权限:

  1. 临时设置/var/www/html

  2. 永久解决方案:

    • 在 中设置文件夹的默认所有权/var/www/html $USER:www-data,因此任何新创建都将承担您的用户和组 www-data 的权限

      sudo setfacl -d -R -m u:$USER:rwx,g:www-data:rwx,o:rx /var/www/html
      
      Run Code Online (Sandbox Code Playgroud)

现在只需将任何用户添加到www-data组中即可让他们rwx访问/var/www/html. 将需要重新启动

用法:

laravel new /var/www/html/new-project
Run Code Online (Sandbox Code Playgroud)


小智 1

mkdir -m a=rwx myDir
Run Code Online (Sandbox Code Playgroud)

或者

mkdir --mode=a=rwx myDir
Run Code Online (Sandbox Code Playgroud)

运行mkdir --help以获取更多信息。