Solaris10 Apache2 の起動

sasaki 木曜, 2006-08-17 17:13

いまのSunのApache2は、起動に関してバグがあるように思われる。

起動しないのだ。ずーっとバグだと思っていたのだが、設定を変更する必要があることが分かった。今使っているホスティング屋さんが親切にapache2が起動しないように設定したっぽいのだ。ということで、Solaris10 Apache2設定編をご覧くださいませ。

まぁ、そんな設定でもちょっとしたコツで起動できる。

一度、disableしてenableすることで、Apache2を起動できるのだ。

 

■バージョンを確認する

 /etc/apache2#/usr/apache2/bin/httpd -v
Server version: Apache/2.0.52
Server built: Jul 20 2005 06:30:22

 

■Apach2のFMRIの詳細を確認する

 Apache2のFMRI: svc:/network/http:apache2

-xを付けて詳細を確認してみる。

 # svcs -x svc:/network/http:apache2
svc:/network/http:apache2 (Apache 2 HTTP server)
State: maintenance since Thu Aug 17 03:17:23 2006
Reason: Start method failed repeatedly, last exited with status 1.
See: http://sun.com/msg/SMF-8000-KS
See: apache2(1M)
See: /etc/svc/volatile/network-http:apache2.log
Impact: This service is not running.

State: maintenance(状態:メンテナンスになっているということ)

Reason: Start method failed...(原因:ステータス1で前回、終了した)

See: http://sun.com/... (参照:htt://...)

Impact: This service ... (影響:このサービスは動作していません)

 

■httpd.confを用意する

初めての起動の場合、httpd.confを用意する。

# cp /etc/apache2/httpd.conf-example /etc/apache2/httpd.conf

 

 ■Apache2.xを起動する

Apache1.xが起動している場合は、停止・無効にさせるか、使用IPアドレスがだぶらないようにしておく。

 # svcadm enable svc:/network/http:apache2

 

 ■Apache2.xの稼働を確認する

# svcs -l apache2
fmri         svc:/network/http:apache2
name         Apache 2 HTTP server
enabled      true
state        maintenance
next_state   none
state_time   Thu Aug 17 03:17:23 2006
alt_logfile  /etc/svc/volatile/network-http:apache2.log
restarter    svc:/system/svc/restarter:default
contract_id 
dependency   require_all/error svc:/network/loopback:default (online)
dependency   optional_all/error svc:/network/physical:default (online)

 省略しない指定は、svcs -l svc:/network/http:apache2 となる。

enable(有効) true

state(状態) maintenance

stateがonlineにならないと稼働していないということになる。

 

■Apache2.xが起動しない

一度、disableさせる。

# svcadm disable apache2

 再度、enableさせる。

# svcadm enable apache2

 Sunのこの新しい起動方式のバグか、Apache2.x側のバグか、ホスティングサービスの初期設定のせいかは分かりませんが、起動しないときは、このようにすれば動くようです。大先輩にアドバイスをいただき、この方法を知りました。

 

これでもダメなときは、svcs -l apache2 でログファイルの場所を探し、調べてみると「httpd.confの1148行目でSyntax error」なんて言われているかもしれません。(そりゃオレのことだ)