「WEBサーバーの開発環境」ApacheのPerlスクリプト設定
WEBサーバーでActivePerlスクリプト言語が実行するためのApacheの『httpd.conf』修正とPerl実行動作の確認
『Apache』のコマンドプロンプト『httpd.exe』の操作※画像クリックで拡大表示(リンク)
- Apache 2.4のドキュメント参照先は、
http://httpd.apache.org/docs/2.4/から、「リファレンスマニュアル」などの詳細内容を確認できます。
- 「httd」用「環境変数」の「path」設定
コマンドプロンプトの操作を容易にするため、パソコンの「環境変数」の「path」項目に「C:\WEBserver\bin\;」を追加します。(「;」は、設定パスの区切り)
- 「httd」コマンドプロンプトは、「windows」キーを押しながら「R」キーで、『ファイル名を指定して実行』が立ち上がり「cmd」を確認して起動する。
【「httd」の主なコマンド内容の解説】 コマンド Apacheサーバの制御・機能 httpd -k install
httpd -k uninstallWindowsサービスの登録/解除 httpd -k start
httpd -k stop
httpd -k restartApacheの起動/停止/再起動 httpd -v バージョン番号とビルドした日付を表示 httpd -t 設定ファイル『httpd.conf』の文法的なチェック
OKのとき、「Syntax OK」を表示httpd -V ビルドパラメータの確認 httpd -M 組み込まれているモジュール一覧表示 httpd -L 組み込まれているモジュールのディレクティブ一覧表示 httpd -t -D DUMP_VHOSTS
httpd -S仮想ホストに関する情報表示
- 「httd」コマンド実行
「httd -k stop」(Apache停止)、「httd -k start」(Apache起動)、「httd -k restart」(Apache再起動)、「httpd -v」(Apacheバージョン情報表示)、「httpd -t」(『httpd.conf』の文法的なチェック)のコマンド実行した内容。
Apache『httpd.conf』設定ファイルの記述ルール
- 「ディレクティブ」(1行の指示子)の記述ルールは、
・『#』以降は、コメント扱い
・ディレクティブの大文字と小文字の区別なし
・ディレクティブと引数は、空白文字又はTABで区切る。
・引数に空白文字がある場合は、ダブルクォーテーションで括る - 「コンテナ・ディレクティブ」の記述は、サーバーの一部分だけの設定を有効にしたい場合に利用します。
<コンテナ指示子 引数> 設定内容 </コンテナ指示子>
- コンテナ・ディレクティブの解説
- 「IfModule xxx」のコンテナ・ディレクティブは、『特定モジュール(xxx)が組み込まれているかどうか条件判断を行う』ことを意味します。特定モジュール(xxx)の前に『!』があると否定を表します。
- 「Directory xxx」のコンテナ・ディレクティブは、『特定ディレクトリ(xxx)にディレクティブを適用する』を意味します。'xxx'は、絶対パスを適用します。
(注)特定ディレクトリ(xxx)は、Perl互換の正規表現の指定も可能です。
『httpd.conf』の設定内容
- 「ScriptAlias」ディレクティブは、特定のディレクトリを『CGI』プログラムが動作するディレクトリにしたうえで、仮想ディレクトリとして公開するものです。仮想ディレクトリ「/cgi_bin/」は、
「"C:/WEBserver/cgi-bin/"」フォルダに設定されていることを確認します。(358行目) - 仮想ディレクトリ「/cgi_bin/」のスクリプト実行指定「Options ExecCGI」を追加する。
コンテナ・ディレクティブの<Directory "c:/WEBserver/cgi-bin">内のディレクティブを変更。
[1]「Options None」をコメント化(376行目) Options None →# Options None に変更して、コメント化 [2]「Options ExecCGI」を追加(378行目) → Options ExecCGI を追加
- 『index.cgi』を追加
Perlスクリプト言語に対するデフォルトファイル名の登録として、拡張子『.cgi』の『index.cgi』を登録するには、コンテナ・ディレクティブの<IfModule dir_module>内の「DirectoryIndex」ディレクティブに追加。
[1]「index.cgi」を追加(275行目) DirectoryIndex index.php index.html →DirectoryIndex index.php index.html index.cgi のように空白区切りで『index.cgi』を追加
(注)1つのフォルダ内に複数のデフォルトファイル名が登録された場合の優先順は、左側からの順になります。 - 「AddHandler cgi-script」を有効化して拡張子を追加
「ScriptAlias」の指定フォルダ以外で『cgi-script』を動作するようにするためには、『AddHandler cgi-script』を有効化して、Perl対象の拡張子「.cgi」「.pl」「.pm」を追加する。[1]「.cgi」の後に「 .pl .pm」を追加(415行目) #AddHandler cgi-script .cgi →AddHandler cgi-script .cgi .pl .pm のように空白区切りで『 .pl .pm』を追加
- 「Apache」の再起動
『httpd.conf』の内容を変更・更新した場合には、コマンドプロンプト『httpd -k restart』又は、「Open Apache Monitor」から『Restart』ボタンをクリックして「Apache」の再起動をします。
perlスクリプト設定の『httpd.conf』のダウンロード
「Apache」上で『Perl』プログラムの動作確認
- 仮想ディレクトリ「C:\WEBserver\cgi_bin\」に『print_env.cgi』プログラムを設置する。
- 『print_env.cgi』プログラムの内容は、
「Perl」スクリプト言語の場合、先頭行に「ActivePerl」のインストール場所(パス)の指定が必要ですから、『#!c:/perl/bin/perl』を指定します。プログラムの内容は、環境変数を表示するものです。
- 「print_env.cgi」のプログラム実行結果で『httpd.conf』のperlスクリプト設定の動作確認ができます。
Perlスクリプトの環境変数表示プログラムの
『print_env.cgi』のダウンロード