AlmaLinuxでPHPバージョンを確認する方法|コマンドとphpinfoで完全チェック

Linux

AlmaLinuxでWebサーバーを構築していると、「今使っているPHPのバージョンって何だっけ?」と確認したくなることがありますよね。

セキュリティアップデートが必要か判断したり、特定のバージョンが必要なアプリケーションを動かす前に、現在のPHPバージョンを把握しておくのは重要です。

この記事では、AlmaLinuxでPHPのバージョンを確認する方法を、初心者の方にも分かりやすく解説していきます。

確認方法は主に2つ:

  • コマンドラインで確認する方法(SSH接続時など)
  • Webブラウザで確認する方法(phpinfo使用)

それぞれの方法と、インストール済みのPHP関連パッケージの確認方法、トラブルシューティングまで詳しく説明していきますよ。

スポンサーリンク
  1. 方法1:コマンドラインでPHPバージョンを確認
    1. 基本コマンド:php -v
    2. メジャーバージョンとマイナーバージョン
    3. PHPがインストールされていない場合
  2. 方法2:phpinfo()でWebブラウザから確認
    1. phpinfoファイルの作成
    2. phpinfoページの見方
    3. セキュリティ上の注意
  3. 方法3:インストール済みPHPパッケージを確認
    1. dnfコマンドで確認
    2. 特定のパッケージ情報を詳しく確認
  4. PHPモジュール(拡張機能)の確認
    1. コマンドラインで確認
    2. 特定のモジュールが有効か確認
    3. モジュールの詳細情報
  5. PHP設定ファイルの場所を確認
    1. 設定ファイルのパスを表示
    2. php.iniの内容確認
    3. 特定の設定値を確認
  6. CLI版とWebサーバー版のバージョン違いに注意
    1. なぜバージョンが違うことがあるの?
    2. 両方のバージョンを確認する方法
    3. PHP-FPMのバージョン確認
  7. 複数のPHPバージョンがインストールされている場合
    1. インストール済みバージョンの確認
    2. 有効化されているバージョンを確認
    3. alternativesで管理されている場合
    4. 特定バージョンのパスを確認
  8. ApacheでのPHPバージョン確認
    1. Apacheモジュールとして動作している場合
    2. Apacheの設定ファイルを確認
  9. NginxでのPHPバージョン確認
    1. PHP-FPMのプロセス確認
    2. PHP-FPMの設定確認
    3. PHP-FPMのプールバージョン
  10. トラブルシューティング
    1. 問題1:「php: command not found」
    2. 問題2:CLIとWebサーバーでバージョンが違う
    3. 問題3:php -vとphpinfoの情報が異なる
    4. 問題4:phpinfoページが表示されない
  11. バージョンアップやダウングレードの前に
    1. 現在の環境情報を保存
    2. バックアップの確認
  12. まとめ:PHPバージョンは定期的に確認しよう

方法1:コマンドラインでPHPバージョンを確認

最も基本的で素早い確認方法は、コマンドラインを使う方法です。

基本コマンド:php -v

ターミナルで以下のコマンドを実行してください:

php -v

または

php --version

出力例:

PHP 8.1.27 (cli) (built: Dec 19 2023 20:35:55) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.27, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.27, Copyright (c), by Zend Technologies

この出力から分かる情報:

  • PHPバージョン:8.1.27
  • 動作モード:cli(コマンドラインインターフェース)
  • ビルド日時:2023年12月19日
  • Zend Engineバージョン:4.1.27
  • 有効なエクステンション:Zend OPcache

メジャーバージョンとマイナーバージョン

PHPのバージョン番号は「8.1.27」のような形式です。

  • 8:メジャーバージョン(大きな変更)
  • 1:マイナーバージョン(機能追加)
  • 27:パッチバージョン(バグ修正)

セキュリティ的には、最新のパッチバージョンを使うことが推奨されます。

PHPがインストールされていない場合

もし以下のようなエラーが出たら、PHPがインストールされていません:

bash: php: コマンドが見つかりません...

または

bash: php: command not found

この場合は、まずPHPをインストールする必要があります。

方法2:phpinfo()でWebブラウザから確認

