【问题标题】:Composer global require Laravel/Installer not working on UbuntuComposer global 需要 Laravel/Installer 不能在 Ubuntu 上运行
【发布时间】:2016-09-07 08:48:39
【问题描述】:

我正在尝试在我的 Ubuntu 机器 (Trenta OS Distro) 上运行 composer global require "laravel/installer",但由于某种原因我无法安装它。

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

我每次尝试都会收到上述错误。我在谷歌上找不到任何帮助,所以我猜这不是一个很常见的问题。我在该文件上尝试了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 安装程序,对吧?

【问题讨论】:

  • 运行 [ sudo composer global require "laravel/installer" ]
  • 哈哈,就是这样,我的错,谢谢:)
  • 如果你以 Sudo 身份运行 - 强烈建议不要以 root/超级用户身份运行 composer,因为包、插件和脚本不能总是被信任
  • 我可以通过关注这个答案来解决这个问题askubuntu.com/questions/925072/…

标签: php linux laravel ubuntu composer-php


【解决方案1】:

我遇到了同样的问题,在阅读了answer 之后,我解决了它,更新了.composer 文件夹权限:

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

$USER 是您机器的用户名。

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

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

【讨论】:

  • plus(1) 获取有用信息。
  • PS:$USER 是当前登录用户的系统变量。如果您想将所有权分配给当前用户,则无需更改。
【解决方案2】:
usr/local/bin/composer composer global require "laravel/installer"

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

【讨论】:

  • 一个好的答案通常包括一些解释。请添加一个。
【解决方案3】:

我认为这可能会像对我一样解决您的问题。

我为 Laravel 全局安装的全过程制作了一个 bash 文件。 download it from here,在bash文件目录下打开终端,运行如下命令:

bash Laravel_Global_Installer.sh

此 bash 文件管理以下项目的安装:

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

这将帮助您在不使用 sudo 的情况下全局安装 Composer。因此,您将能够在全球范围内安装 Laravel。

【讨论】:

    【解决方案4】:

    在命令前使用 sudo,

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

    【讨论】:

    • 您的回答是对先前评论的重复
    猜你喜欢
    • 2020-02-07
    • 2020-04-25
    • 2018-03-25
    • 2020-12-20
    • 1970-01-01
    • 2017-02-14
    • 2017-01-31
    • 2020-05-26
    • 2021-02-19
    相关资源
    最近更新 更多