はじめに

いつもながら本業が忙しく、サイト運用に全く手が回らずの日々が続いてしまいましたが、ふと画像掲示板の泉を見ると、また荒らしが目につき始めるぐらいに荒れ始めていたので、眠い目をこすりつつサイトメンテナンスをやることにしました。このあたりが一人で続ける個人サイトの一番つらいところですね。

急なPHPのバージョンアップ

メンテナンス作業中、眠さで頭がバカになっていたのか、管理画面でPHPのバージョン変更を何も考えずにやってしまい、PHPをversion 5.xからVersion 7.3に一気上げてしまい、これまでPHP5.x系に甘えて手抜きをしていた変数宣言あたりが原因となって、dtn.jpサーバ全体にWarningが表示されるようになってしまいました。

慌ててプログラム修正を始めましたが、途中で何度かお問い合わせまでいただいてしまい大変ご迷惑をお掛け致しました。

メンテナンスに合わせて機能追加

Warning潰しもひと段落したので、折角なので何か少しでも機能改良できそうなことはないかと考えまして、思いついてふとやってみたことが画像掲示板の泉でアニメーションgif画像の貼り付けに対応させることでした。

今思えば、PHPのバージョンUPとは全く関係ありませんね。

アニメーションgifのアップロード処理

gifアニメといって、いつの時代の話をしてるんだと笑う方も多いと思いますが、実はこれまでアニメーションGIF画像を画像掲示板の泉にアップロードをしても、gifファイルをアップすること自体はできたのですが、サムネイル生成時にそのアニメーションを残すことができておりませんでした。

GDライブラリでサムネイル生成

画像掲示板の泉で画像をアップロードする際には、一覧ページ用のサムネイル画像を別途生成していましたが、このサムネイル生成時の画像リサイズにPHPのGDライブラリを使っておりました。

このGDgifアニメーションに実は対応しておらず、せっかくアニメーションgifをアップロードしてもらっても、サムネイル画像ではアニメーションが消えた単なる固定gifファイルになってしまう問題がありました。

ImageMagickでサムネイル生成

gifアニメーションのリサイズで、アニメーションも残しつつリサイズする一番簡単な方法は、GDでのリサイズをやめてImageMagickに変えるというだけでした。

ImageMagickに脆弱性の話が多いからかもしれないですが、さくらのレンタルサーバではImageMagickがデフォルトで切られているので、 extension=imagick.sophp.iniに追加する必要はあったりしましたので少々手間取りましたが、無事サムネイル画像でもアニメgifを動かすことができました。

アップ最大容量も10MBに変更しました

おわりに

これと合わせて、これまで画像アップロードの容量を最大1MBとしていたものを、最大10MBにまで上げておきました。iphoneなんかで写真を撮ると、平気で1MBを超えてくるので、これで多少なりとも使える画像掲示板になったのかとは思います。

画像アップローダーとしてでもお気軽にご利用ください。