在Ubuntu上,全局安装Laravel/Installer失败

6
我正在尝试在我的Ubuntu机器(Trenta OS Distro)上运行 composer global require "laravel/installer",但出现了安装失败的情况。

file_put_contents(./composer.json):无法打开流:权限被拒绝

每次尝试都会出现以上错误。我在Google上找不到任何帮助,所以我猜这不是一个很常见的问题。我尝试使用 whereis 命令查找该文件的位置。
/usr/local/bin/composer

我尝试在那个文件上运行chmod -R 777,但没有起作用。我不知道还能做什么。

使用以下命令在我的机器上安装了Composer:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

我原以为composer.json只适用于项目,但我不需要现有的项目来简单地设置Laravel安装程序,对吧?


3
运行命令 [ sudo composer global require "laravel/installer" ] 来安装 Laravel 安装器。 - Nehal Hasnayeen
抱歉,那就是我的错了,谢谢 :) - JonnySerra
1
如果您以Sudo身份运行 - 强烈不建议以root /超级用户身份运行composer,因为无法始终信任软件包,插件和脚本。 - Ian Warner
我能够通过遵循这个答案 https://askubuntu.com/questions/925072/unable-to-execute-the-laravel-command-laravel-new-myapp/925139#925139?newreg=37996f817d18405aaed0977f51ebc914 来解决这个问题。 - Aslam H
5个回答

23

我遇到了同样的问题,阅读了这个答案后,我通过更新.composer文件夹的权限问题解决了它:

sudo chown -R $USER:$USER /home/$USER/.composer

其中$USER是您机器的用户名。

更新:正如@Lucas Bustamante所指出的那样,您不需要将$USER更改为您的用户名,它已经是环境变量了。

正如Ian Warner所评论的那样,以sudo用户身份运行composer并不是一个好主意,因为它可能会导致安全问题。


1
请提供有用的信息,加上(1)。 - Avnish Tiwary
1
PS:$ USER是当前已登录用户的系统变量。如果您想将所有权分配给当前用户,则不需要更改它。 - Lucas Bustamante
当我运行这个时,我得到了:chown: mypcusername: 非法的组名。 - nclsvh

0

首先运行whereis composer,然后进入该目录并运行sudo chown -R $USER:$USER / composer


0

我认为这可能会解决您的问题,就像它为我所做的那样。

我制作了一个Bash文件,用于全局安装Laravel的整个过程。 从此处下载,在Bash文件目录中打开终端并运行以下命令:

bash Laravel_Global_Installer.sh

这个bash文件管理以下安装:

  1. 最新版本的PHP及其扩展
  2. 最新版本的Composer(全局)
  3. 最新版本的Laravel(全局)

这将帮助您全局安装Composer而无需使用sudo。因此,您将能够全局安装Laravel。


0
usr/local/bin/composer composer global require "laravel/installer"

usr/local/bin/composer composer create-project --prefer-dist laravel/laravel myblog

一个好的答案通常包括一些解释。请添加一下。 - Alexei - check Codidact

-2

在命令前使用sudo,

例如:sudo composer global require "laravel/installer"


你的回答是早先评论的重复。 - kenlukas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接