開発環境のインストール

Synology DS216jをWEBサーバーとして設定する備忘録、前回からの続き。

BBSのCAPTCHA画像の生成には旧blog記事に書いたようにこちらのサイトのスクリプトを利用させてもらっている。導入前はSPAM投稿が頻繁にみられていたが、ここ数年SPAMを削除した記憶がないので効果はかなりあったと思う。今ではCAPTCHAはAIで解読できるらしく、時代遅れという説もあるが、現時点ではSPAMの被害はゼロといってよく、当面はこのまま様子を見ることにしたい。

運用中のCAPTCHA生成スクリプトは、画像イメージの作成にImage::Magickというperlのモジュールを必要とする。インストールはyumやcpanといったパッケージマネージャ経由か、ソースパッケージからのビルドで行うが、このNASでyumは使えないようなのでソースパッケージをビルドできるように開発環境をインストールすることにした。

パッケージマネージャーのインストール

まずは、Entware-ngというパッケージ管理ソフトをインストールするが、こちらのサイトの記載通りの手順でできた。これでopkgコマンドが使えるようになるのでPackages listを見てsectionがdevelとなっているものは一通りインストールしておいた。

また、Synologyの開発環境のインストールとして、こちらのサイトを参考にして、DS216jと互換性のあるDSM Tool Chainをインストールした。これでソースパッケージのビルドができるようになるはず。

Image::Magickがインストールできない

Entware-ngのPackages listを見ると、imagemagickのインストールに対応しているが、cgiから利用するにはこれだけではだめで、PerlモジュールのImage::Magick(perl-magick)のインストールも必要となる。残念ながらopkgではperl-magickのインストールは出来ないようだが、opkgでCPAN(perlbase-cpan)をインストールすればCPAN経由でImage::Magickをインストールできるかも、ということでやってみる。下記はエラー無く完了。


これはインストールの途中で、ccache-gccが無いというエラーが出て止まってしまう。Cコンパイラの動作を高速化するキャッシュだそうだが、ccasheのソースパッケージをビルドしてインストールしてみたが解決しなかった。パスを通してもccache-gccとしてシンボリックリンクを貼ってもダメ。たぶん、上でインストールしたDSM Tool Chainにccacheが入っていないのがご不満なのだろうと思う。

CPAN経由は諦めて、Image::Magickのソースパッケージを展開してビルドしてみたが、sudo make installの段階で「致命的エラー」が出て終了。

CGIからPHPは使えるか

どうやってもImage::Magickがインストールできなかったので、方針転換して画像生成を他の方法で行うことにした。SecureimageというPHPスクリプトを使うと、比較的簡単かつ凝ったCAPTCHAイメージを作れるらしいということで、試してみた。

こちらのサイトを参考に、Secureimageをサーバーに展開し、BBSのcgiのCAPTCHAイメージ挿入部分を下記のように書き換えてみたところ、綺麗に表示されるようになった。


表示までは簡単であったが、ここからが問題。キーの認証はどうするのか。perlとphpに互換性はないので別々にスクリプトを動かすことになるが、引数のやりとりに難があるし、セキュリティ上も好ましくないことが分かったため、この方法は却下となった。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

wp-puzzle.com logo