WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:Apache再起動なしで仮想サイト反映

0:[投稿] ちこ [2005/07/12 23:13 ][環境:IE6 Apache2.0.46]

Web上からサブドメイン形式の仮想サイトを作成しようとしているのですが、、
config反映で問題が生じてしまいます。

【環境】
Whitebox3.0
Apache2.0.46
PHP4.3.2

PHPからpassthru関数にてシェルスクリプトをキックしています。
シェルの処理内容としては
 VirtualHost情報が書かれた外部ファイルを作成
 (もちろんhttpd.confには外部ファイルを指定 Include "/etc/httpd/conf/vhosts/*")
 MySQLベースのBINDへサブドメイン用レコード挿入
 Apache再起動

最後のApche再起動で仮想サイト自体は作成されるのですが
passthru関数で戻り値を待っているためエラーとなります。

やりたいことはApache再起動なしでconfigの反映をしたいのです。
passthru関数をやめてexcec関数を使えば戻り値を待たずに処理を終了できるのでエラーは回避できますが動的再起動によるダウンタイムはあまり好ましくありません。

どなたかご教授願えますでしょうか。


1:[回答] B-Cus [2005/07/12 23:57 ]

> passthru関数で戻り値を待っているためエラーとなります。
「戻り値を待っているためエラー」というのがよくわかりませんが、
なぜエラーとなるんですか?

> 動的再起動によるダウンタイムはあまり好ましくありません。
apachectl graceful は使ってますか?


2:[完了] ちこ [2005/07/13 21:53 ]

>> passthru関数で戻り値を待っているためエラーとなります。
>>「戻り値を待っているためエラー」というのがよくわかりませんが、なぜエラーとなるんですか?

戻り値を待っている最中にApacheが再起動をしてしまうと接続が切断されるため、エラーという言い方を致しました。
IEでは「ページが表示できません」が表示されます。

> apachectl graceful は使ってますか?
/etc/rc.d/init.d/httpd restart を使用しておりました。
apachectl gracefulにしたところ問題は解決できたようです。
ちなみにgracefulはどういったコマンドなのでしょうか。
調べてみたところ後で再起動とのことでしたが。。


3:[完了] B-Cus [2005/07/13 22:32 ]

>>2
> 戻り値を待っている最中にApacheが再起動をしてしまうと接続が
> 切断されるため、エラーという言い方を致しました。
ああなるほど。言われてみれば納得です。

> ちなみにgracefulはどういったコマンドなのでしょうか。
こちらを。
 http://httpd.apache.org/docs-2.0/ja/stopping.html#graceful


ちなみにわたしなら httpd.conf をもうひとつ作り、別ポートで
管理用 apache を起動して、そこから一般サービス用の apache を
restart で再起動することも検討します。理由は以下の通り。

 - 一般論として、単純な動作の方が信頼性が高いと思われるため、
   できれば graceful よりは restart を使いたい。そして一瞬で
   新設定が反映されるので管理が楽。ただしダウンタイムを許容
   できるなら、という条件付き。

 - 再起動が成功したこと、全プロセスが新たな設定で起動したことを
   見届けたい (事前に apachectl configtest するなどの代替案あり)

まぁメリット・デメリットを勘案して決定されるのがよろしいかと思います。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World