使用されているPHPを判別する方法は?


10

使用されているPHPを判別する方法は?

例えば、存在する場合/usr/local/bin/phpusr/local/bin/php5、どのように私は1つが私のPHPスクリプトで使用されている知っているのですか?

回答:


11

PHP CLIを使用している場合は、これらのシェルコマンドを使用してみてください(ここではLinuxを使用していると想定しています)

which php - will locate the php executable (this should be the default php used by you)
whereis php - The first path displayed will be the location of the php executable
echo $PATH - will print a list of paths separated by ":" where the system looks for commands

PHPをApacheモジュールとして使用している場合、phpinfo()は、使用されているphpのバージョンと、phpパスではなく、php設定ファイル通知します。2つのバージョンのphp実行可能ファイルがある場合は、これが役立ちます。それらが同じバージョンである場合、誰が誰であるかは問題ではありません:)

phpのバージョンを確認したい場合、php -vを実行すると、CLIとインストールされているZendモジュールにphpのバージョンが出力されます。

含まれているiniファイルを確認する場合、php --iniはphpモジュールによってロードされたiniファイルのリストを表示します(これはCLIバージョンに適用されます)。


すべての入力をありがとう。どうやら、whichコマンドは私が必要なものです。
ランデル

@Randell-使用しないでくださいwhichcommand -v代わりに使用してください。「Bashスクリプトからプログラムが存在するかどうか確認する」も参照してください


5

Webサーバーを介して使用していると仮定します。
次の関数をスクリプトに含めることができます。

<?php 
phpinfo(); 
?>

これが機能しない場合は、php.iniでこの関数が無効になっている可能性があります。これはセキュリティのためによく行われます。この場合は、php.iniに次のような行があります。

disable_functions = phpinfo

この場合は、一時的に次のように変更してください

disable_functions =

シェルスクリプトにphpを使用している場合:

  1. 上のような「シバンライン」があるはずです

    #!/ usr / local / bin / php -q

  2. 片方がもう片方へのリンクではないのですか?行う

    ls -l / usr / local / bin / php

  3. しないでください;-)


5

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

$ php -v

PHP 5.2.6-3ubuntu4 with Suhosin-Patch 0.9.6.2(cli)(built:Mar 31 2009 02:11:31)Copyright(c)1997-2008 The PHP Group Zend Engine v2.2.0、Copyright(c)1998- 2008 Zend Technologies


これphpはユーザーのログインからを実行しません。必ずしもApacheで使用されているphpではありませんか?

1
<?php
// prints e.g. 'Current PHP version: 4.1.1'
echo 'Current PHP version: ' . phpversion();
?>

0

Apacheウェブサーバーによって呼び出されるWebスクリプトについて話していて、PHPがApacheモジュールとして構成されている場合、答えはNONEです。

あなたが質問で言及している場所は、次のようなシバン記法によって呼び出されるコマンドラインスクリプトインタープリターです

 #!/usr/local/bin/php

あなたのphpコマンドラインスクリプトの一番上に

名前が異なるため、個別に言及したインタプリタを呼び出すことができます

# php

/ usr / local / bin / phpを呼び出し、

# php5

/ usr / local / bin / php5を呼び出します

Apacheモジュールを介してPHPを使用する場合は、どちらも使用されません。phpのCGIバージョンを使用している場合は、phpinfo()に表示されます。出力。



0
<?php echo shell_exec('which php'); ?>

これはシェルにアクセスできない場合でも機能します。;-)


これは、求めている人が探していたものとは違うと思います。これは、シェル環境がPATHルックアップで最終的に何を使用するかを通知するだけです。これは、スクリプトが実行されるPHPと必ずしも同じではありません。
Theuni
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.