不要使用 `php -v` 命令来确认 PHP 是否安装(警示)

概述

    PHP のインストールに失敗しているのに php -v に成功する場合がある

请向我展示您的护照。

假设要安装PHP 7,请执行以下命令。

$ sudo yum -y install php7.0 php70-mbstring php70-pdo

在这里错误地指定了一个不存在的“php7.0”软件包。

安装实际上包括以下内容。

=======================================================================================================
 Package                  Arch             Version                        Repository              Size
=======================================================================================================
Installing:
 php70-mbstring           x86_64           7.0.30-1.29.amzn1              amzn-updates           1.3 M
 php70-pdo                x86_64           7.0.30-1.29.amzn1              amzn-updates           171 k
Installing for dependencies:
 php70-cli                x86_64           7.0.30-1.29.amzn1              amzn-updates           4.7 M
 php70-common             x86_64           7.0.30-1.29.amzn1              amzn-updates           1.2 M
 php70-json               x86_64           7.0.30-1.29.amzn1              amzn-updates            65 k
 php70-process            x86_64           7.0.30-1.29.amzn1              amzn-updates            79 k
 php70-xml                x86_64           7.0.30-1.29.amzn1              amzn-updates           310 k

Transaction Summary
=======================================================================================================

可以清楚地看到,PHP核心文件并没有安装,但是当你输入php -v时,它会显示。

PHP 7.0.30 (cli) (built: May 10 2018 17:39:13) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies

将显示版本信息。

因此,我們會陷入這種狀況:”儘管顯示版本信息已安裝,但為什麼PHP無法運行”。

为什么这样呢?

即使只安装了php70-cli,我还是可以使用php -v进行版本确认,即使没有php本身,只要有cli包就可以进行版本确认。

我的結論是

    • 正確を期す場合は、php -v ではなく yum list installed | grep php* で確認

 

    yum のメッセージはよく読むべし
bannerAds