• 締切済み

PHP(Windows)でコマンド実行

Windows上のapacheとPHPで、ベーシック認証のIDとパスワードを登録する仕組みを作成しているのですが、execが思ったように動きません。 以下にその部分だけを実行できるものを書きます。 <?php $com="C:\\Program Files\\xampp\\apache\\bin\\htpasswd.exe C:\\Program Files\\xampp\\apache\\.htpasswd id pass"; //$com="\"C:\\Program Files\\xampp\\apache\\bin\\htpasswd.exe\" \"C:\\Program Files\\xampp\\apache\\.htpasswd\" id pass"; //$com="dir"; exec($com,$output); print_r($output); ?> 原因はなんとなく、プログラムとパスワードファイルのパスの中にあるスペース(Program Files)だと思い、二重引用符で囲ってみたりした(一つ目のコメントのように)のですが、結果は同じでした。 二つ目のコメントのようなdirコマンドはちゃんと動きます。 どのようにすれば、パスを指定した実行ファイルが動作するのでしょうか?

みんなの回答

  • awazak
  • ベストアンサー率36% (61/165)
回答No.1

Windowsでコマンドプロンプトを開いて、 C:\\Program Files\\xampp\\apache\\bin\\htpasswd.exe C:\\Program Files\\xampp\\apache\\.htpasswd id pass "C:\\Program Files\\xampp\\apache\\bin\\htpasswd.exe" "C:\\Program Files\\xampp\\apache\\.htpasswd" id pass を実行してみるとちゃんと動きますか? コマンドの書き方はしたのほうで間違ってないと思います。

noname#61635
質問者

補足

コマンドプロンプトからは実行できます。 この質問を書いてから、いろいろ実行してみたのですが、どうもexeの実行プログラムが動かないようで、パスの問題ではないようです。 dirやpathなどの内部コマンドは正常に動きます。 PHPの設定やWindowsの設定でしょうか?

関連するQ&A