OpenSoraris に Apache 2.2 をインストール

  • 投稿日:
  • by
恐る恐るやってみましたw まったく分からないことをやるときはまずネットを検索。すると、そもそもパッケージ管理システムとして、Solaris 時代からある SVR4(System V Release 4 の略。FreeBSD などの UNIX で採用されている)と、新興の IPS(Image Packaging System)があるらしい。 IPS では、SVR4 形式のパッケージも扱うことができるとのこと。でも、IPS でインストールした SVR4 パッケージは、pkg(1) を使わなくてはならないので注意。 コマンドが分かったところで、次は Apache のパッケージ名を調べます。以下のページで見つけることができました。 ということで、まずは Apache の Core をインストールします。
-bash-3.2# pkg install SUNWapch22 SUNWapch22d
DOWNLOAD                                    PKGS       FILES     XFER (MB)
Completed                                    2/2   1696/1696   22.13/22.13 

PHASE                                        ACTIONS
Install Phase                              1849/1849 
うーん、完了のメッセージはないけど、Phase が完了しているからいいのかな...

次に Apache のモジュールをインストールします。
-bash-3.2# pkg install SUNWapch22m-security SUNWapch22m-jk SUNWapch22m-fcgid SUNWapch22m-dtrace
DOWNLOAD                                    PKGS       FILES     XFER (MB)
Completed                                    4/4       12/12   33.76/33.76 

PHASE                                        ACTIONS
Install Phase                                  53/53 
で、Apache を自動起動できるように登録します。現在主流となっているのは、RC スクリプトでの管理だと思いますが、Solaris 10、OpenSolaris からは、SMF(Service Management Facility)による管理がサポートされています。

ということで、SMF での管理にチャレンジします。
SMF による管理も、基本的には RC スクリプトでの管理と同じように、SMF 用設定ファイル(SMF Profile)を作る必要があります。
ただ、多くのサービス(デーモンプログラム)には、すでに SMF 用設定ファイルが用意されていますので、通常はこれを登録してあげればいいです。
-bash-3.2# svccfg -v import /var/svc/manifest/network/http-apache22.xml 
svccfg: Taking "initial" snapshot for svc:/network/http:apache22.
svccfg: Taking "last-import" snapshot for svc:/network/http:apache22.
svccfg: Refreshed svc:/network/http:apache22.
svccfg: Successful import.
いよいよ、Apache を起動します。同時にサーバー起動時に自動で Apache が起動されるようになります。
-bash-3.2# svcadm -v enable http:apache22
svc:/network/http:apache22 enabled.
起動できているか確認。
-bash-3.2# svcs -a | grep apache2
online         17:25:16 svc:/network/http:apache22
ブラウザでアクセスしたら、「It works!」の文字が。きちんと動作しています。よしよし。

正常動作を確認したら、httpd.conf を弄って細かな設定をします。
-bash-3.2# vi /etc/apache2/2.2/httpd.conf
デフォルト設定:
ServerName 127.0.0.1

<Directory "/var/apache2/2.2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
</Directory>

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

# AddHandler cgi-script .cgi
編集後:
ServerName www.solaris.vm

<Directory "/var/apache2/2.2/htdocs">
    Options Indexes Includes ExecCGI FollowSymLinks
    AllowOverride All
</Directory>

<IfModule dir_module>
    DirectoryIndex index.html index.htm index.php index.cgi
</IfModule>

AddHandler cgi-script .cgi .pl
次はユーザーディレクトリを有効にします。
-bash-3.2# vi /etc/apache2/2.2/conf.d/userdir.conf
以下の内容を記述して保存。
<IfModule userdir_module>
    #UserDir disable
    UserDir public_html
</IfModule>

<Directory /export/home/*/public_html>
    AllowOverride All
    Options IncludesNoExec ExecCGI FollowSymLinks
    <Limit GET POST OPTIONS>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS>
        Order allow,deny
        Allow from all
    </LimitExcept>
</Directory>
userdir.conf のグループを変更。
# chown root:bin /etc/apache2/2.2/conf.d/userdir.conf
で、Apache を再起動。
-bash-3.2# svcadm -v restart http:apache22
Action restart set for svc:/network/http:apache22.
以上です。お疲れ様でした!

参考にしたリンク