【问题标题】:Laravel Messed up Homestead PermissionsLaravel 搞砸了宅基地权限
【发布时间】:2018-05-31 21:38:13
【问题描述】:

我似乎弄乱了 Homestead 的 Linux 权限,我的应用程序抛出异常,例如无法找到那里的视图和“无法创建根目录”。

不久前我确实做了一个递归chmod,我认为这是问题的原因,问题是我不太知道如何恢复它。

在我的 after.sh Homestead 脚本中,我正在设置以下配置规则

sudo chown -R www-data:www-data /home/vagrant/Code/myapp
sudo usermod -a -G www-data vagrant

sudo find /home/vagrant/Code/myapp -type f -exec chmod 644 {} \;
sudo find /home/vagrant/Code/myapp -type d -exec chmod 755 {} \;

sudo chgrp -R www-data /home/vagrant/Code/myapp/storage /home/vagrant/Code/myapp/bootstrap/cache
sudo chmod -R ug+rwx /home/vagrant/Code/myapp/storage /home/vagrant/Code/myapp/bootstrap/cache

我执行了这些,但没有任何反应,它仍然出现相同的错误,所以我去检查了 NGINXs nginx.conf 文件,它引用 vagrant 作为它的用户,所以这是正确的......

在我的根项目文件夹(Vagrant VM 内部) 上调用ls -lsa 会返回以下信息。任何帮助将不胜感激,谢谢。

   0 drwxr-xr-x 1 vagrant vagrant   1280 Dec 18 13:59 .
  4 drwxr-xr-x 3 root    root      4096 Dec 18 13:29 ..
  4 -rw-r--r-- 1 vagrant vagrant   1771 Dec 18 13:59 after.sh
  8 -rw-r--r-- 1 vagrant vagrant   7314 Nov 21 09:24 aliases
  0 drwxr-xr-x 1 vagrant vagrant    320 Dec 17 17:39 app
  4 -rw-r--r-- 1 vagrant vagrant   1646 Nov 21 09:24 artisan
  0 drwxr-xr-x 1 vagrant vagrant    160 Dec 12 17:01 bootstrap
  4 -rw-r--r-- 1 vagrant vagrant   1707 Dec 17 17:51 composer.json
172 -rw-r--r-- 1 vagrant vagrant 175864 Dec 18 13:24 composer.lock
  0 drwxr-xr-x 1 vagrant vagrant    544 Dec 18 13:50 config
  4 -rw-r--r-- 1 vagrant vagrant   1534 Nov 21 09:24 CONTRIBUTING.md
  8 -rw-r--r-- 1 vagrant vagrant   7970 Dec 16 20:33 _custom_ide_helper.php
  0 drwxr-xr-x 1 vagrant vagrant    192 Dec 12 16:40 database
  8 -rw-r--r-- 1 vagrant vagrant   6148 Dec 14 16:31 .DS_Store
  4 -rw-r--r-- 1 vagrant vagrant    627 Dec  4 12:34 .env
  4 -rw-r--r-- 1 vagrant vagrant    499 Dec  4 17:29 .env.example
  0 drwxr-xr-x 1 vagrant vagrant    480 Dec 18 14:02 .git
  4 -rw-r--r-- 1 vagrant vagrant     61 Nov 21 09:24 .gitattributes
  4 -rw-r--r-- 1 vagrant vagrant    154 Nov 21 09:24 .gitignore
  4 -rw-r--r-- 1 vagrant vagrant   1278 Dec 14 08:58 .gitlab-ci.yml
  4 -rw-r--r-- 1 vagrant vagrant   2389 Dec 18 00:10 gruntfile.js
  4 -rw-r--r-- 1 vagrant vagrant    335 Dec 12 10:26 Homestead.yaml
  0 drwxr-xr-x 1 vagrant vagrant    544 Dec 18 14:01 .idea
512 -rw-r--r-- 1 vagrant vagrant 464272 Dec 18 13:53 _ide_helper.php
  0 drwxr-xr-x 1 vagrant vagrant  24704 Dec 18 00:03 node_modules
  4 -rw-r--r-- 1 vagrant vagrant   2164 Dec 18 00:03 package.json
380 -rw-r--r-- 1 vagrant vagrant 385087 Dec 18 00:03 package-lock.json
128 -rw-r--r-- 1 vagrant vagrant  93326 Dec 18 13:53 .phpstorm.meta.php
  4 -rw-r--r-- 1 vagrant vagrant   1190 Dec 15 10:28 phpunit.xml
  0 drwxr-xr-x 1 vagrant vagrant    320 Dec 12 12:34 public
  4 -rw-r--r-- 1 vagrant vagrant    855 Dec 12 10:26 readme.md
  0 drwxr-xr-x 1 vagrant vagrant    160 Nov 21 09:24 resources
  0 drwxr-xr-x 1 vagrant vagrant    128 Dec 17 16:57 routes
  4 -rw-r--r-- 1 vagrant vagrant    563 Nov 21 09:24 server.php
  0 drwxrwxr-x 1 vagrant vagrant    256 Dec 18 13:50 storage
  0 drwxr-xr-x 1 vagrant vagrant    224 Dec 17 13:42 tests
  0 drwxr-xr-x 1 vagrant vagrant     96 Dec 18 13:27 .vagrant
  4 -rw-r--r-- 1 vagrant vagrant   1376 Nov 21 09:24 Vagrantfile
  0 drwxr-xr-x 1 vagrant vagrant   1280 Dec 18 13:25 vendor
204 -rw-r--r-- 1 vagrant vagrant 208270 Dec 18 13:50 yarn.lock

【问题讨论】:

    标签: linux laravel file-permissions


    【解决方案1】:

    我已经弄清楚了,由于某种原因,在我的 /bootstrap/cache 目录中,laravel 引用了我的主机上的路径而不是我的 vagrant box,清除这个目录对我来说是诀窍。出于某种原因,php artisan cache:clear 没有清除这些文件。

    我还设置了一个配置脚本,以便在我每次配置我的 Vagrant Box 时删除这些文件。

    # Remove Cache Files (because old cache files can cause issues from time to time)  [Keep .gitignore in all Directories]
    sudo find "$APPPATH/bootstrap/cache" ! -name '.gitignore' -type f -exec rm -f {} +
    sudo find "$APPPATH/storage/framework/cache" ! -name '.gitignore' -type f -exec rm -f {} +
    sudo find "$APPPATH/storage/framework/sessions" ! -name '.gitignore' -type f -exec rm -f {} +
    sudo find "$APPPATH/storage/framework/testing" ! -name '.gitignore' -type f -exec rm -f {} +
    sudo find "$APPPATH/storage/framework/views" ! -name '.gitignore' -type f -exec rm -f {} +
    

    【讨论】:

      猜你喜欢
      • 2014-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-24
      • 1970-01-01
      • 2016-04-17
      相关资源
      最近更新 更多