Webスクリプトの解析に使用されるPHPインタープリターを使用して、コマンドラインからPHPスクリプトを実行するにはどうすればよいですか?
Webからアクセスされるphpinfo.php
ファイルがあるので、German
がインストールされていることがわかります。ただし、_phpinfo.php
とgrep
にGerman
を使用して、コマンドラインからphp phpinfo.php
を実行すると、見つかりません。したがって、両方のphpが異なります。 php
がインストールされているGerman
を実行するスクリプトを実行する必要があります。
これどうやってするの?
誤解した後、私は最終的にあなたがやろうとしていることを得た。サーバー構成ファイルを確認する必要があります。 Apache2または他のサーバーソフトウェアを使用していますか?
LoadModule php
で始まる行を探してください...おそらくmods
またはそのような名前の設定ファイル/ディレクトリがあり、そこから開始します。
php -r 'phpinfo();' | grep php
からの出力を確認し、Webサーバーからのphpinfo();
と行を比較することもできます。
php
をインタラクティブに実行するには:(したがって、コンソールにコードを貼り付け/記述できます)
php -a
php -f file.php
php -f file.php > results.html
1行などの小さな部分だけを実行するには、次を使用できます。
php -r '$x = "Hello World"; echo "$x\n";'
Linuxを実行している場合は、コンソールでman php
を実行します。
SuSEには、PHP用の2つの異なる構成ファイルがあります。1つはApache用で、もう1つはCLI(コマンドラインインターフェイス)用です。/etc/php5 /ディレクトリには、「Apache2」ディレクトリと「cli」ディレクトリがあります。それぞれに「php.ini」ファイルがあります。ファイルは同じ目的(PHP構成)のものですが、PHPを実行する2つの異なる方法に適用されます。これらのファイルは、とりわけ、PHPが使用するモジュールをロードします。
OSが似ている場合、これらの2つのファイルはおそらく同じではありません。 Apache php.iniはおそらくgearmanモジュールをロードしていますが、cli php.iniはロードしていません。モジュールがインストールされたとき(自動または手動)、おそらくApacheのphp.iniファイルのみが更新されました。
Apacheのphp.iniファイルをcliディレクトリにコピーするだけで、CLI環境をApache環境とまったく同じにすることができます。
または、Apacheファイルでgearmanモジュールをロードする行を見つけて、それをCLIファイルにコピーして貼り付けることができます。
私はWindowsでこの問題の解決策を探していましたが、環境変数が無ければ、完全なディレクトリを置く必要があるようです。例えばPHPと同じディレクトリにファイルがある場合:
F:\myfolder\php\php.exe -f F:\myfolder\php\script.php