在Ubuntu 20.04上,我遇到了“laravel: command not found”错误提示。

15
我进行了Ubuntu 20.04 LTS(Focal Fossa)的全新安装,安装了Apache、PHP、MySQL和PHP Composer,看起来没有问题。但是,我仍然无法获得laravel -V的版本号。
我查看了大量的YouTube视频,并尝试了在Stack Overflow上找到的建议的解释。我该如何解决? 这是我的shell $PATH的输出

1
你是如何安装 Laravel 安装程序的?你是否按照文档中的步骤进行了操作? - Tpojka
2个回答

68

如果您希望全局调用二进制文件,必须将PHP Composer二进制文件夹添加到$PATH中。


A) 确保您拥有最新的Laravel安装程序:

composer global require laravel/installer

B) 将composer二进制文件夹添加到$PATH:

  1. 编辑您的.bashrc文件:gedit $HOME/.bashrc

  2. 添加以下行:export PATH="$PATH:$HOME/.config/composer/vendor/bin"

C) 使用source命令强制Ubuntu重新加载您的.bashrc文件:

source $HOME/.bashrc

D) 尝试输出Laravel安装程序的版本:

laravel -V


需要补充的解释:

要在Linux终端执行命令,需要告诉Linux程序所在的位置。

例如,您可以使用完整路径启动Laravel安装程序:$HOME/.config/composer/vendor/bin/laravel -V

但是,您希望能够直接调用laravel -V命令,因为您不想每次都输入完整路径。

由于您正在Ubuntu上,因此默认的shell程序是Bash。您需要告诉Bash在键入命令时要查找哪里。在这种情况下,您希望Bash查找$HOME/.config/composer/vendor/bin/文件夹。

Bash的配置文件是一个名为.bashrc的隐藏文件,位于用户主文件夹中。Bash将特殊文件夹列表存储在一个名为$PATH的变量中。要添加新文件夹,我们只需将其添加到$PATH变量中。

如果在终端中键入echo $PATH,Bash将输出$PATH变量的内容,并显示文件夹列表。

现在您可能会问:"为什么我必须这样做?我通常不需要更改Bash配置"。是的,这是因为您通常安装Ubuntu软件包,它们已经配置为开箱即用。在这种情况下,您在家目录中安装了一个composer软件包,因此您需要按照自己的方式对其进行配置。


可能要求有点多,但您能否对它到底做了什么给予一些澄清? - FredKearnes
当然,我会在我的回答中添加更多细节。 - LobsterBaz
1
在Ubuntu 20.04中,source ~/.bashrc可能不会返回错误,而不是source .bashrc - niilante
工作非常好。 - Paulo Matos
对我来说,我必须将路径设置为以下内容: export PATH="$PATH:$HOME/.composer/vendor/laravel/installer/bin" - Erik Olson

0

每次打开新的终端窗口时,您可能需要执行以下命令:source $HOME/.bashrc 然后运行 laravel -v


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