前回からの続き。SynologyのNASはDSM経由でapache,perlのインストールができるが、任意のディレクトリでcgiを動作させるためにはコンフィギュレーションファイル等の編集による設定が必要。以下に設定した項目について覚書として記録しておく。
httpd22.confの設定
DSMではapache2.2と2.4のインストールに対応しているが、2.4は何かとトラブルが多いとの話なのでapache2.2で運用することにした。この場合設定ファイルはhttpd22.confとなり、これをroot権限で書き換える。
以下のようにcgiを動作させたいディレクトリの分だけhttpd22.confに追記する。.htaccessファイルを置く方法もあるが、httpd22.confに記述したほうがパフォーマンスが良いらしい。
1 2 3 4 5 6 |
<Directory /var/services/web/bbs> AllowOverride None Options +ExecCGI Order allow,deny Allow from all </Directory> |
httpd.conf内のAddHandlerの記述に追記して.plファイルもcgiスクリプトとして設定する。
1 |
AddHandler cgi-script .cgi .pl |
なお、viの操作は、iキーで挿入モード、escで戻り、:wで上書き、:qで終了。設定を有効にするにはapacheのrestartが必要であるがDSM上で停止、始動が可能。
cgiファイルの編集
cgiファイルの先頭のperlのパスを明示する部分については、下記のようにしておけばOK。
1 |
#!/usr/local/perl -- |
パーミッション設定
cgi,plファイルの属性はchmod 755 で変更しておく。ログファイルは666、書き込みの発生するディレクトリは777にしておく。
jcode.plの修正
perlのバージョン違いによりjcode.plがエラーを吐くようになったため、下記を参考にjcode.plを書き換えた。http://icepotato.cocolog-nifty.com/blog/2014/04/jcodepldefinedh.html
ここまでやって、BBSのログが表示されるようになったがCAPTCHA画像が出てこない。これについてはまた次回。