强制 Ubuntu 识别 LAMP php 安装

强制 Ubuntu 识别 LAMP php 安装

我已经在我的 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。您可以做的是

  1. 使用绝对路径调用它,即/opt/lamp/bin/php -v:如果你只是偶尔调用它,这是完美的
  2. 您可以在 bin 文件夹中添加一个符号链接,例如ln -s /opt/lamp/bin/php /usr/bin/php:如果 LAMP 版本是系统中的唯一版本,并且您经常使用它,则这很有用
  3. 将 bin 文件夹的路径添加到您的 PATH 环境中:如果 LAMP 是系统不可或缺的一部分,则可以使用此功能

bin/php这只是一个例子 - 您的实际二进制文件可能位于不同的目录中,并且名称不同。找到后,将其替换为正确的路径。

如果您安装了完整的二进制包,/opt最好检查它是否使用核心系统中存在的库,如果是,检查它如何使用。您可以通过发出ldd /opt/lamp/bin/php并检查打印的库的路径来做到这一点。有时,当这些二进制文件仍然使用您的系统库但期望不同的版本时,您会遇到麻烦。

相关内容