2013年04月02日
フォームやコメントCGIの設置場所をカスタマイズする
セキュリティ等の観点からPowerCMSのmt-contactform.cgi (フォーム処理CGI)、mt-members.cgi (会員サイト系CGI)といったCGIアプリケーションを管理用CGI (mt.cgi)とは別の場所に設置したいといったケースがあると思います(mtディレクトリへのアクセスをIPアドレスで制限したいといった場合)。同様に mt-search.cgiや mt-comments.cgi の設置場所を変更したいケースもあるかと思います。
この時、ライブラリを複数設置して対応することもできますが、バージョンアップやカスタマイズの手間等を考えると、同じファイル群を複数設置するのは後々面倒です。
mt-contactform.cgi の設置場所とファイル名のカスタマイズ
MTのパスが /cgi-bin/mt/ だった場合(管理用スクリプトは /cgi-bin/mt/mt.cgi)、/cgi-bin/entry/contact.cgi にフォーム用のCGIを設置するために必要なカスタマイズは以下の通りです。
カスタマイズ前 ( /cgi-bin/mt/mt-contactform.cgi )
#!/usr/bin/perl -w use strict; use lib $ENV{MT_HOME} ? "$ENV{MT_HOME}/lib" : 'lib'; use lib 'addons/ContactForm.pack/lib'; use MT::Bootstrap App => 'MT::App::ContactForm';
カスタマイズ後 ( /cgi-bin/entry/contact.cgi )
※$ENV{MT_HOME}へ指定する/path/to/cgi-bin/mtは環境にあわせて変更してください。
#!/usr/bin/perl -w use strict; BEGIN { $ENV{MT_HOME} = '/path/to/cgi-bin/mt'; } use lib $ENV{MT_HOME} ? "$ENV{MT_HOME}/lib" : 'lib'; use lib $ENV{MT_HOME} ? "$ENV{MT_HOME}/extlib" : 'extlib'; use lib $ENV{MT_HOME} ? "$ENV{MT_HOME}/addons/Commercial.pack/lib" : 'addons/Commercial.pack/lib'; use lib $ENV{MT_HOME} ? "$ENV{MT_HOME}/addons/PowerCMS.pack/lib" : 'addons/PowerCMS.pack/lib'; use lib $ENV{MT_HOME} ? "$ENV{MT_HOME}/addons/PowerCMS.pack/extlib" : 'addons/PowerCMS.pack/extlib'; use lib $ENV{MT_HOME} ? "$ENV{MT_HOME}/addons/ContactForm.pack/lib" : 'addons/ContactForm.pack/lib'; use lib $ENV{MT_HOME} ? "$ENV{MT_HOME}/addons/ContactForm.pack/extlib" : 'addons/ContactForm.pack/extlib'; use MT::Bootstrap App => 'MT::App::ContactForm';
この段階で、/cgi-bin/entry/contact.cgi へデータをポストして、確認画面が正しく表示されることを確認してください。
環境変数の追加
以下の2つの環境変数を mt-config.cgi に追記して、フォームのページを再構築すればカスタマイズは完了です。
ContactFormScript contact.cgi ContactFormCGIPath /cgi-bin/entry/
mt-comments.cgi の設置場所とファイル名のカスタマイズ
フォーム機能以外のCGIの場合(例:コメントの場合)、CGIのパスを変更するためには mt-config.cgi をコピーして mt-config-comments.cgi とし、mt-commets.cgi を /cgi-bin/comment/comments.cgiに設置、comments.cgi で以下のようにします。
... BEGIN { $ENV{MT_HOME} = '/path/to/cgi-bin/mt'; $ENV{MT_CONFIG} = '/path/to/cgi-bin/mt/mt-config-comments.cgi'; } use lib '../mt/lib'; use lib '../mt/extlib'; ...
環境変数の追加
mt-config-comments.cgi で以下の環境設定を記述してサイトを再構築すればOKです。
CGIPath /cgi-bin/comment/ CommentScript comments.cgi
- カテゴリー
- 技術情報
- 設定・管理画面カスタマイズ
コメントを投稿する