1

私は非常に多くの同様の質問を読みましたが、何もうまくいきません

wamp 2.2、Apache 2.0、PHP V5.3.8を使用しています

safe_mode=off - php.ini から削除された disabled_functions を実行しようとしています

exec("chrome.exe google.com");

何も起こらず、試してみると

exec("calc");

apacheサービスのユーザーを管理者に変更し、使用してユーザーを確認しましたが、ウィンドウに別のユーザーで計算を実行するという奇妙なメッセージが表示されます

exec("whoami");

問題はどこだ?

4

3 に答える 3

0

CMD と php シェルの環境パスが同じではない可能性があります。ファイルのパス全体を指定するか、最初に phpexportのパスを指定する必要がありますchrome.exe

また、chrome.exeページを開くにはXServerが必要だと思います.phpはシェルでグラフィカルインターフェイスを開くことができません。これらのコマンドは親として実際のシェルに渡されないため、php ファイルはアプリケーションを「起動」できません。

exec 関数の詳細をお読みください: PHPexecリファレンス

2> errors.txtまた、プログラムの実行中にエラーがある場合は、追加してみてください。

--

プログラムは、どの X サーバーに接続するかを知る必要があり、そのサーバーに接続するためのアクセス許可を持っている必要があります。DISPLAY 環境変数を使用して X サーバーを指定します。これは通常、PHP プログラムを X の端末から実行している場合、または GNOME パネルなどから実行している場合に自動的に設定されます。ただし、PHP スクリプトを他の方法で実行している場合は、どの X サーバーに接続すればよいかがわからない可能性があります。

X には、サーバーへの接続許可を指定するさまざまな方法がありますが、最も一般的な方法は、ユーザーのホーム ディレクトリにある「.Xauthority」というファイルを使用する方法です。X サーバーにログインしているユーザーのみがこのファイルを読み取ることができるため、GUI プログラムを実行できるのはそのユーザーだけです。したがって、X サーバーにログインしているのと同じユーザーとして PHP ユーザーを開始する場合、パーミッションに問題はありません。ただし、PHP プログラムが別のユーザーとして実行されている場合は、そのユーザーに X サーバーへのアクセス許可を与える必要があります。

参照: http://bytes.com/topic/php/answers/838364-cant-launch-graphical-apps-php-exec-ubuntu-8-04-system (リンクは Linux 用であり、 Windows でもまったく同じ解決策ですが、exec()どの X インターフェイスを参照するかを知る必要があります)

于 2012-06-29T22:37:39.643 に答える
0

サービスとして実行されている Apache を停止します。

Windowsがサービスを実行するとき、サーバーを起動したり管理したりするユーザーとして直接実行されていないため、サービス環境でChromeを起動している可能性があるため、デスクトップにロードされていないことがわかります。これを回避するには2つの方法があります

Apache サービスを停止して、Apache ディレクトリを参照し、httpd.exe を手動で実行してから、スクリプトを試してください。動作するはずです。または、Web 要求を介して実行する必要がない場合は、ブラウザーから何も使用しないようにして、動作を許可しますc:\wamp\php\php.exe yourfile.php(あなたのphpパスはに置き換える必要がありますc:\wamp\php

于 2012-07-08T23:48:46.213 に答える