« 解せぬものにはバグの疑いを抱く!!! | トップページ | Ubuntu/Kubuntu 11.04 DualブートでMS-Windowsのフォントを使う »

2011年7月 7日 (木)

Kubuntu 11.04 desktopへのApache2のインストール

そろそろ本ブログの開始の趣旨に則って、Ubuntuによるサーバ稼働のテストを開始したいと考えはじめた。
以前、Vine LinuxやDebian(woody)でサーバを運用していたときは、テストの段階から友人と掲示板で情報交換を行っていた。
DNS、smtp、pop、ftp、http等、結構いろいろテストしていて、それなりに手順がまとまっていた。その後、本番のサーバを作るにあたって、 これを参考にして順次サーバを稼働させた。
幸い、一ユーザのホームディレクトリ(/home/*/public_html)にて開設していたサイトであったので、まるごとバックアップもとってある。
せっかくなので、サブPC(Chikyu)のKubuntuにApacheをインストールして、その掲示板を参照しながら、メインPCでサーバ設定ができるようにしたいと思い、実行した。

目的

Kubuntu 11.04 desktopにApache2をインストールし、以前の掲示板CGIの記事が読めるようにする。

Apache2の設定について

  1. LAN内部での参照であるので、[http://IPアドレス/~ユーザ名/]で指定してWebブラウザで参照できるようにする。
  2. cgiは[http://IPアドレス/~ユーザ名/cgi-bin/test.cgi]のようにして参照できるようにする。
  3. cgiのプログラムはcgiかplを拡張子とする。

大まかな手順

Apache1.*のころとは、設定ファイルの作り方が大きく変化しているようで、非常にとまどった。幸い今回はユーザディレクトリの設定のみであるため、次の手順で行うこととした。

  1. Apache2のインストール
  2. Apache2の稼働確認
  3. 上記「Apache2の設定について」の内容の設定(設定ファイルへの修正)
  4. 設定ファイルを反映させるシンボリックリンクの作成(a2enmodの利用)
  5. 設定のテストによる確認

Apache2のインストールと設定


Apache2のインストール

KubuntuのKPackageKitより、apacheで検索し、apache2とapache2-docをインストールする。
apache2-docはインストール指定しなくても問題ないはずであるが、インストールしておくとWebブラウザでApache2のドキュメントが読めるようになり便利。

Apache2の稼働確認

http://192.168.13.13/ (←LAN内部のPCからWebブラウザ等でIPアドレス指定を直接指定して接続する。

これで、Webブラウザに「It works!」 と表示されればApache2が稼働していると確認できる。

設定ファイルの修正

前節で決めた今回の設定について、二つの設定ファイルを変更する。
設定ファイルは、二つとも/etc/apache2/mods-availableに存在している。
ひとつめは、mime.conf。ふたつめは、userdir.conf。
修正するまえに、両ファイルのバックアップを作成しておく。

mime.confの修正

以下の行を検索して修正する。

#AddHandler cgi-script .cgi → AddHandler cgi-script .cgi .pl

上のように、文頭の[#]を削除し、最後に[ .pl ]を加える。

userdir.confの修正

以下の内容とする。

<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root
         
         <Directory /home/*/public_html>
                AllowOverride none
                Options MultiViews SymLinksIfOwnerMatch
                <Limit GET POST OPTIONS>
                         Order allow,deny
                         Allow from all
                </Limit>
                <LimitExcept GET POST OPTIONS>
                         Order deny,allow
                         Deny from all
                </LimitExcept>
         </Directory>

         <Directory /home/*/public_html/cgi-bin>
                Options +ExecCGI
         </Directory>

</IfModule>

設定ファイルを反映させるシンボリックリンクの作成

/etc/apache2ディレクトリの下に、mods-availableとmods-enabledというディレクトリがあるが、mods- availableにあるmoduleの設定がmods-enabledにシンボリックリンクを作成することでapache2本体に反映される(と推測し た。) 以前のLinuxの起動プロセスで/etc/init.dにあるファイルのシンボリックリンクを/etc/rc*.dディレクトリに置いてランレベルごと にデーモンの起動管理を行っていたのを思い出した。似ている感じである。
手処理でコマンドを叩いても構わないと思うが、設定をするa2enmodと設定をはずすa2dismodというコマンドがあるので、これを利用する。
なお、/etc/apache2/mods-enabledを見てもらうとわかるが、mimeについては、すでに存在しているのでuserdirのみの処理となる。

kitatanuki@chikyu:/etc/apache2/mods-available$ sudo a2enmod
Your choices are: actions alias asis auth_basic auth_digest authn_alias authn_anon authn_dbd authn_dbm authn_default authn_file authnz_ldap authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cern_meta cgi cgid charset_lite dav dav_fs dav_lock dbd deflate dir disk_cache dump_io env expires ext_filter file_cache filter headers ident imagemap include info ldap log_forensic mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http proxy_scgi reqtimeout rewrite setenvif speling ssl status substitute suexec unique_id userdir usertrack version vhost_alias
Which module(s) do you want to enable (wildcards ok)?
userdir
Enabling module userdir.
Run '/etc/init.d/apache2 restart' to activate new configuration!
kitatanuki@chikyu:/etc/apache2/mods-available$ sudo /etc/init.d/apache2 restart
* Restarting web server apache2                                              

(緑の太字が実際の入力)

設定のテストによる確認

テスト用のhtmlファイルindex.htmlという名称で作成し、/home/kitatanuki/public_html/に保存する。ま たテスト用のcgiファイルをtest.cgiという名称で作成し、/home/kitatanuki/public_html/cgi-bin/に保存する。test.cgiはパーミッションを755として実行可能としておく。

htmlについては、[ http://192.168.13.13/~kitatanuki/]で表示されることを確認。cgiについても[ http://192.168.13.13/~kitatanuki/cgi-bin/test.cgi]で結果が表示されることを確認できた。

補足

設定の狙いとしては、ホームディレクトリの下のpublic_html/cgi-binでしかcgiが動かず、そしてcgiとpl以外の拡張子ではそのディレクトリでもcgiとして認識されないということもあるが、今回はそこまではテストしていない。
apacheは当初、設定ファイルが3つあって、それが煩雑だということでhttpd.confひとつにまとめられるようになったと認識していたので、 apache2の設定の複雑さには、非常に驚いた。
インターネットで設定例を見ても、いろいろなやり方があり、上記の内容にたどりつくのには、かなりの時間を要した。
いわば、モジュールの設定とインストールが組み合わせになっているということなのかもしれないが、なかなか理解しづらい。

« 解せぬものにはバグの疑いを抱く!!! | トップページ | Ubuntu/Kubuntu 11.04 DualブートでMS-Windowsのフォントを使う »

Kubuntu」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/575454/52145699

この記事へのトラックバック一覧です: Kubuntu 11.04 desktopへのApache2のインストール:

« 解せぬものにはバグの疑いを抱く!!! | トップページ | Ubuntu/Kubuntu 11.04 DualブートでMS-Windowsのフォントを使う »

2014年11月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
無料ブログはココログ