Apache

Apache

apache_1.3.33-2_arm.ipkをインストール。

起動は,

$ sudo /home/www/bin/apachectl start 
/home/www/bin/apachectl start: httpd started 

プロセスを確認する。

$ ps -ef | grep httpd 
root      1599     1  0 15:29 ?        00:00:00 /home/www/bin/httpd
nobody    1600  1599  0 15:29 ?        00:00:00 [libhttpd.ep]
zaurus    1602  1596  0 15:30 ttya2    00:00:00 grep httpd

終了するには,

$ sudo /home/www/bin/apachectl stop 
/home/www/bin/apachectl start: httpd stopped 

ローカルサーバへのアクセスは,
ブラウザから「http://127.0.0.1/」か「http://localhost/」に行けばよい。

Apacheの自動起動設定

シンボリックリンクを作成する。

$ sudo ln -s /home/www/bin/apachectl /etc/rc.d/rc5.d/S98apachectl 

再起動してから,

$ ps -ef | grep httpd 

でhttpdプロセスの起動を確認。


ドキュメントルートディレクトリ,ログ出力先の変更

いずれ補完する予定だが,これで過去不具合が出たのであまりやる気なし。


CGI実行環境の構築

/home/www/conf/httpd.confのバックアップを取る。
317行目を以下のように編集。

Options Indexes FollowSymLinks MultiViews


Options Indexes FollowSymLinks MultiViews ExecCGI

Apacheを再起動する。


/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>"

実行権限を付与する。

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

ターミナルでtest.cgiを実行し,CGIが正しく作成されているかを確認する。

/home/www/htdocs/test.cgi
Content-type: test/html

<html>
        <head><title>test cgi</title></head>
        <body>
                <h1>This is test CGI.</h1>
                Process ID : <font color="red">$$</font>
        </body>
</html>

「$$」にはプロセスIDが入る。
ブラウザで「http://localhost/test.cgi」か「http://127.0.0.1/test.cgi」にアクセスしてCGIの動作を確認する。
(Operaではダウンロードになってしまったので,NetFrontで動作を確認した)


mod_perl

Perlを参照


ref


moduleを追加する

フォルダ名大文字小文字対策として,「mod_speling.so」を使えるようにする。
LinaZau ToolBoxさんのApache1.33にはこの「mod_spelling.so」は入っていない。
Apache2(MakiWikiさんの)には入っているのかもしれないが,Apache1.33以外だとmod_perl(LinaZau ToolBoxさんの)が使えなくなるので,1.33にこれを組み込んでみる
医療に使えるザウルスSL-cシリーズさんはApache2を使っているようで,1.3.33ではその通りにはできない。


まずここから「mod_speling.c」のソースをテキストにコピペし,先頭の行番号と半角スペースをperlスクリプトで落とす。
TeraPadで開いて文字コードを「EUC」,改行コードを「LF」,名前を「mod_speling.c」として保存する。
「mod_speling.c」を見てみると,

#include "httpd.h"
#include "http_core.h"
#include "http_config.h"
#include "http_log.h"

とあることから,これらが全て揃っている「/home/www/include」にコピーする。
この状態ではまだ,

# cd /home/www/include/
# /home/www/bin/apxs -ica mod_speling.c
gcc -DLINUX=22 -DHAVE_SET_DUMPABLE -DNO_DBM_REWRITEMAP -DUSE_HSREGEX -DUSE_EXPAT -I../lib/expat-lite -fpic -DSHARED_CORE -DSHARED_MODULE -I/home/www/include  -c mod_speling.c
apxs:Break: Command failed with rc=16777215

とエラーになってしまう。


(これが結局必要だったのかは定かではないが)「../lib/expat-lite」をみてるようにみえたので,
ここから全てのソースをさっきと同じようにperlスクリプト→TeraPadで加工して保存した。
「/home/www/lib/expat-lite」としてコピー。
しかし,エラーはさっきと同じ。


どうも「apxs」に間違いがあるらしく,同じように34行目と35行目をそれぞれ

my $CFG_LD_SHLIB      = q(ld);          # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = q(-G); # substituted via Makefile.tmpl

と修正する。


次に,zgccを入れることにした。[[zgcc>]]のインストールを参照。
ハッキングLinuxザウルスの通りにやると,パスの設定にミスがあるので,

/home/zaurus/.zgcc/bin/ld: cannot open crtbegin.o: No such file or directory collect2: ld returned 1 exit status

とエラーが出てしまうので注意。
また,tmake.confの修正も必要で,直さないと

# /home/www/bin/apxs -ica mod_speling.c
gcc -DLINUX=22 -DHAVE_SET_DUMPABLE -DNO_DBM_REWRITEMAP -DUSE_HSREGEX -DUSE_EXPAT -I../lib/expat-lite -fpic -DSHARED_CORE -DSHARED_MODULE -I/home/www/include  -c mod_speling.c
as: error while loading shared libraries: libopcodes-2.9.5.0.31.so: cannot load shared object file: No such file or directory
apxs:Break: Command failed with rc=1

というエラーが出る。


きちんとインストールできれば,

# /home/www/bin/apxs -ica mod_speling.c
gcc -DLINUX=22 -DHAVE_SET_DUMPABLE -DNO_DBM_REWRITEMAP -DUSE_HSREGEX -DUSE_EXPAT -I../lib/expat-lite -fpic -DSHARED_CORE -DSHARED_MODULE -I/home/www/include  -c mod_speling.c
ld -G -o mod_speling.so mod_speling.o
[activating module `speling' in /home/www/conf/httpd.conf]
cp mod_speling.so /home/www/libexec/mod_speling.so
chmod 755 /home/www/libexec/mod_speling.so
cp /home/www/conf/httpd.conf /home/www/conf/httpd.conf.bak
cp /home/www/conf/httpd.conf.new /home/www/conf/httpd.conf
rm /home/www/conf/httpd.conf.new

と自動的に処理が行われて,
「/home/www/conf/httpd.conf」の205行目に,

LoadModule speling_module     libexec/mod_speling.so

と追加され,mod_spelingモジュールの追加が完了。

最終更新:2009年05月02日 03:06