0

Windowsシステムの%PATH%変数について少し混乱しています。php-cliとapacheによって配信されるWebページの両方を使用して次のスクリプトを実行すると、path変数に対して異なる出力が得られます。

// different output for php-cli and php executed by apache webserver
<?php
system('echo %PATH%');
?>

Apache Webサーバーで使用されているPATH変数はどこで変更できますか?

私のシステム:

  • Win764ビット
  • Zend Server Community Edition 5.0.4(IISではなくApacheを使用)

編集: 申し訳ありませんが、問題を理解するために例を挙げなければなりませんでした:

system('mysqldump .....')コマンドなどを実行したかったのです。重要なのは、コマンドラインからスクリプトを実行することは機能します。これは、MySQLのbinパスがシステムのパスにあるが、webbrowserを介してスクリプトを実行すると、システムのパスにMySQLのbinパスが含まれないためです。

Webシステムのパスは次のとおりです。

C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\Programme\Sysinternals;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Zend\ZendServer\bin 

元のシステムのパスを少し長くします。私の質問は、システムのパスが制限されている場所、またはWebで実行されるphpスクリプトのシステムのパス設定をどこで見つけることができるかということです。

4

3 に答える 3

1

を参照してくださいC:\Path\To\Zend\ZendServer\ZendEnablerConf.xml

定義されたパス変数があります。

于 2011-02-14T23:31:30.007 に答える
1

代わりに以下を使用してみてください。

echo getenv('PATH')
于 2011-02-12T22:48:22.390 に答える
0

環境変数は、Windows ではプロセスごとです。それらは(通常)親プロセスから継承され、最上位プロセス設定PATHはシステム全体のパスとユーザーごとのパスに設定されます。したがって、ユーザー アカウントで PHP の CLI バージョンを実行している場合、パスにはユーザー定義のパスが含まれますが、サービス アカウントで実行されている Apache プロセスはシステム全体のパスのみを取得します。

システム全体のパスは、システムのプロパティ (コントロール パネル\システムとメンテナンス\システム)、詳細設定、環境変数で設定できます。または、ディレクティブなどを使用mod_envして、Apache で環境変数を設定できると思います。SetEnv

于 2011-02-12T23:02:55.227 に答える