File_put_contents(./composer.lock): 无法打开流:权限被拒绝
File_put_contents(./composer.lock): Failed to open stream: Permission denied
我是 Ubuntu 的新手,我正在尝试获取我的 Ubuntu 网络服务器 运行ning,但我遇到了 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。有谁知道我该怎么办?
composer install
正在尝试在您的项目目录中创建一个 .composer.lock
文件,因此 php 应该有权这样做。
一个快速的破解方法是使用 sudo composer install
,但这不是推荐的方法。
这也应该有效
sudo chown -R :www-data /fullpath-to-your-project
这个问题可以通过创建锁文件然后修改所有权轻松解决。
sudo touch composer.lock
sudo chown -R $USER ./composer.lock
composer update
或
仅拥有项目文件夹:
sudo chown -R $USER path/to/project/folder
有了这个,你就不用再用sudo
到运行composer update
运行 sudo chown -R $USER ~/.composer/
将不起作用,因为在 Laravel 结构中确实没有 file/folder 称为 'composer',而是 'composer.lock'。
相反,运行ning sudo chown $USER composer.lock
会更有意义(将 $USER 替换为您的实际用户名)。
然而,这并不能完全解决问题。
也就是说,您应该执行以下操作以确保 composer install
(或 composer update
)运行 成功:我假设您的项目路径是 /var/www/html/your-project。
更改 Laravel 项目文件夹的所有权:
sudo chown -R www-data.www-data /var/www/html/your-project
更改 Laravel 项目文件夹的权限:sudo chmod -R 755 /var/www/html/your-project
使存储文件夹可写:sudo chmod -R 777 /var/www/html/your-project/storage
然后确保将当前用户添加到 www-data 组:sudo usermod $USER -g www-data
(将 $USER 替换为您的用户名)
现在您应该可以 运行 composer install
或 composer update
而不会出现权限错误。
我是 Ubuntu 的新手,我正在尝试获取我的 Ubuntu 网络服务器 运行ning,但我遇到了 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。有谁知道我该怎么办?
composer install
正在尝试在您的项目目录中创建一个 .composer.lock
文件,因此 php 应该有权这样做。
一个快速的破解方法是使用 sudo composer install
,但这不是推荐的方法。
这也应该有效
sudo chown -R :www-data /fullpath-to-your-project
这个问题可以通过创建锁文件然后修改所有权轻松解决。
sudo touch composer.lock
sudo chown -R $USER ./composer.lock
composer update
或
仅拥有项目文件夹:
sudo chown -R $USER path/to/project/folder
有了这个,你就不用再用sudo
到运行composer update
运行 sudo chown -R $USER ~/.composer/
将不起作用,因为在 Laravel 结构中确实没有 file/folder 称为 'composer',而是 'composer.lock'。
相反,运行ning sudo chown $USER composer.lock
会更有意义(将 $USER 替换为您的实际用户名)。
然而,这并不能完全解决问题。
也就是说,您应该执行以下操作以确保 composer install
(或 composer update
)运行 成功:我假设您的项目路径是 /var/www/html/your-project。
更改 Laravel 项目文件夹的所有权:
sudo chown -R www-data.www-data /var/www/html/your-project
更改 Laravel 项目文件夹的权限:
sudo chmod -R 755 /var/www/html/your-project
使存储文件夹可写:
sudo chmod -R 777 /var/www/html/your-project/storage
然后确保将当前用户添加到 www-data 组:
sudo usermod $USER -g www-data
(将 $USER 替换为您的用户名)
现在您应该可以 运行 composer install
或 composer update
而不会出现权限错误。