SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

PerlでデスクトップCGI

デスクトップCGIフレームワークの研究 - mod_perlの導入

デスクトップCGIでWebとデスクトップを融合する 第8回

  • このエントリーをはてなブックマークに追加

デスクトップでPerlのCGIを利用する場合、同一のCGIを繰り返して起動したり、CGIからCGIを呼び出すようなスクリプトを書くことが多く、連続的、連鎖的にCGIが起動され、パフォーマンス的には不利です。このような場合には、PerlのCGIにおいてはmod_perlを使うとよいはずです。今回は、WindowsのApacheでmod_perlを使う方法を取り上げます。

  • このエントリーをはてなブックマークに追加

まえがき

 デスクトップCGIフレームワークを用いたアプリケーションにおいては、同一のCGIを繰り返して起動したり、CGIからCGIを呼び出すようなスクリプトを書くことが多く、連続的、連鎖的にCGIが起動されます。その度に新たなプロセスを生成していては、パフォーマンス的には不利です。このような場合には、PerlのCGIにおいてはmod_perlを使うとよいはずです。今回は、WindowsのApacheでmod_perlを使う方法を取り上げます。

 mod_perl導入前後で、第7回連載記事のスクリプトの動作が体感的に変化することを確かめてください。

 ご質問などがあれば、jscripter9@gmail.com宛てにメールをいただいても結構です。ご質問に基づいて得られた内容につきましては、必要に応じて本連載で使わせていただく予定です。

対象読者

 Windows上のApache+Perl+MySQL+Firefoxの環境で動作するアプリケーションを作ってみたい方。

必要な環境

 記事の前提となる環境の導入方法は、前回、簡単にまとめています。詳細は、連載の第1回第4回を参照ください。少なくともWindows環境下でApache、MySQL、PerlとFirefoxを使える必要があります。デスクトップCGIのセキュリティについては第2回でApacheの設定などに触れています。今回のApacheのhttpd.confの設定はその復習にもなるでしょう。その他の項目は必要に応じて各記事を参照してください。

 前回の記事から、Apacheは2.2.4に、ActivePerlはバージョン5.8.8のBuild 820にアップグレードした環境を使用しています。今回から、Firefoxのバージョンは2.0.0.4となっています。著者のWindows環境は、Windows XP Professional Version 2002 Service Pack 2です。PCは、CPUがPentium4 2.8GHz、1GB RAMとメモリが128MBのグラフィクスカードを搭載しています。

「デスクトップCGIによるWebとデスクトップの融合」の記事一覧

mod_perlの導入

インターネット上の情報

 Windows上でmod_perlを使用するための情報があるかどうか調べるために、Googleを使って、「mod_perl ActivePerl」でキーワード検索すると、下記の三つのサイトがトップにヒットします。それぞれ大変参考になります。著者も参考にさせていただきました。ありがとうございました。

mod_perlモジュールのインストール

 まず、mod_perlのモジュールの最新バージョンと対応するApacheのバージョンを調べます。ActivePerl用のmod_perlモジュールは、ActiveStateのPPM レポジトリ(Repository)には存在しません。theoryx5.uwinnipeg.ca(カナダのウィニペグ大学物理学部)にあるレポジトリにあります。

環境変数 ACTIVEPERL_PPM_HOME の設定

 意外と盲点となるのが、PPM(Perl Package Manager)によるモジュールのインストールです。Web上では、これがうまく使えなくて断念しているケースも見掛けます。ユーザーの環境にも依存するのですが、環境変数「USERPROFILE」の文字列にユーザー名がShift_JIS文字列で入っているとGUIバージョンPPMが起動できなかったり、コマンドラインの ppm install package.ppd などでうまくインストールできなかったりします。そのような場合には以前にも紹介していますが、環境変数「ACTIVEPERL_PPM_HOME」に「C:\Perl5.8\ppm_home」(エクスプローラなどで実際にフォルダも作成しておく)などを設定しておきましょう。

PPMレポジトリの追加設定

 ppmで起動したGUIバージョンのPerl Package Managerの[Edit]→[Preference]から、PPM PreferencesのNameとLocationにそれぞれ、「Theoryx5」(Nameは適当でよい)、「http://theoryx5.uwinnipeg.ca/ppms/package.xml」と入力して、[add]ボタンを押して設定完了です。無論、インターネットに接続した環境で実行してください。

図1 PPMレポジトリの追加(PPM Preferencesの設定)
図1 PPMレポジトリの追加(PPM Preferencesの設定)

mod_perlモジュールは2.0.3を使う

 Perl Package Managerを起動して調べると、mod_perlのバージョンは2.0.3です。「Embed a Perl interpreter in the Apache/2.2 HTTP server」と説明がありますから、Apacheは2.2を使う必要がありそうです。

図2 mod_perlの詳細の表示(Perl Package Manager)
図2 mod_perlの詳細の表示(Perl Package Manager)

 実際には、mod_perlをインストールする前に、ここで、Apacheのバージョン2.2をインストールしますが、その説明は後に回して、インストール済みとして話を進めます。

PPM GUIではインストールに失敗する

 mod_perlをGUIのPPMからインストールしようとすると、インストールスクリプトが、mod_perl.soのインストール先を標準入出力で問い合わせてくるので、失敗してしまいます。Statusタブのウィンドウをよく確認してください。

図3 mod_perlのインストールの失敗(Perl Package Manager)
図3 mod_perlのインストールの失敗(Perl Package Manager)
ppm-shellを使ってインストールする

 PPM GUIは使えないので、ppm-shellで次のようにしてインストールします。

  1. ppm-shellをコマンドプロンプトで起動して、「repo list」のコマンドで、theoryx5.uwinnipeg.caがレポジトリに登録されているかどうかを確かめます。
  2. リストになければ、「repo add [url] [name]」のコマンドで登録します。
  3. 「search mod_perl」でレポジトリを検索します。
  4. 検索結果のリストの番号を使って、「install 1」としてインストールします。
  5. 「Where should mod_perl.so be placed? [D:/Apache2/modules]」に対して、「C:/Apache2.2/modules」と応答します。

 次図のようになります。この図は、一度アンインストールして、再インストールしている場面なので、アンインストールされなかったmod_perl.soがフォルダに残っているため、Overwriteの確認があります。最初のインストールであれば出てこないはずです。

図4 mod_perlのインストール(ppm-shell)
図4 mod_perlのインストール(ppm-shell)

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
Apache2.2の導入

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
PerlでデスクトップCGI連載記事一覧

もっと読む

この記事の著者

jscripter(ジェイスクリプター)

NIFTY SERVEのFGALEL(エントリーラボ)、FGALTS(テキスト&スクリプト)に参画し、FGALTSでシスオペを務める。現在、TSNETメンバー。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1449 2007/07/10 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング