Ubuntu18.04でPerl用Image::Magickをインストールする+α

いつも使わせて頂いている KENT-WEB さんの 夢カウンタ (DreamCounter) は Perl の Image::Magick というモジュールを使っているそうなんですが、
別のサーバーで夢カウンタを使おうとした時にいつも Image::Magick がないとエラーが出てしまい、入れるにしてもどう入れたか忘れてしまうのでメモ…

入れ方

sudo apt install libimage-magick-perl

これで一発です。。
ちなみに、Image::Magick は ImageMagick 本体には入っていません。
あと ImageMagick と Image::magick も別です(ややこしい…)
apt (apt-get) からは libimage-magick-perl としてインストールできるみたいです。

インストール後リロードすると、ちゃんと表示されました。
Image::Magick を使わない方法もあるっちゃあるみたいだけど…

CGI が動かない原因とか

CGI はほとんど使わないので動かない原因を調べるのにも一苦労…

  1. Apache に mod_cgi モジュールがロードされているかどうか確認する
    • ロードされていなければ a2enmod cgi && service apache2 restart で有効化しておきましょう
  2. apache2.conf の <Directory /var/www/> のところに Options +ExecCGI と AddHandler cgi-script .cgi がついてるかどうか確認する
    • これも結構忘れがち…
    • Options +ExecCGI で CGI の実行を許可、
    • AddHandler cgi-script .cgi のところで拡張子 .cgi のスクリプトを CGI として認識させています
  3. cgi スクリプトの所有者・グループが www-data になっているかどうか
    • samba を使い Windows からサーバーのファイル操作をよくしているのですが、その関係で Windows からファイルをコピーすると所有者が root になってしまう事がよくあります
    • chown -R www-data:www-data /var/www/ を実行すると、/var/www/ 以下のファイル全ての 所有者:グループ を変更します
  4. .cgi ファイルの #!/usr/local/bin/perl があってるかどうか確認する
    • 私の場合、Perl は /usr/bin/perl にインストールされていたので、夢カウンタの各 cgi ファイルを #!/usr/bin/perl のように書き換えると動くようになりました

あとがき

Perl (cgi) って動かなくても Internal Server Error しか出ないのがちょっと…
上の4つが合っていれば動かないって事はない(はず)…

コメント