我已经在我的 ubuntu 环境(16.04)中安装了 LAMP,其中有 apache、php(7.0.9)、mysql...
尽管有 php 功能,但当我在终端中输入“php -v”时,我收到消息
可以在以下软件包中找到程序“php”
* php7.0-cli
* hhvm
据我了解,这意味着 ubuntu 无法识别来自 LAMP 的 php 安装。
有没有办法告诉 ubuntu 在 opt/lamp... 中有一个 php 安装,以便识别它?
答案1
您看到的消息是由command_not_found_handle
系统范围的 bashrc ( /etc/bash.bashrc
) 中定义的 shell 函数触发的。当您输入当前 PATH 中未找到的二进制文件的名称时,bash 会调用此函数。在 Ubuntu 上,它使用名为 command-not-found 的工具在软件包数据库中搜索您的输入,并建议可能包含您输入的命令的软件包。
根据您安装 LAMP 堆栈的方式(大量使用 apt-get 或解开大 tar 文件),您的问题可以得到两个答案。
如果您确实 apt-get 了所有堆栈应用程序,那么您就没有安装 php-cli 包。在这种情况下,您可以这样做,sudo apt-get install php7.0-cli
而且没有问题。
在您的问题中,您提到/opt/lamp
这表明您执行了 unblob-a-tar 操作。这意味着您应该在bin
下的某个目录中有一个 php cli 二进制文件/opt/lamp
。您可以做的是
- 使用绝对路径调用它,即
/opt/lamp/bin/php -v
:如果你只是偶尔调用它,这是完美的 - 您可以在 bin 文件夹中添加一个符号链接,例如
ln -s /opt/lamp/bin/php /usr/bin/php
:如果 LAMP 版本是系统中的唯一版本,并且您经常使用它,则这很有用 - 将 bin 文件夹的路径添加到您的 PATH 环境中:如果 LAMP 是系统不可或缺的一部分,则可以使用此功能
bin/php
这只是一个例子 - 您的实际二进制文件可能位于不同的目录中,并且名称不同。找到后,将其替换为正确的路径。
如果您安装了完整的二进制包,/opt
最好检查它是否使用核心系统中存在的库,如果是,检查它如何使用。您可以通过发出ldd /opt/lamp/bin/php
并检查打印的库的路径来做到这一点。有时,当这些二进制文件仍然使用您的系统库但期望不同的版本时,您会遇到麻烦。