今日ひさしぶりに見てびっくりしました。
1.42Cとバージョンアップして多重起動も修正されています。
本当にありがとうございます。助かります。
ちひゃさん、
それでもいいのですが、ひとつは引数がなくてもかまいません。引数なしというのも引数のひとつですから。
httpd.exe 自体は同じでかまいません。デフォルトで設定されるドキュメントルートやログのパスなどを変えたいという意味では違うディレクトリで起動したほうがいいのでしょうけど。
もっとも、このあたりのやり方を説明するとなると、あらかじめ TEMP,TMPに設定するフォルダを作っておかないといけないとか話がややこしくなりそうだったので、あえて説明はしませんでした。 手抜きで申し訳なかったですね。
スレッドの終了処理に手を加えたかったので、この話にも修正を加えた 1.42c を早くだすつもりだったというのもありますが。。
ちひゃさんが回答して下さるのはありがたいことと思っています。
To 中田さん
なるほど。2つ起動したことが無かったので気づきませんでした。
(起動しちゃって2個目をすぐ終了したことはありますが(笑))
回答するつもりで問題増やしちゃってごめんなさい。
それから、httpd.exe 自体は同じでOKでしょうか。
であれば結局こんな感じでしょうか。
----- httpd1.bat
set temp=c:\httpd\\temp1
set tmp=c:\httpd\temp1
c:\httpd\httpd.exe cnf1
-----
----- httpd2.bat
set temp=c:\httpd\temp2
set tmp=c:\httpd\temp2
c:\httpd\httpd.exe cnf2
-----
ちひゃ
ちひゃさん、
環境変数についてはいいと思いますが、そうやって2つ起動するのではだめです。
httpd.exe のパスを変えても同じ設定(レジストリ)を読み込みますから。
少なくとも2番目の httpd.exe には引数をつけた方法を示してほしかったですね。
To faiyaさん
command.com や cmd.exe を起動して、set コマンドで環境変数 temp と tmp を変更した状態で httpd.exe を起動すれば良いのではないでしょうか。もっと簡単な方法があったらごめんなさい。
実際には2種類のバッチファイルを
----- httpd1.bat
set temp=c:\httpd1\temp
set tmp=c:\httpd1\temp
c:\httpd1\httpd.exe
-----
----- httpd2.bat
set temp=c:\httpd2\temp
set tmp=c:\httpd2\temp
c:\httpd2\httpd.exe
-----
という感じで用意して、それぞれのバッチファイルを起動すれば良いと思います。もちろん、ディレクトリは環境に合わせて変更してください。
ただ、試してないので間違ってたらごめんなさいです。
TMPとTEMPで変えるとはどのようにやればいいんでしょうか?
faiya さん、
なるほど、そうですね。
原因は、CGIプロセスの一時ファイルが重なってしまうためです。
対策はプログラム側を直さないとだめでしょう。できるだけ早く直します。
当面の苦肉の策としては、環境変数TEMP,TMPを変えて起動するという方法がなくはありません。
前からAN HTTPDを二つ起動して使用していますが
CGIでBROKEN PIPEエラーになってしまうようになりました。
原因は何でしょうか?
また、対策はあるのでしょうか