安装Laravel时,我遇到了一个错误:“您的电脑是什么?”/composer.json不可写。”;

安装Laravel时,我遇到了一个错误:“您的电脑是什么?”/composer.json不可写。”;,laravel,installation,Laravel,Installation,这是我运行的命令: composer global require "laravel/installer" 这是我在那之后得到的文本和错误: Changed current directory to /home/dimitar/.composer ./composer.json is not writable. 我正在运行Ubuntu16.04 LTS和PHP7以及Composer版本1.3.0,并在我的主文件夹中运行此命令。错误说明了一切,权限有问题。我想最简单的解决方

这是我运行的命令:

composer global require "laravel/installer"
这是我在那之后得到的文本和错误:

Changed current directory to /home/dimitar/.composer
./composer.json is not writable.

我正在运行Ubuntu16.04 LTS和PHP7以及Composer版本1.3.0,并在我的主文件夹中运行此命令。

错误说明了一切,权限有问题。我想最简单的解决方法是运行以下命令:

sudo chmod -R 775 /home/dimitar

您可以使用
sudo
权限运行,而无需更改文件夹权限,因为您是在全局中安装的

sudo composer global package_name
例如:

sudo composer global require "laravel/installer"
你的密码


输入

检查composer.json的所有者

ls -lh ~/.composer/composer.json
如果是“root”,请运行:

sudo chown -R yourusername:yourusername ~/.composer/composer.json
sudo chown -R yourusername:yourusername /home/<yourusername>/.composer/composer.json
在.composer文件夹中,检查“缓存”文件夹所有者。 如果它是“root”,则重新运行上面的命令,但将composer.json切换到缓存。
否则,您可能会出现“无法创建缓存目录”警告。

我认为您的composer文件中缺少此代码,该文件不允许PackageGist找到Laravel的包

将其放入
composer.json
文件中,然后重试:

"repositories": {
    "packagist": { "url": "https://packagist.org", "type": "composer" }
 }

检查composer.json的所有者

ls -lh /home/<yourusername>/composer.json
ls-lh/home//composer.json
如果是“root”,请运行:

sudo chown -R yourusername:yourusername ~/.composer/composer.json
sudo chown -R yourusername:yourusername /home/<yourusername>/.composer/composer.json
sudo chown-R yourusername:yourusername/home/.composer/composer.json

在.composer文件夹中,检查“缓存”文件夹所有者。如果是“root”,则在命令上方重新运行,但将composer.json切换到缓存。否则,您可能会出现“无法创建缓存目录”警告。

您的命令正在以
vagrant
用户身份运行,该用户没有足够的权限

它可以作为www数据用户运行:


sudo-u www-data-composer-global需要“laravel/installer”

另一种情况。如果您使用的是双引导操作系统,请确保其他操作系统已正确关闭/断电。例如,在我的例子中,如果windows 10处于休眠状态,此错误将发生在ubuntu操作系统上,请尝试
777
,但不要在生产服务器上执行此操作。它成功了!谢谢!!我可以在安装后将其恢复到775权限,对吗?我不确定mate,但您可以尝试,如果它会停止某些操作,请再次执行777。)非常好的朋友,谢谢,这只是一个需要使用sudo的例子。不要用sudo运行composer。它会让插件或任何你正在安装的东西完全访问root,这是一个潜在的安全问题。甚至不允许。不要以root/super用户身份运行Composer!查看详细信息每个人都可以在键入
sudo composer
i后看到这个狗屎我相信将整个
.composer
文件更改为所有者将是最好的事情。为了避免将来在安装laravel时出现错误,当脚本试图编写类似于供应商文件的内容时,您可能会遇到问题
sudo chown-R yourusername:yourusername.composer如果您试图对一个文件设置权限,则无需键入
-R
标志