dポイントプレゼントキャンペーン実施中!

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コマンドはちゃんと動きます。

どのようにすれば、パスを指定した実行ファイルが動作するのでしょうか?

A 回答 (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
を実行してみるとちゃんと動きますか?

コマンドの書き方はしたのほうで間違ってないと思います。

この回答への補足

コマンドプロンプトからは実行できます。

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

PHPの設定やWindowsの設定でしょうか?

補足日時:2007/05/16 15:51
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!