- 締切済み
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コマンドはちゃんと動きます。 どのようにすれば、パスを指定した実行ファイルが動作するのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- awazak
- ベストアンサー率36% (61/165)
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 を実行してみるとちゃんと動きますか? コマンドの書き方はしたのほうで間違ってないと思います。
補足
コマンドプロンプトからは実行できます。 この質問を書いてから、いろいろ実行してみたのですが、どうもexeの実行プログラムが動かないようで、パスの問題ではないようです。 dirやpathなどの内部コマンドは正常に動きます。 PHPの設定やWindowsの設定でしょうか?