Walrus,Visit. | 一覧 | 検索 | 更新履歴(RSS) | 新規作成
はてなブックマークに追加 はてなブックマークを表示 編集 | 編集(管理者用) | 差分

Linuxザウルス/Apache

編集

Webサーバー"Apache"のインストールと、ローカルでCGIを動かせるようにするためのセッティング。

Apacheは非常にポピュラーなWebサーバーで、特にUnix系サーバーではほぼデファクトスタンダードとして使われています。 Linuxザウルスも例外ではなく、Apacheがポートされており、ローカルでCGIが動く環境を作ることができます。

Apacheの入手と導入

編集

最小限の内容で記述しています。

Apacheについての詳細は、関連するWebサイトを調べてください。 幸い、Apacheの設定その他についてはLinuxでのApacheの情報がほぼすべて有効です。 おそらく、日本Apacheユーザー会のサイトなどは参考になると思います。

Apacheの導入。

Linuxザウルス向けにApacheをビルド、パッケージングして配布されているchoup.netからipkを取得します。 今回私が使ったのは、「Apache 1.3.29 with module support - Strongarm」(ファイル名apache-1.3.29-so-sa1100-deb_0.2_arm.ipk)です。 ダウンロードが完了したら、ソフトウェアの追加/削除でインストールを行ってください。

インストールが済んだら、/home/www/bin/apachectlを編集します。 まず24、25行目。 以下のようにします。

# the path to your PID file
PIDFILE=/home/www/logs/httpd.pid

次に27、28行目。

# the path to your httpd binary, including options if necessary
HTTPD='/home/www/bin/httpd'

これが済んだら保存してください。 その後rootユーザーで、ターミナル上で以下を実行します。

/home/www/bin/apachectl start

これで、apacheが起動されたはずです。 NetFrontなどのブラウザで、以下のアドレスにアクセスし、ディレクトリリストが表示されることを確認してください。

http://localhost/

CGIの有効化

/home/www/conf/httpd.confを編集します。 まず310行目。 以下のようにします。

    Options Indexes FollowSymLinks MultiViews ExecCGI

次に748行目のコメントを外します。

   AddHandler cgi-script .cgi

以下のようなファイルを作成し、/home/www/htdocs/test.cgiに保存してください。

#!/bin/sh

echo "Content-type: text/html"
echo 
echo "<html>"
echo "  <head><title>test cgi</title></head>"
echo "  <body>"
echo "    <h1>This is test CGI.</h1>"
echo "    Process ID : <font color=\"red\">$$</font>"
echo "  </body>"
echo "</html>"

ターミナル上で以下を実行して、このCGIに実行権限を与えます。

chmod 775 /home/www/htdocs/test.cgi

ターミナル上で以下を実行して、CGIが正しく作成できていることを確認します。

/home/www/htdocs/test.cgi

ここまでで問題がなければ、ブラウザで以下のURLにアクセスし、CGIが動作することを確認してください。

http://localhost/test.cgi

システム起動時にApacheも起動。

、システム起動時の起動項目にApacheの起動も含めることができます。 以下のコマンドをrootで、ターミナルから実行してください。

ln -s /home/www/bin/apachectl /etc/rc.d/rc5.d/S99apachectl

このディレクトリに置かれた"Sxx"で始まるファイルは、xxの数字の順にシステムの起動時(のrunlevelを5にあげるとき)に"start"の引数つきで実行されます。 ということは、apachectlがここにあれば良い、ということなので、ファイルをコピーする代わりにシンボリックリンクを張る形でこのディレクトリに入れました(一般にrc.d/rcx.dに対して良く行われる手法です)。 逆に、停止時を考えてrc4.dに"Kxxapachectl"のようなシンボリックリンクを用意するのがトラディショナルだと思うのですが、rc.d以下に"Kxx"ファイルが見当たらなかったので、ここでは省いています。

ただし、常にApacheが起動している状態になりますので、ネットワーク接続時に外部からアクセスされる可能性があることに気をつけてください。 おそらく.htaccessを利用したアクセス制限をかけるのが正しいのだとは思いますが、そのあたりには詳しくないのでここでは触れません。

小規模サイト向けの設定に変更。

Apacheの導入目的がローカルでのWebコンテンツ・Webアプリケーション(CGI、PHP等)確認であれば、デフォルトの設定はちょっとリッチに過ぎるでしょう。 /home/www/conf/httpd.confを編集します。 139から140行目。 以下のようにします。

MinSpareServers 2
MaxSpareServers 5

次に146行目。

StartServers 2

次に155行目。

MaxClients 30

なお、もしLinuxザウルスを常時接続環境におき、Webサーバーとして活用するのが目的であればこのような設定をする必要はありません。 おそらく、まずは初期設定で使ってみるのが良いでしょう。

KeyHelper?でApacheの起動制御。

「起動を自動化する」代わりに、「起動をお手軽にする」方法です。 この項はyaktyさんが作成してくれました。


keyhelper.confのランチャー設定に下記の様な設定を追加します。 rootで実行する必要があるのでsudoをインストールしておく必要があります。

キーランチャーなら

S = @exec[TAB]/usr/bin/sudo /home/www/bin/apachectl start
T = @exec[TAB]/usr/bin/sudo /home/www/bin/apachectl stop

メニューランチャーなら

Apache起動(&S) = @exec[TAB]/usr/bin/sudo /home/www/bin/apachectl start
Apache停止(&T) = @exec[TAB]/usr/bin/sudo /home/www/bin/apachectl stop

メニューランチャーでサブメニューを使うなら

A = @menu[TAB]apache
[Apache]
起動(&S) = @exec[TAB]/usr/bin/sudo /home/www/bin/apachectl start
停止(&T) = @exec[TAB]/usr/bin/sudo /home/www/bin/apachectl stop

Perl等の導入

おそらく、ローカルCGI環境を構築する人のほとんどは、シェルスクリプトではなくPerlやその他の言語でCGIを作成したいと思っているでしょう。 必要な言語をインストールしてください。

Perlについては導入方法その他をLinuxザウルス/Perlにまとめてあります。

Apache設定パッケージ

以下のパッケージをインストールすると、上の設定を実施してくれます。

以下が実行されます。

アンインストール時には逆に、リンクが削除され、apachectlやhttpd.confがインストール時に作成されたバックアップに戻されます。

ローカルCGI クイックスタート

上の設定パッケージを使った、ローカルCGI環境の簡単な構築方法です。

もしこれでうまく動いていないようであれば、ターミナル上で以下のコマンドを実行してください。

ll /home/www/bin/apachectl* /home/www/conf/httpd.conf* /etc/rc.d/rc5.d/S99*

正しくインストールされていれば、以下のような出力になるはずです。 ファイルの更新日時等や順番は変わることがありますが、ファイルサイズと、ファイルパスはこの通りになります。

lrwxrwxrwx    1 root     root           23 Aug 17 21:42 /etc/rc.d/rc5.d/S99apachectl -> /home/www/bin/apachectl
-rwxr-xr-x    1 root     qpe          7101 Aug 17 20:59 /home/www/bin/apachectl
-rwxr-xr-x    1 root     qpe          7105 Jun  2 05:50 /home/www/bin/apachectl.bak
-rw-r--r--    1 root     qpe         42283 Aug 17 21:00 /home/www/conf/httpd.conf
-rw-r--r--    1 root     qpe         43413 Feb 28 00:48 /home/www/conf/httpd.conf.bak

コメント

お名前: コメント: 更新