掲示板スクリプト新しらぎく掲示板mod_perl上で動作させる場合。

ここでは、新しらぎく掲示板mod_perl上で動作させる方法を解説します。

mod_perl上で動作させる場合・目次。

設置に際し注意すべき事。(平成19年 4月27日 訂正)

設置の際には以下の点に注意して下さい。

アパッチサーヴァでmod_perlを実装している事

mod_perlはアパッチサーヴァの拡張機能なので、アパッチサーヴァ以外では動作しません。

尚、mod_perlには 1.x と 2.x(1.99以降)の二つのヴァージョンがあり、それぞれアパッチサーヴァの 1.x 及び 2.x に対応しております。

両ヴァージョンにはかなり大きな差異があり、互換性はありませんが、制作者は双方のヴァージョンで動作確認をしております。

また、mod_perlはメモリを大量に消費するので、一般の共有サーヴァでは利用出来ない場合が多いでしょう。

スクリプト設置ディレクトリは絶対パスで指定する事

アパッチサーヴァの場合、通常のCGIで動作させるのであれば、$system_dirの右辺は特に設定する必要はありませんが、mod_perlでは実行ディレクトリが異なるため、必ずサーヴァ内での絶対パスを指定する必要があります。

パーミッションは第三者権限に対応する事 (平成19年 4月27日 訂正)

通常、SuExecでCGIを実行する場合、パーミッションは運営者権限に対応すれば実行出来ます(すなわち、CGIスクリプトなら700、ライブラリやデータファイルなどは600)。

しかしながら、mod_perlはCGIではないのでSuExecが利用出来ず、従って第三者権限となります。

このため、パーミッションは全て第三者権限に対応する必要があります。

具体的には、以下のようにして下さい。

必ずセキュリティ対策を施す事 (平成19年 4月27日 追記)

mod_perl上で動作可能にするためのパーミッションの設定を行うと、第三者に容易にデータを盗み見される恐れが高くなります

特にログファイルに至っては第三者に依る破壊も可能になりますので、安全対策として.htaccessでアクセスを規制するようにして下さい

例えば、CGI設置ディレクトリに関しては、以下のような.htaccessファイルを設置する事を強く推奨します。

<Files ~ "\.pl$">
    order deny,allow
    deny from all
    </Files>

<Limit PUT DELETE>
    order deny,allow
    deny from all
    </Limit>

また、ログファイル設置ディレクトリについては、必ず以下のような.htaccessを設置するようにして下さい。

<files *>
    order deny,allow
    deny from all
    </files>
mod_perlに於ける問題点

mod_perlに関しては、以下の問題点もありますので、充分考慮されるようお奨めします。

mod_perlの設定。

.htaccess または httpd.conf にて、mod_perl が実行されるように設定して下さい。

mod_perl 1.x(=アパッチ 1.x)環境の場合。

mod_perl上で動作する拡張子に対して、以下の指定を行って下さい。

<Files ~ "\.スクリプト拡張子$">
    SetHandler      perl-script
    PerlHandler     Apache::Registry
    PerlInitHandler Apache::StatINC
    PerlSendHeader  On
    </Files>

四行目の PerlInitHandler Apache::StatINC は、スクリプトの差替が行われた際にそれに即時に対応出来るようにするためのものです。

五行目の PerlSendHeader On は、HTTP応答ヘッダを自動的に付与すると言うものです。

mod_perl 2.x(1.99以降=アパッチ 2.x)環境の場合。

mod_perl上で動作する拡張子に対して、以下の指定を行って下さい。

<Files ~ "\.スクリプト拡張子$">
    SetHandler      perl-script
    PerlHandler     ModPerl::Registry
    PerlInitHandler Apache::Reload
    PerlSendHeader  On
    setenv PERL_SEND_HEADER On
    </Files>

四行目の PerlInitHandler Apache::Reload は、スクリプトの差替が行われた際にそれに即時に対応出来るようにするためのものです。

五行目の PerlSendHeader On は、HTTP応答ヘッダを自動的に付与すると言うものです。mod_perl 2.xではヘッダを送信しないと一部機能が正常に利用出来ないようなので、必ず PerlSendHeader On にして下さい。

また、六行目のsetenv PERL_SEND_HEADER Onは、システムで必要な環境変数ですので必ずこの値に設定しておいて下さい。

スクリプトの設定。

スクリプトの設定については、以下の通りにして下さい。

システムディレクトリへの絶対パスの設定

K.cgi 及び img.cgi (拡張子が変更される場合もありますが)に於いて、以下の変数を設定して下さい。

$system_dir
必ずスクリプト設置ディレクトリへの絶対パスを指定して下さい。


ページ外へのご案内。