PerlさんPerlくん
[perl][mod_perl] perlをバージョンアップしたらmod_perlもrebuildする
最終更新:
atwikimyj
-
view
perlバージョンアップ後に出てくる問題
perlのバージョンアップをすると、影響の出るものの一つに
mod_perlがあるようだ。
mod_perlがあるようだ。
perlのバージョンをあげて、mod_perlを利用してperlを起動させると
Apacheの起動時に
DynaLoader object version 1.05 does not match $DynaLoader::VERSION
(以下メッセージは延々続く・・)
というようなエラーが出てhttpd自体が起動しなくなった。
Apacheの起動時に
DynaLoader object version 1.05 does not match $DynaLoader::VERSION
(以下メッセージは延々続く・・)
というようなエラーが出てhttpd自体が起動しなくなった。
DynaLoaderのバージョンがマッチしない・・?
そもそもDynealoderって何?
調べると、perlからCで書かれたプログラムを呼び出すことができる
モジュールらしい。
とりあえず再インストールを試みる。しかしCPANではそんなモジュールは
存在しない!とエラーで怒られる。調べるとperlのアプリケーション内に
デフォルトでついてくるものらしい。なので個別でインストールとかは
できないらしい。
調べると、perlからCで書かれたプログラムを呼び出すことができる
モジュールらしい。
とりあえず再インストールを試みる。しかしCPANではそんなモジュールは
存在しない!とエラーで怒られる。調べるとperlのアプリケーション内に
デフォルトでついてくるものらしい。なので個別でインストールとかは
できないらしい。
手詰まり。何がおきているのやら、、。
ということでさらにエラーメッセージから調べる。
ということでさらにエラーメッセージから調べる。
私と同じ問題にあたった人をapacheのメーリングリストで発見。
Mailing list archives(Apache-ML)
http://mail-archives.apache.org/mod_mbox/perl-dev/200411.mbox/%3c20041119124457.GB3387@bongo%3e
http://mail-archives.apache.org/mod_mbox/perl-dev/200411.mbox/%3c20041119124457.GB3387@bongo%3e
結局
「perlをアップグレードしたら、mod_perlの静的なリンクが外れるから、
毎回mod_perlのrebuildが必要だよ」
「perlをアップグレードしたら、mod_perlの静的なリンクが外れるから、
毎回mod_perlのrebuildが必要だよ」
というお答えが出ていた。。
つまり、CGIではなく、apache起動時にモジュール読ませて起動するperlは
mod_perlになるのだが、このmod_perlが読み込むライブラリとDynaLoaderの
ライブラリが不整合を起こしている(らしい)。なのでmod_perlをrebuild
することでライブラリの整合が図れる、、はず。
つまり、CGIではなく、apache起動時にモジュール読ませて起動するperlは
mod_perlになるのだが、このmod_perlが読み込むライブラリとDynaLoaderの
ライブラリが不整合を起こしている(らしい)。なのでmod_perlをrebuild
することでライブラリの整合が図れる、、はず。
mod_perlのrebuild
rebuildだけやりたいけど、、よくわからん。大体意味もわからずにインス
トールすると後で泣きを見る。とくにmod_perlってバージョンとか整合性
とかいろいろとデリケートだったような、、。
トールすると後で泣きを見る。とくにmod_perlってバージョンとか整合性
とかいろいろとデリケートだったような、、。
- Apache1.xの環境ではmod_perl1.xを組み合わせ、
Apache2.xの環境ではmod_perl2.xを組み合わせる必要がある。
- 静的なインストールと動的なインストールがある
- 基本的にはapacheとmod_perlの両方を一度にビルドするべき
などの情報がわかる。また、注意したいのは、mod_perl1.xについての情報
はたくさんあるが、MP2の情報は少なめ。よく読んでMP2の資料を探さないと
いけない。
ということで下記が参考になった。
はたくさんあるが、MP2の情報は少なめ。よく読んでMP2の資料を探さないと
いけない。
ということで下記が参考になった。
HATENA Diary NAOYA
「■ 10分で完了、mod_perl 2.0 で Hello, World!」
http://d.hatena.ne.jp/naoya/20060108/1136705441
「■ 10分で完了、mod_perl 2.0 で Hello, World!」
http://d.hatena.ne.jp/naoya/20060108/1136705441
isoya9の日記
「 [Linux] CentOS4 に mod_perl 2.02 をインストールする」
http://isoya.at.webry.info/200610/article_25.html
「 [Linux] CentOS4 に mod_perl 2.02 をインストールする」
http://isoya.at.webry.info/200610/article_25.html
動的にmod_perlをインストールする場合は、先にapxsを
インストールする必要がある。
インストールする必要がある。
# whereis apxs
とコマンドを打って、何も出てこないのでapxsがインストール
されていないことがわかった。
とコマンドを打って、何も出てこないのでapxsがインストール
されていないことがわかった。
ということでWEBを参考にしながらapxsのインストール
apxsはhttpd-develに含まれるため、
#yum
apxsはhttpd-develに含まれるため、
install httpd-devel
でインストールは終わり。
でインストールは終わり。
apacheのAPI削除
MP2インストール
MP2インストール
上記のWEBサイトのとおりに作業をしてすんなりインストール完了。