Solaris10 Apache2 の起動

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

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

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

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

 

■Apache2の構成

<Apache2関連> 

バイナリ   /usr/apache2/bin/

設定   /etc/apache2/httpd.conf

プロセスID   /var/run/apache2/httpd.pid 

起動スクリプト /lib/svc/method/http-apache2

Apacheログ  /var/apache2/logs/access_log

公開ディレクトリ /var/apache2/htdocs/

 

<SMF関連> 

SMF用XML   /var/svc/manifest/network/http-apache2.xml 

起動停止ログ  /var/svc/log/network-http\:apache2.log 

 

 

■バージョンを確認する

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

 

■Apache2が起動しているかどうかを確認する

$ svcs -a | grep http
disabled       Jul_28   svc:/network/http:apache2

ちなみに、FMRIが分かる。

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

Apache2のFMRI省略形: http または apache2

 

FMRIが分かっているときは、このように簡単に起動状況を調べる。

$ svcs http 

 

■Apache2の情報を調べる

Apache2をすぐに起動できる状態かを調べる。

dependency require_allが全てonlineになっていることを確認する。

依存アプリがonlineになっていればApache2を起動できる。

# svcs -l http
fmri         svc:/network/http:apache2
name         Apache 2 HTTP server
enabled      false
state        disabled
next_state   none
state_time   Mon Jul 28 17:20:23 2008
restarter    svc:/system/svc/restarter:default
dependency   require_all/error svc:/milestone/network:default (online)
dependency   require_all/none svc:/system/filesystem/local:default (online)
dependency   optional_all/error svc:/system/filesystem/autofs:default (online)

 

■Apache2を起動する

svcadmコマンドでサービスを起動する。

# svcadm enable http 

 

Apache2を停止する。

# svcadm disable http 

 

Apache2を再起動する。

# svcadm restart http 

 

たいていの場合、Apacheは起動しない。ps -ef | grep http で確認するとやはり起動していない。

なぜなら、httpd.confがノーマルのままだから。

 

-xオプションで詳細を調べる。

 

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

 Apache2のFMRI: svc:/network/http:apache2 または http

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

# svcs -x http
svc:/network/http:apache2 (Apache 2 HTTP server)
 State: maintenance since Thu Aug 21 06:06:07 2008
Reason: Start method exited with $SMF_EXIT_ERR_CONFIG.
   See: http://sun.com/msg/SMF-8000-KS
   See: httpd(8)
   See: /var/svc/log/network-http:apache2.log
Impact: This service is not running.

State: …(状態)

Reason: …(原因)

See: http://sun.com/… (参照URL)

See: …apache2.log (参照ログ)

Impact: … (影響)

 

■httpd.confを用意する

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

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

 

 ■Apache2.xを起動する

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

 # svcadm enable http

 

で、ps -ef | grep http で確認するとたぶん起動していないはず。(おいおい)

 

 

■Apache2.xが起動しない

一度、disableさせる。

# svcadm disable apache2

 再度、enableさせる。

# svcadm enable apache2

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

 

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