Apache/1.3.33 & mod_perl/1.29
- Apache HTTP Server (http://httpd.apache.org/)
- Apache mod_perl (http://perl.apache.org/)
Apache/1.3.33とmod_perl/1.29をLinuxZaurus向けにビルドしてみました。
十分にテストをしていないので動作は怪しいかもしれません。
Apacheの設定等はWalrus,Visit.:Linuxザウルス/Apache等を参考にして下さい。
更新履歴
- 2005/02/01 Apache/1.3.33-2を公開
- デフォルトの実行グループをqpeに変更(Group qpe)
- MinSpareServers、MaxSpareServers、StartServersを1、5、1に変更
- デフォルトのポートを80に変更
- 2004/10/30 Apache/1.3.33を公開
- 2004/10/24 Apache/1.3.32を公開
- 2004/06/19 Apache/1.3.31を公開
- 2004/06/19 mod_perl/1.29を公開
ダウンロード
Apache
インストール/アンインストール時には/home/www/conf以下の設定ファイルをバックアップしておいて下さい。
cp -a /home/www/conf /home/www/conf.bak
1.3.32でパッケージにconffilesを入れたので、1.3.32以降のインストール/アンインストール時は設定ファイルを残してくれると思いますが、
念のため、バックアップを取るようにして下さい。
- 最新バージョン
- 旧バージョン
mod_perl
別途Perlのインストールが必要となります。
私はWalrus,Visit.で配布されているモジュールを使用しています。
設定
Walrus,Visit.で配布されているPerlのインストールパスが/opt/QtPalmtop配下に変更されたため、実行ユーザ/グループのデフォルトの設定であるnobody:nobodyで動かすと、perlの実行モジュール等にアクセス出来ません。
httpdの実行グループをqpeにするのが一番お手軽だと思います。
#Group nobody Group qpe
ローカルでCGIを動かして使いたいという用途であれば、 MinSpareServers、MaxSpareServers、StartServersを全て1に設定して、プロセス数を抑えた方がメモリ使用量の面で有利だと思われます。
MinSpareServers 1 MaxSpareServers 1 StartServers 1
ビルド方法
dev_img-1.3でセルフコンパイルを行いました。
ビルド前準備
- Apacheの configure スクリプトで awk を使用しているので awk をインストール。
- libdl.so、libcrypt.soのリンクに失敗するので下記の様なシンボリックリンクを作成。
/usr/local/lib/libdl.so -> /lib/libdl.so.2 /usr/local/lib/libcrypt.so -> /lib/libcrypt.so.1 - stat等のリンクでエラーになるので、dev_img1.3解決を参考に修正。
- /tmp が溢れるので、make 実行前に環境変数 TMPDIR を設定してCF等に逃がす。
export TMPDIR=/mnt/cf/tmp
Apacheのビルド
ApacheをDSOを有効にしてビルド。
- 1.3.33ではmod_rewriteも有効にしてみました。
./configure \ --prefix=/home/www \ --enable-module=rewrite \ --enable-module=so \ --enable-rule=SHARED_CORE
make
make install
mod_perlのビルド
apxsを使用して、DSO用にモジュールを作成。
perl Makefile.PL \ USE_APXS=1 \ WITH_APXS=/home/www/bin/apxs
make
mod_perlでの動作確認済みCGI
LinuxZauru上のApache+mod_perlでの動作確認済みCGIです。
Apache::Registry
Perlで作成したスクリプトが初回1度だけコンパイルされ、メモリに常駐する。
Apache::PerlRun
Perlで作成したスクリプトが毎回コンパイルされる。
コメント
コメント等がありましたらこちらへどうぞ。
[[#rcomment]]
- 2004-12-22 (Wed) 01:04:08 yakty : ご報告どうもありがとうございます。ダウンロードの項に注意書きを添えておきました。
- 2004-12-22 (Wed) 00:52:18 いいだ? : http://digit.que.ne.jp/visit/file/perl_5.6.1-8.3-5_arm.ipk 連続ですみません。塚本さんのところのパッケージをいただいて解決しました。お騒がせしてすみませんでした
- 2004-12-21 (Tue) 23:52:28 いいだ? : 他のパッケージをインストールすべきでしょうか?
- 2004-12-21 (Tue) 23:52:05 いいだ? : http://www.frontgarden.net/~matthew/technical/zaurus/perl.htmlという今はもうリンクが切れてましたが^^;perl-5.6.1-7_arm.ipkというのをインストール済みです。
- 2004-12-21 (Tue) 23:37:41 yakty : 別途にPerlのインストールも必要かもしれないのですが、Perlは導入されていますか?
- 2004-12-21 (Tue) 21:07:58 いいだ? : はじめまして。1.3.33-1をいただいたのですが、libperl.so.5.6 が見つからないという旨のエラーが出るんですが、どのようにすればいいでしょうか?
- 2004-11-24 (Wed) 01:38:08 T.Okano? : mod_perlでRandomNote/Perlが動くとのことですが、手順を別の場所で説明していただけないでしょうか。
- 2004-10-29 (Fri) 10:39:58 moro? : 1.3.33がリリースされ 1.3.32が not formally released なって微妙ですね。
- 2004-07-02 (Fri) 10:15:07 柔王丸 : mod_perl環境で動作するperlプログラム内で「Registry」か「PerlRun」か識別する方法はあるのでしょうか?
- 2004-06-29 (Tue) 09:58:46 jun? : Apache 1.3.x に脆弱性がみつかったようですね。
- 2004-06-28 (Mon) 16:47:25 柔王丸 : あ、言い忘れてましたが、NetFrontのキャッシュがオフの状態で発生しています。
- 2004-06-28 (Mon) 09:17:38 柔王丸 : mod_perlで動作させてなければ現象は起こらないのです。動作も見ても古いメモリ空間を使用している感じするのですが・・・。仕方ないので、ファイルからデータを再読込するリンクを画面に追加しました。 ついでに「MinSpareServers」「MaxSpareServers」「StartServers」をすべて「=1」にしてテスト中です。
- 2004-06-27 (Sun) 22:20:06 yakty : NetFrontのキャッシュじゃないですかね?NetFrontってキャッシュ管理が甘いのか古いページが表示されちゃう事が多かったような…。最近はw3mばっかり使っているので忘れちゃいましたが(笑)
- 2004-06-27 (Sun) 21:58:00 柔王丸 : 2〜3日ほど小遣い帳ソフト「貧乏人の手帖」をmod_perl対応してテストしているのですが、データ入力直後は更新されているのですが、何かのタイミングで表示している情報が古くなる場合があります。SpareServersの設定とかのせいでしょうか?
- 2004-06-25 (Fri) 16:54:31 柔王丸 : 私のところも問題なく動作しているようです。 mod_perl意識せずに作成したプログラムをmod_perlで効率よく動くように変更するのはかなり大変ですね。しかし、動作速度が体感でわかるほど高速化されるとかなりワクワクします。 ありがとうございます。>yakty様
- 2004-06-25 (Fri) 15:46:26 塚本牧生 : 柔王丸さん、mod_perlはPerl実行環境ではなく、Perlのどのバージョンということもないのだと思います。mod_perlに詳しくないので自信はないですけど...。
- 2004-06-25 (Fri) 15:41:34 塚本牧生 : ひとまずapache-1.3.31を導入しました。1.3.29をアンインストール、settingパッケージをアンインストール、1.3.31をインストール、settingパッケージを再インストールで何の問題もなく動いています。この後はmod_perlかと思うと楽しみ♪
- 2004-06-22 (Tue) 22:59:46 柔王丸 : 英語だらけでよく分かりませんが、5.8.1ですかね?
- 2004-06-22 (Tue) 22:50:40 yakty : mod_perl自身については本家サイトを参照してみてください。1.x系の最新バージョンの1.29です。
- 2004-06-22 (Tue) 22:13:10 柔王丸 : Apache::Registryで動きました。 速いです。ヾ(≧▽≦)ノ
- 2004-06-22 (Tue) 21:26:11 柔王丸 : 動作が通常のperlでの動作より明らかに遅いです。(笑) Apache::Registryで動かしたいですが、「500Internal Server Error」で動作しません。 ここ(http://www.din.or.jp/~bigstone/cgilab/cgitips/mod_perl.html)を参考にしていますが難しいですねぇ。(^^;)
- 2004-06-22 (Tue) 21:23:04 柔王丸 : プログラムファイルが85kもあるせいか、mod_perl(Apache::PerlRun)で
- 2004-06-22 (Tue) 20:58:41 柔王丸 : 一応、Apache::PerlRunで動作しました。 やはり若干ですが挙動が違うようです。 サブルーチンの引数に「0を含む数字」か「引数無し」で呼んでいるのですが、「0を含む数字」の引数チェックを「if($SEQNO eq '0' || $SEQNO)」で判断していたのですが、引数無しの場合でも通ってしまっていました。 mod_perlを使用しない場合は問題無かったのですが・・・
- 2004-06-22 (Tue) 20:45:29 柔王丸 : localtimeの件ですが、必要のない変更を加えたせいで起こっていたのかも知れません。「Apache::Registry」で確認したせいかも?今は確かに問題無く取得できています。
- 2004-06-22 (Tue) 20:40:04 柔王丸 : このmod_perlですが、perlのヴァージョンで言うと何になるのでしょう?
- 2004-06-22 (Tue) 19:47:51 yakty : localtimeが正常に値を返していないとの事だったので、手元で簡単なスクリプトを書いてmod_perl配下で動かしてみましたが特に問題は無いようです。
- 2004-06-22 (Tue) 19:42:32 yakty : Apache::PerlRun配下で動かすならばスクリプトの変更はおそらく必要ないと思います。ただ、それではmod_perlの恩恵を最大限に受けることができないので、メモリ使用量の割に合わないかもしれませんが(^_^;
- 2004-06-22 (Tue) 19:16:16 柔王丸 : 「スクリプトをmod_perl対応に書き換えて」と言いましたが、別に必要なかったみたいですね。(笑)
- 2004-06-22 (Tue) 15:34:06 柔王丸 : 「Apache::PerlRun」は「外部のperlが実行されない」だけがメリットですね?
- 2004-06-22 (Tue) 15:29:26 柔王丸 : あ、「1.29を削除」→「1.3.29を削除」で「1.31をインストール」→「1.3.31をインストール」でした(^^;)ゞ
- 2004-06-22 (Tue) 15:27:23 柔王丸 : とりあえず、インストール済みの1.29を削除して、1.31をインストールし、mod_perlインストールして、httpd.conf書き換えて、スクリプトをmod_perl対応に書き換えて、「とりあえず」動くようになりましたが、微妙に動作がおかしいです。具体的には「localtime」が正常に値を返していないような感じです。「Apache::PerlRun」でテストしています。
- 2004-06-22 (Tue) 12:50:08 こんにちは、初めまして。Apacheは入れ替える必要があると思います。塚本さんのトコで紹介されているパッケージはDSO対応していない(かモジュールが足りない?)気がするので、mod_perlをDSOで組み込むことができないと思います。Perlはインストールしたままでいいと思います(と言うより入ってないとだめかも)。CGIをmod_perl配下で動かすかどうかの設定は、httpd.confでパスなりファイル名なりで切り替えられるので共存は可能です。
- 2004-06-22 (Tue) 09:55:41 柔王丸 : あ、perlはアンインストールする必要は無いのかな? そうなるとモジュールは普通(?)のperlとmod_perlで共有可能なのでしょうか?
- 2004-06-22 (Tue) 09:51:49 柔王丸 : 初めまして。リナザウでmod_perlパッケージが公開されるのを心待ちにしていました。現在、塚本さんトコで紹介されているapache+perl環境なのですが、やはりアンインストールしなければなりませんよね?その場合、CPANから追加インストールしたDBI等のモジュールはどうなるのでしょう?それとmod_perlで普通(?)のperlのモジュールは使用できるのでしょうか?