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/」に行けばよい。
シンボリックリンクを作成する。
$ sudo ln -s /home/www/bin/apachectl /etc/rc.d/rc5.d/S98apachectl
再起動してから,
$ ps -ef | grep httpd
でhttpdプロセスの起動を確認。
いずれ補完する予定だが,これで過去不具合が出たのであまりやる気なし。
/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で動作を確認した)
Perlを参照
フォルダ名大文字小文字対策として,「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モジュールの追加が完了。