2016-08-25 5 views
2

PHPでWebサーバー(Nginx、MySQL、MariaDB、...)のバージョンを希望します。PHPでWebサーバーのバージョンを取得

私はApacheの機能を知っています:apache_get_version()phpinfo()にはすべての値が返されますが、悪用方法はたくさんありますか?

あなたはアイデアを持っていますか、現時点では不可能ですか?

答えて

2

シンプルshell_execトリック(あなたがUNIXベースのサーバーにしていると仮定)を行うだろう。ただ、コマンドに任意のユーザデータを入れて、このアプローチは、共有ホスティング環境では動作しない可能性があることに注意していない:

$nginxVersion = shell_exec('nginx -v 2>&1'); 
$mysqlVersion = shell_exec('mysql --version'); 

注意をnginx sends version output to stderrは、あなたがそれをキャプチャするために標準出力にパイプする必要があります。

0

アドレス$ _SERVERスーパーグローバルhttp://php.net/manual/en/reserved.variables.server.php

私はあなたがしたい設定があると信じて:

echo $_SERVER['SERVER_NAME']; 
+0

ありがとうございます。今回は、$ _SERVER ['SERVER_SOFTWARE']はWebサーバー専用です。 – B2GraphiX

0

あなたは、より具体的に使用して$ _SERVERスーパーグローバルを使用してWebサーバのバージョンを取得することができます:含む

SERVER_SIGNATURE

文字列:PHPSのドキュメントを1として

$_SERVER['SERVER_SIGNATURE'] 

を有効な場合、サーバー生成ページに追加されるサーバー・バージョンおよび仮想ホスト名。

あなたは公式のPHPマニュアルサイトで詳細情報を見つけることができます:PHPでのMySQLおよび/またはMariaDBのバージョンを照会するに http://php.net/manual/en/reserved.variables.server.php

0

をあなたはまだ使用している場合、あなたはmysqli_get_server_info()かを(使用することができます古いMySQLのAPI廃止予定)mysql_get_server_info() PDOのAPIは、その目的のための類似の関数やクラスを持っていませんが、その場合には、あなたはちょうどそれが5.5.50-0+deb7u2のようなものを返すSQLクエリ

SELECT VERSION(); 

の結果を使用することができます。簡単な例を示します。

<?php 
    $user = 'username_here'; 
    $pass = 'your_db_password'; 
    // create DB connection 
    $dbh = new PDO('mysql:host=localhost;dbname=mysql', $user, $pass); 
    $stmt = $dbh->query('SELECT VERSION();'); 
    //fetch first column of first result row and print it out 
    echo $stmt->fetchColumn(); 
    //unset PDOStatement and PDO to close DB connection 
    unset($stmt); 
    unset($dbh); 
?> 
関連する問題