Webサーバー経由でPHPが動作している場合、phpinfo()関数を使って詳細情報を確認できます。

phpinfoファイルの作成

手順1:テストファイルを作成

Webサーバーのドキュメントルートにファイルを作成します。

Apacheの場合、通常は以下のディレクトリ:

/var/www/html/

viエディタで作成:

sudo vi /var/www/html/info.php

または、nanoエディタで:

sudo nano /var/www/html/info.php

手順2:以下の内容を記述

<?php
phpinfo();
?>

たったこれだけのコードで、PHP環境のすべての情報が表示されます。

手順3:ファイルを保存

viの場合:Escキーを押して:wqと入力してEnter

nanoの場合:Ctrl + XY、Enterで保存

手順4:ブラウザでアクセス

Webブラウザで以下のURLにアクセスします:

http://サーバーのIPアドレス/info.php

または

http://example.com/info.php

phpinfoページの見方

phpinfoページを開くと、紫色の背景に白文字で「PHP Version」と大きく表示されます。

ページ上部に表示される情報:

  • PHPバージョン:メジャー、マイナー、パッチバージョン
  • システム情報:OS、アーキテクチャ
  • ビルド日時
  • サーバーAPI:Apache 2.0 Handler、FPM-FCGIなど

さらに下にスクロールすると、以下の詳細情報が確認できます:

  • 有効になっているモジュール(拡張機能)
  • php.iniの設定値
  • 環境変数
  • インクルードパス

セキュリティ上の注意

phpinfoファイルは、システムの詳細情報を表示してしまうため、確認後は必ず削除してください。

sudo rm /var/www/html/info.php

本番環境で放置すると、攻撃者に情報を与えてしまうリスクがあります。

方法3:インストール済みPHPパッケージを確認

AlmaLinuxにインストールされているPHP関連のパッケージを確認する方法です。

dnfコマンドで確認

dnf list installed | grep php

または

rpm -qa | grep php

出力例:

php-8.1.27-1.el9.remi.x86_64
php-cli-8.1.27-1.el9.remi.x86_64
php-common-8.1.27-1.el9.remi.x86_64
php-fpm-8.1.27-1.el9.remi.x86_64
php-json-8.1.27-1.el9.remi.x86_64
php-mbstring-8.1.27-1.el9.remi.x86_64
php-mysqlnd-8.1.27-1.el9.remi.x86_64
php-xml-8.1.27-1.el9.remi.x86_64

この出力から分かること:

  • インストールされているPHPパッケージの一覧
  • 各パッケージのバージョン
  • リポジトリ(この例では「remi」リポジトリ)

特定のパッケージ情報を詳しく確認

dnf info php

出力例:

インストール済みパッケージ
名前         : php
バージョン   : 8.1.27
リリース     : 1.el9.remi
アーキテクチャ: x86_64
サイズ       : 3.7 M
ソース       : php-8.1.27-1.el9.remi.src.rpm
リポジトリー : @remi-8.1
要約         : PHP scripting language

より詳細な情報が表示されます。

PHPモジュール(拡張機能)の確認

インストールされているPHP拡張機能を確認する方法です。

コマンドラインで確認

すべてのモジュールを表示:

php -m

出力例:

[PHP Modules]
calendar
Core
ctype
curl
date
dom
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcre
PDO
pdo_mysql
Phar
readline
Reflection
session
SimpleXML
SPL
standard
tokenizer
xml
xmlreader
xmlwriter
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache

2つのセクションに分かれています:

  • PHP Modules:通常のPHP拡張機能
  • Zend Modules:Zend Engine関連(パフォーマンス最適化など)

特定のモジュールが有効か確認

特定のモジュールがインストールされているか確認:

php -m | grep mbstring

モジュール名が表示されれば、インストール済みです。

表示されなければ、インストールされていません。

モジュールの詳細情報

php --ri モジュール名

例えば、mysqliモジュールの情報:

php --ri mysqli

出力例:

mysqli

MysqlI Support => enabled
Client API library version => mysqlnd 8.1.27
Active Persistent Links => 0
Inactive Persistent Links => 0

モジュールのバージョンや設定が確認できます。

