概要
- 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 を単独で yum install してみた場合でも php -v ができました。
PHP 本体がなくても、cli パッケージがあればバージョン確認ができてしまうようです。
結論
- 正確を期す場合は、php -v ではなく yum list installed | grep php* で確認
- yum のメッセージはよく読むべし