Solaris10 Apache2 の起動
- 2006.08.17
- Solaris
いまの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」なんて言われているかもしれません。(そりゃオレのことだ)
-
前の記事
11. Socketクラスでポートスキャン TcpScan.java 2006.08.15
-
次の記事
ホストの情報を得る 2006.08.17