PHP設定ファイルの場所を確認

php.ini(PHP設定ファイル)の場所を確認する方法です。

設定ファイルのパスを表示

php --ini

出力例:

Configuration File (php.ini) Path: /etc
Loaded Configuration File:         /etc/php.ini
Scan for additional .ini files in: /etc/php.d
Additional .ini files parsed:      /etc/php.d/20-mbstring.ini,
/etc/php.d/20-mysqlnd.ini,
/etc/php.d/30-mysqli.ini,
/etc/php.d/30-pdo_mysql.ini

この情報から分かること:

  • メイン設定ファイル:/etc/php.ini
  • 追加設定ファイルのディレクトリ:/etc/php.d
  • 実際に読み込まれている追加ファイル

php.iniの内容確認

設定ファイルの中身を見る:

cat /etc/php.ini | grep "^[^;]"

このコマンドは、コメント行(;で始まる行)を除いた有効な設定のみを表示します。

特定の設定値を確認

php -i | grep "memory_limit"

または

php -r "echo ini_get('memory_limit');"

出力例:

128M

現在のメモリ制限値が表示されます。

CLI版とWebサーバー版のバージョン違いに注意

実は、コマンドライン版のPHPWebサーバー版のPHPが、異なるバージョンになっていることがあります。

なぜバージョンが違うことがあるの?

以下のような理由で、異なるバージョンが共存することがあります:

  1. 異なるパッケージ:cli版とfpm版が別々にインストールされた
  2. パスの優先順位:複数バージョンがインストールされている
  3. 設定の違い:Apacheモジュール版とCLI版が別々に管理

両方のバージョンを確認する方法

CLI版(コマンドライン):

php -v

Webサーバー版:

phpinfoファイルをブラウザで確認(前述の方法2)

または、コマンドラインから:

echo "<?php phpinfo(); ?>" | php

PHP-FPMのバージョン確認

PHP-FPM(FastCGI Process Manager)を使用している場合:

php-fpm -v

出力例:

PHP 8.1.27 (fpm-fcgi) (built: Dec 19 2023 20:35:55)

動作モードが「fpm-fcgi」となっています。

複数のPHPバージョンがインストールされている場合

AlmaLinuxでは、複数のPHPバージョンを同時にインストールできます。

インストール済みバージョンの確認

dnf module list php

出力例:

AlmaLinux 9 - AppStream
Name   Stream   Profiles              Summary
php    8.1      common, devel, minimal PHP scripting language
php    8.2 [d]  common, devel, minimal PHP scripting language

[d]が付いているのがデフォルトバージョンです。

有効化されているバージョンを確認

dnf module list php --enabled

現在有効になっているPHPモジュールストリームが表示されます。

alternativesで管理されている場合

alternatives --display php

複数バージョンが登録されている場合、切り替え可能なバージョン一覧が表示されます。

特定バージョンのパスを確認

which php

または

whereis php

出力例:

php: /usr/bin/php /usr/lib64/php /etc/php.d /etc/php.ini /usr/share/man/man1/php.1.gz

実際に使われているPHPコマンドの場所が分かります。

ApacheでのPHPバージョン確認

Apache Webサーバーを使用している場合の確認方法です。

Apacheモジュールとして動作している場合

Apacheにロードされているモジュールを確認:

httpd -M | grep php

または

apachectl -M | grep php

出力例:

php_module (shared)

PHPがApacheモジュールとして動作していることが分かります。

Apacheの設定ファイルを確認

grep -r "LoadModule php" /etc/httpd/

PHPモジュールがどのように読み込まれているか確認できます。

NginxでのPHPバージョン確認

Nginx Webサーバーを使用している場合の確認方法です。

PHP-FPMのプロセス確認

ps aux | grep php-fpm

動作中のPHP-FPMプロセスが表示されます。

PHP-FPMの設定確認

php-fpm -t

設定ファイルのテストと、設定ファイルの場所が表示されます。

PHP-FPMのプールバージョン

cat /etc/php-fpm.d/www.conf | grep "^[^;]" | head -20

PHP-FPMプールの設定が確認できます。

トラブルシューティング

