2

Windows 7 64 ビット マシンで Apache 2.2.17 と PHP 5.3.5 を実行しています。

PHP を介してシステム コマンドを実行するために、exec()、system()、またはその他の関数を使用しようとすると、機能しないことに気付きました。コマンド ライン ウィンドウに貼り付けると、まったく同じコマンドが機能します。これは、最も単純なコマンド ライン プログラムではないすべてのプログラムに影響するようです。system('C:/Windows/system32/notepad.exe') のように、簡単にメモ帳を開こうとしても機能しません。

何が原因でしょうか?

ありがとう

4

2 に答える 2

1

それを読んで

例えば

<?php exec('C:\\WINDOWS\\system32\\psexec.exe \\192.168.1.224 -u myuser ... etc.

参照されているディスカッションで次のことも確認します。

見積もり; Windows では、exec() は "cmd /c your_command" への内部呼び出しを発行します。これは、コマンドが完全なコマンドを囲む追加の引用符のセットを含む cmd.exe によって課される規則に従う必要があることを意味します。

http://ss64.com/nt/cmd.html

現在の PHP バージョンはこれを考慮して引用符を自動的に追加しますが、古いバージョンはそうではありませんでした。エンドクォート:

コマンドが存在するフォルダーに Windows のアクセス許可を設定することについてもいくつかの議論がありますが、これは Vista または Windows 7 マシンでは非常に胸焼けになる可能性があると想像できます。何らかの方法で WAMPserver 自体へのアクセスを許可する必要がある場合があります。

編集:

私が考えることができる唯一の他の提案は次のとおりです。

  • 実行可能ファイルとそれを含むフォルダー パスの EVERYBODY に完全なアクセスを許可します。

  • サーバーエラーログをチェックして、有用な情報を含むエラーメッセージがあるかどうかを確認してください

もう1つ私に起こります:

  • 実行可能ファイルを C:\WINDOWS\SYSTEM32 にコピーし、"ping" のように実行します。

幸運を!

出典: 推奨される読書: 多くの人が多くの問題の解決策について話し合っています

http://php.net/manual/en/function.exec.php

于 2012-08-28T17:21:26.820 に答える
0

残念ながら、これらの解決策はどれもうまくいきませんでした。アプローチを変更し、PHP を使用して実行可能ファイルを起動しません。

于 2012-08-30T11:55:15.580 に答える