早速の対応ありがとうございます。
1.29CでWindows2000のサービスに登録したら、ログの位置がインストールディレクトリになりました。
その他の動作もうまくいきました。ご報告まで。
> こんなところで、半角スペース問題が出るとは思っていませんでした。
そういうことでしたか。言われて初めて何の片割れだったのか気がつきました。
やはり半角スペースは問題含みでしたね。
いとさん、
"Files\httpd\httpd.exe" は、"C:\Program Files\httpd\httpd.exe" のスペース以下ですね。
こんなところで、半角スペース問題が出るとは思っていませんでした。 が、理由がわかりましたので対応します。
中田さん
サービス起動時のオプション設定ダイアログの表示は "Files\httpd\httpd.exe" でした。
中田さん
> "Files\httpd\httpd.exe"と表示されているということでしょうか(?)。
今日確認して帰ってきたつもりでしたが、そこまではしっかり見ていませんでした。
本日の確認事項は、AN HTTPDをサービスモードに設定した後、defaultキーとFiles\httpd\httpd.exeキーをリネームし、Win2000を再起動すると、defaultキーは作成されず、Files\httpd\httpd.exeキーが出来ていたということです。オプションダイアログに何と表示されていたかは明日もう一度確認しようと思います。
いとさん、
サービスの件ですが、そうすると、サービスで起動後、オプション設定ダイアログを開くと"default"ではなくて、"Files\httpd\httpd.exe"と表示されているということでしょうか(?)。
サービス登録時には ansvc.exe が httpd.exe を起動するのですが、その際に ansvc.exe の実行時のディレクトリを読み取るので、その関係のような気がします。
中田さん
サービスで起動したときのレジストリキーは HKEY_LOCAL_MACHINE\SOFTWARE\AnHttpd\Files\httpd\httpd.exe となるようです。サービスを起動する以前に defaultキーは作成されており、それはそのまま残っています。
高橋さん、いとさん、
いとさんの補足通りだとすると、最初に起動した時レジストリキーdefaultが作成できなかったように思えます。
再度、default 以下を消し(あるいはdefaultをリネームし)て、AN HTTPD を起動し、その直後にレジストリの default 以下ができているかどうか確認してみてもらえませんか?
高橋さんに補足を。
サービスで起動させるとユーザ名がSYSTEMとなって全ての設定が初期化され、以下の項目は特別なパス(\WINNT\system32)が使われます。
・ドキュメントルート:\WINNT\system32
・/~SYSTEM
・エイリアスの仮想パス:\WINNT\system32\cgi-binなど
・メッセージ全て:\WINNT\system32\messages\401.htmlなど
・ログ全て:\WINNT\system32\httpd.logなど
・ゲートウェイログ:\WINNT\system32\gateway.log
・キャッシュルート:\WINNT\system32
・キャッシュログ:\WINNT\system32\cache.log
ところで、直接は関係ないのですがログファイルの話題ついでに要望があります。ご検討いただけるとありがたいです。>中田さん
(1)エクスプローラからログファイルをよく見るのですが、デフォルトでlogフォルダの下にログファイルだけを置くとすっきりするかと思います。
(2)後日ログを追うとき、AN HTTPDを起動した日時、バージョンを知りたいと思うことがあります。新しいログファイルを起こすこともないので、errors.logにでも書き出していただけないでしょうか。
おくれてすみません。
1 Windows2000で普通に実行すると、ログは
c:\Program Files\HTTPD\
に取られました。つまり組み込んだディレクトリです。
サービスにするとすべてのログファイルが
f:\winnt\system32
になりました。デュアルブートでWindows2000はFドライブからブートしています。
高橋さん、
普通にやると \winnt\system32 は使わないはずなのですが、Win2000の特殊事情があるのかもしれませんね。
よろしければ、確認のため、
(1)httpd.exeを最初に起動したとき、ログのパスはどうなっていたか
(2)サービスにした時、\winnt\system32 にパスが変わったとしたら、変わったのはログのパスだけか
をお知らせ下さい。
なお、レジストリの HKEY_LOCAL_MACHINE\SOFTWARE\AnHttpd 以下を(バックアップしてから)削除すれば、最初の状態が再現できるはずです。
高橋誠さんの件に関して補足。
これ以前書きましたっけか?
サービスにすると\WINNT\system32に変わってしまうのは気になっていました。
IISもそうなるみたいですけど。
サービスだからシステムの一部でありsystem32を使ったので良いという考え方も一つだと思い
ますけどログはどんどんファイルを作っていくので(確か日付毎とかも作られていましたよね?)
system32はシステムファイルを入れる場所であって必要な処理(システムファイルの追加とか)
をしたらそっとしておくものという考え方で見るとログのようなファイルがどんどん作られる場
所となるのは抵抗があるような気も。
ログファイルの場所を変えても設定を変えるために最初に立ち上げた時点でログファイルが作
られたりしますし場所を変えると作られたそのファイルがどれであるかを探して削除しないと何
時までもゴミファイルとして残るということになりますし。
ゴミファイルは無視して放っておけばということも言えますけどただでさえディスクを多く消
費するWinシステム、ハードディスクがいっぱいになって不要なファイルを消したいけどどれを
消せば?という相談も結構きます。その辺の配慮は親切設計であったりすると思いますがどうで
しょうか。
Windows2000で動かしたら、サービス登録もできてうまくいきました。
ログの場所が、\winnt\system32じゃちょっとまずそうなんで、ほかに移したくらいです。