バージョン確認時によくある問題と解決方法です。

問題1:「php: command not found」

原因:
PHPがインストールされていないか、パスが通っていません。

解決方法:

PHPがインストールされているか確認:

dnf list installed | grep php

何も表示されなければ、インストールされていません。

インストールする場合:

sudo dnf install php php-cli

パスを確認:

echo $PATH

/usr/binがパスに含まれているか確認します。

問題2:CLIとWebサーバーでバージョンが違う

原因:
異なるPHPバイナリが使用されています。

解決方法:

使用されているバイナリを確認:

which php
ls -la /usr/bin/php

シンボリックリンクの場合、リンク先を確認します。

Webサーバーが使用しているPHPを確認:

phpinfoで「Server API」と「Configuration File Path」をチェックしてください。

問題3:php -vとphpinfoの情報が異なる

原因:
設定ファイルが異なる可能性があります。

解決方法:

それぞれの設定ファイルを確認:

CLI版:

php --ini

Web版:
phpinfoページで「Loaded Configuration File」を確認

異なる設定ファイルを使用している場合、表示される情報も変わってきます。

問題4:phpinfoページが表示されない

原因:
Webサーバーの設定やPHPの処理に問題があります。

解決方法:

ステップ1:Webサーバーが動作しているか確認

Apache:

systemctl status httpd

Nginx:

systemctl status nginx

ステップ2:PHPファイルの配置場所を確認

ls -la /var/www/html/info.php

ファイルが存在し、読み取り権限があるか確認します。

ステップ3:Apacheのエラーログを確認

sudo tail -f /var/log/httpd/error_log

エラーメッセージがないかチェックします。

ステップ4:PHPが正しく設定されているか

Apache:

httpd -t

Nginx:

nginx -t

設定ファイルにエラーがないか確認します。

バージョンアップやダウングレードの前に

PHPのバージョンを変更する前に、必ず現在のバージョンを記録しておきましょう。

現在の環境情報を保存

php -v > ~/php_version_backup.txt
php -m >> ~/php_version_backup.txt
php --ini >> ~/php_version_backup.txt

これで、現在のPHPバージョン、モジュール、設定ファイルの情報がファイルに保存されます。

バックアップの確認

cat ~/php_version_backup.txt

保存された情報を確認できます。

問題が発生した場合、この情報を元に元の状態に戻せます。

まとめ:PHPバージョンは定期的に確認しよう

AlmaLinuxでPHPバージョンを確認する方法をまとめます。

主な確認方法:

1. コマンドラインで確認

php -v
  • 最も簡単で素早い
  • SSH接続時に便利
  • CLI版のバージョンを確認

2. phpinfoで確認

<?php phpinfo(); ?>
  • Webブラウザで詳細情報を確認
  • Webサーバー版のバージョンを確認
  • すべての設定値が見られる
  • 確認後は必ず削除

3. パッケージ情報で確認

dnf list installed | grep php
  • インストール済みパッケージを確認
  • リポジトリ情報も分かる

確認できる情報:

  • PHPのバージョン番号(メジャー、マイナー、パッチ)
  • インストール済みモジュール
  • php.iniの場所
  • ビルド情報
  • Zend Engineバージョン

注意点:

  • CLI版とWebサーバー版で異なる場合がある
  • phpinfoファイルは確認後に削除
  • セキュリティのため最新バージョンを保つ
  • バージョン変更前は必ずバックアップ

関連コマンド:

  • php -m:モジュール一覧
  • php --ini:設定ファイルの場所
  • php -i:詳細情報(CLI版phpinfo)
  • php-fpm -v:PHP-FPMのバージョン

PHPのバージョンは、セキュリティとパフォーマンスに直結する重要な情報です。

定期的に確認して、サポートが終了した古いバージョンを使い続けていないかチェックしましょう。

特に本番環境では、セキュリティアップデートが提供されているバージョンを使用することが重要です。

この記事で紹介したコマンドを使えば、いつでも簡単にPHPのバージョンを確認できますよ。

サーバー管理の基本スキルとして、ぜひこれらのコマンドを覚えておいてくださいね!

コメント

タイトルとURLをコピーしました