この記事は約2分で読めます。
本文は約1226文字です
SSHでWebサーバーのPHPバージョンを確認する方法
WebサーバーのPHPのバージョンを知るためによく使われるのが、phpinfo()
を使う方法です。
この方法は確実なのがメリットです。
しかし、ブラウザ経由でphpinfo()
を実行しなければならず、それぞれのサイトにphpファイルを作る必要があり、SSHなどから確認するのには向いていません。
そこで、この記事ではphpinfo()
を使わずにSSH経由でcurlを使って簡単にPHPバージョンを確認する方法をまとめます。
PHPのバージョンはレスポンスヘッダーに含まれる
特に出力の制限をしていない場合、PHPバージョンはレスポンスヘッダーのX-Powered Byで確認できます。
curlでレスポンスヘッダーを取得する
curlでサイトに接続して、レスポンスヘッダーを取得すると、X-Powered By経由でPHPバージョンを取得することができます。
curl -L -I http://hoge.com | sed -e 's/\r//g' | grep X-Power| uniq | cut -d: -f2 | cut -d/ -f2
-L
はリダイレクト先まで追跡するオプション
-I
はレスポンスヘッダーのみ取得するオプション
sedでは、curlが出力する余計な改行文字を消しています。
uniqは複数回同じヘッダーが出力されることがあるので、一つにまとめます。
cutはバージョンだけ取得するために使っています。
リダイレクト先が別サーバーになっている場合
curlでリダイレクト先まで追跡する場合、もし、リダイレクト先が別サーバーだと別サーバーの情報が得られてしまいます。
例えば、.htaccessに以下のような記述があり、すべて別サーバーのドメインにリダイレクトしている場合、リダイレクト先の情報になります。
最後に”/”が無いとリダイレクトに失敗して正しい結果が得られません。
Redirect permanent / https://www.seolabo-edf.jp/
参考:https://developers.google.com/search/docs/crawling-indexing/301-redirects
phpversion()
を使用する
phpversion()関数を使うことで、PHPのバージョンだけ取得することができます。
このコードをcurlで実行するとPHPのバージョンだけ取得できます。
<?php
echo phpversion();
まとめ
Apachを使用しているサーバーで、X-Powerd Byを出力抑制していない場合のみ有効な方法です。
コメント