「1つ以上の推奨モジュールが存在しません」って出てるけど、imagick?何それ?
WordPressのサイトヘスステータスに「1つ以上の推奨モジュールが存在しません」と表示され困っている方にむけて記事を書きました。
私はPHPとか専門的なことは分かりません。
解決できるんでしょうか?
私もWeb開発者ではありませんが、ちゃんと解決できますよ。
このページでは私がさくらインターネットとバリュードメイン系サーバのコアサーバーとエクスリアでした対処法解説します。
この記事の内容は
・imagickについて
・さくらインターネットのレンタルサーバーでの対処法
・コアサーバーとエクスリアの対処法
・imagickの利用について
結論:バリュードメイン系のサーバーでのimagickの有効化はおすすめしない
まず、「recommended improvement」は重要なエラーメッセージではありません。「勧告」くらいで、放っておいても大丈夫です。
私はさくらインターネットとコアサーバー、エクスリアを利用しました。どれもデフォルトではiamagickは無効になっています。このimagickを有効化するかどうかは注意が必要です。
さくらインターネットでは有効化しても問題ありませんでした。一方のコアサーバー、エクスリアでも有効化は可能ですが問題があります。
コアサーバー、エクスリアではPHPのバージョンを下げなくてはなりません。PHPのバージョンを下げることによって起こる、サイト表示が遅くなる、セキュリティが甘くなること考えられるからです。
この点を踏まえて、imagickをインストールしてくださいね。
imagickについて
「一つ以上の推奨モジュールが存在しません」とは
「一つ以上の推奨モジュールが存在しません。」の右横の下向きの三角をクリックすると詳細が表示されます。推奨モジュールとはWordPressが推奨する、「オススメだよ」というモジュールです。
リンク先のチームのハンドブックの「PHP 拡張機能」にimagickの説明が掲載されています。
imagick – メディアのアップロードに対して、より良い画質を提供します。詳細についてはWP_Image_Editor着信を参照してください。ゴーストスクリプトも利用可能な場合、よりスマートな画像のサイズ変更(小さな画像の場合)とPDFサムネイルのサポート。
リンク先の「WP_Image_Editor着信」を見ると、分かりそうでサッパリ分からない日本語訳です。(詳しい人なら分かると思いますが、どうも今回のテーマには関係ありません)
モジュールとは
モジュールとはあるプログラムのパーツと捉えてください。パーツだけでも動きますが何かの部品として働きます。
imagickとは
imagickについての情報はサイトヘルス情報/メディア処理で知ることができます。
imagickに似た「imageMagick」という文字を見つけることが出来ると思います。「ImageMagickバージョン番号 利用できません」となっていますね。
ImgeMagickは画像処理ソフトでWordpressの編集画面やアップロードに利用できるソフトです。画像をアップロードすると、色々なサイズの画像やサムネイルが作られます。ImageMagickを動かすのかimagickになります。
ImageMagickRは、ビットマップ画像の作成や修正を行うソフトウェア群です。 さまざまな (100 をこえる) 形式の画像の読み書きや変換に対応しており、 DPX や EXR、GIF、JPEG、JPEG-2000、PDF、PhotoCD、PNG、Postscript、SVG そして TIFF といった形式を扱うことができます。
PHPマニュアル:ImageMagickはじめに
ビットマップ画像とは、写真や(昔の)テレビのような拡大すると点々で構成されているような画像です。JPEGやGIFが有名です。
GDとは
使用中のエディターの項目を見ると「WP_image_Editor_GD」となっています。このGDのおかげで、imagickがなくても問題なくアップロードや表示ができます。
GDもImageMagickと同じ画像編集ソフトです。ただ、PhotoshopやWindows10のフォトやペイント自分で切り抜いたり文字を書いたりする編集ではありません。関数を使って編集します。
参考にしたサイトによると、画質が良いのはImageMagick、画像の処理が早いのはGDになります。
▶ PHPのimagickモジュールをインストールすることの利点
▶ 「GD vs ImageMagick」PHPで画像加工性能比較
imagickのインストール方法
imagickのインストール方法は、php.iniファイルに「extension = imagick.so」と書き込めばOKです。=の前後に半角スペースが入りますよ。
php.iniファイルはPHPのルールが書かれたファイルです。そのため、PHPを使うWordpressが入っているディレクトリ(フォルダ)より上位か別のディレクトリにあります。
imagickの有効化の手順
- php.iniファイルを開く
- 「extension = imagick.so」と入力し保存する
- サイトヘルスを確認
設定が終わったら、Wordpressのサイトヘルス画面に戻って確認してください。すぐに反応します。
サーバーによっては少し時間がかかるかもしれません。その時は一度休憩するといいですよ。リラックスしてインストールしましょうね。
今までは基本のインストール方法でした。(ロリポップ!でも通用すると思いますよ)
レンタルサーバーによってアクセス出来る階層が決まっていますので、php.iniファイルに書き込む方法が違います。
さくらインターネットの場合
1.コントロールパネルの左の「スクリプト設定」「php.ini設定」を選ぶ
2.「extension = imagick.so」と入力して、保存する
▶ imagickがインストールされていない、の解決方法【WPサイトヘルス】
コアサーバーの場合
コアサーバーのimagickについて載っているマニュアルはこちら(https://www.coreserver.jp/support/faq/php-cgi.php)です。
WordPressのフォーラムの「モジュールimagickのインストール」がとても参考になりました。質問者さんも私と同じくコアサーバーを利用しています。その方がコアサーバーにお問い合わせした回答がごちらです。
こちらを踏まえて、変更します。
1.コントロールパネルの左の「サイト設定」を選びます
2.運営するドメインを選びます
3.「サイト設定の変更」ボタンをクリックします
4.PHPのバージョンを「php71」にします
5.×で画面を閉じたら、少し下の「net2ftp ファイルマネージャー」ボタンをクリックします
6.「root/public_html/.fast-cgi-bin」の階層を表示します
7.「php71.ini」ファイルを選び「編集」をクリックします
8.最後の列に「extension = imagick.so」を入力し、フロッピーマークを押し保存します
以上で変更は終わりです。
その結果・・・・
ダッシュボードに警告がでました!
サイトヘルスの詳細です。
このようになります。なので、imagick問題にこだわらなくてもいいと思いますよ。
私は設定を元に戻しました!
エクスリアの場合
ポポデザインさんの2020年9月28日のブログ(https://popo-design.net/imagemagick/)に「XREAではPHP7.1のみでImageMagick拡張が利用可能」とサポートセンターの回答を紹介しています。(ということは、コアサーバーはPHP7.2は利用可能かも)
方法と結果はコアサーバーと同じです。
そこまでしてImageMagickは使う価値があるのか?
疑問です。そこまでして、サイトヘルスの表示を消す必要があるのでしょうか?
気になった記事があったので紹介します。ImageMagickを使うWebアプリのセキュリティ – 1. 既知の脆弱性、システム情報の漏洩2018年8月の記事なので少し前の記事です。3回に分けてImageMagickを検証しています。
ImageMagickの注意点は記事のタイトルにもあるように、脆弱性の報告が多い、システム情報の漏洩があることです。
ImageMagickの利点もあります。対応する画像形式や連携するソフトウェアが多く、大きな画像も処理可能なところです。
この記事は3年前の記事です。対処はしていると思いますが、脆弱性の報告は続いています。
記事には対策が書かれていますが、初心者には簡単にはできないレベルです。せっかく、レンタルサーバーが対応していないのだから、かえって得策だったと思った方がいいのではないでしょうか。
PHPのバージョンを下げて危険度が上がった上に、ImageMagickを使うのはリスクが大きいと思います。
サイトヘルスのステータスにこだわる必要はありません。
セキュリティが甘くなる方が嫌だわ。
私はサイトヘルスの表示を気にしないでおこっと!