ubuntu 文件放置内容(./composer.lock):无法打开流:权限被拒绝

j1dl9f46  于 2022-11-22  发布在  其他
关注(0)|答案(3)|浏览(275)

我是Ubuntu的新手,我正在尝试运行我的Ubuntu Web服务器,但是我的composer有问题。当我运行composer install时,它输出错误[ErrorException] file_put_contents(./composer.lock): Failed to open stream: Permission denied。我在互联网上找到了解决这个问题的方法,但是它对我不起作用
非工作溶液:

sudo chown -R $USER ~/.composer/

它输出

chown: cannot access '/home/admin/.composer/': No such file or directory

我用的是Ubuntu 20.04,有人知道我该怎么做吗?

gkl3eglg

gkl3eglg1#

通过创建锁定文件,然后修改所有权,可以很容易地解决此问题。

  1. sudo touch composer.lock
  2. sudo chown -R $USER ./composer.lock
  3. composer update

    只需拥有projec文件夹:
    sudo chown -R $USER path/to/project/folder
    这样,您就不必使用sudo来运行composer update
0md85ypi

0md85ypi2#

对我有效的方法是使用cd到/fullpath-to-my-project,然后运行composer命令。
Composer的文档太少了,以至于我不知道在使用它之前你必须在站点的根目录下。这对大多数人来说是显而易见的,但对新手来说就不一定了。
当然,此解决方案隐含了其他建议所确定的正确权限。

xzabzqsa

xzabzqsa3#

运行sudo chown -R $USER ~/.composer/不起作用,因为实际上在Laravel结构中没有名为“composer”的文件/文件夹,而是名为“composer. lock”。相反,运行sudo chown $USER composer.lock会更有意义(用您的实际用户名替换$USER)。但是这并不能完全解决问题。
也就是说,您应该执行以下操作以确保composer install(或composer update)成功运行:我假设您的项目路径是/var/www/html/your-project。
1.更改Laravel项目文件夹的所有权:sudo chown -R www-data.www-data /var/www/html/your-project
1.更改Laravel项目文件夹的权限:sudo chmod -R 755 /var/www/html/your-project
1.使存储文件夹可写:sudo chmod -R 777 /var/www/html/your-project/storage
1.然后确保将当前用户添加到www-data组:sudo usermod $USER -g www-data(用您的用户名替换$USER)
现在,您应该能够运行composer installcomposer update,而不会出现权限错误。

相关问题