我是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,有人知道我该怎么做吗?
3条答案
按热度按时间gkl3eglg1#
通过创建锁定文件,然后修改所有权,可以很容易地解决此问题。
sudo touch composer.lock
sudo chown -R $USER ./composer.lock
composer update
或
只需拥有projec文件夹:
sudo chown -R $USER path/to/project/folder
这样,您就不必使用
sudo
来运行composer update
0md85ypi2#
对我有效的方法是使用cd到/fullpath-to-my-project,然后运行composer命令。
Composer的文档太少了,以至于我不知道在使用它之前你必须在站点的根目录下。这对大多数人来说是显而易见的,但对新手来说就不一定了。
当然,此解决方案隐含了其他建议所确定的正确权限。
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 install
或composer update
,而不会出现权限错误。