Windows環境での運用
adiaryはWindows上のWebサーバでも動作させることが可能です。しかし、Apache以外の「AN HTTPD」や「IIS」を利用する場合はやや特殊な設定が必要になります。
Windows上で動作させる場合 Perl インタプリタとしてはActivePerlをご利用ください*1。なおWindows上でのadiaryの動作ですが、Apache以外は対応外とさせて頂きます。*2*3
画像の縮小が必要な場合はImageMagickのWindows版をインストールしてくたざい。この記事も参考に。
Windows上のApacheでの動作
開発環境として「Windows Apache + ActivePerl」を利用していた時期もありましたので、問題なく動きます。
動作確認済環境。
- Apache 2.0 + ActivePerl 5.8
- AnHttpd 1.4x + ActivePerl 5.8
AN HTTPDでの動作
adiaryをNHPスクリプトとして実行するように設定します(perlis.dllを関連づける)。
adiary.conf.cgi の最初の方に次のように記述してください。
<$ifset(ENV.REQUEST_URI eq ENV.PATH_INFO, ENV.PATH_INFO, '')> <$Use_PATH_INFO_orig = 1> <$Use_QUERY_STRING_orig = 1> <$NHP_mode = 1>
adiary Ver1.32以前は下のように記述します
<$ENV.REQUEST_URI .= ENV.PATH_INFO . if(ENV.QUERY_STRING ne '', '?' . ENV.QUERY_STRING)> <$ifset(ENV.REQUEST_URI eq ENV.PATH_INFO, ENV.PATH_INFO, '')> <$NHP_mode = 1>
IIS での動作(共通)
- IISのスクリプト動作設定
- 動作(動詞と書かれている)に対する制限をしないこと
- 「スクリプトエンジン」にチェックすること
- 「ファイルの存在を確認する」をチェックしないこと
IISはWebサーバとしては信じられないぐらい欠陥品です(少なくともIIS5.x)。今にも壊れそうな屋台の上で、スクリプトを無理矢理動かしていると思ってください。*4
IIS での動作(perlis.dll利用)
adiary.conf.cgi の最初の方に次のように記述してください。
<$ENV.REQUEST_URI = ENV.PATH_INFO . if(ENV.QUERY_STRING ne '', '?' . ENV.QUERY_STRING)> <$ENV.PATH_INFO = substr(ENV.PATH_INFO, length(ENV.SCRIPT_NAME))> <$NHP_mode = 1>
この環境では ImageMagick(画像縮小に必要)をインストールしても使えません。画像縮小をご利用の方は、他の方法をご検討ください。
IIS での動作(cgi動作/perl.exe利用)
adiary.cgi, upload.cgi, mail.cgi の2行目に、次の例のように設置ディレクトリを記述してください。
chdir("c:/Inetpub/xxxx/adiary/");
また、adiary.conf.cgi の最初の方に次のように記述してください。
<$ENV.REQUEST_URI = ENV.PATH_INFO . if(ENV.QUERY_STRING ne '', '?' . ENV.QUERY_STRING)> <$ENV.PATH_INFO = substr(ENV.PATH_INFO, length(ENV.SCRIPT_NAME))> <$ENV.SERVER_PROTOCOL = "1.0">
最後の行は Windows2000付属IIS(Ver5.0)のバグ対策です。6.0以降は不要だと思いますが確認していません(詳細情報)。