Wordpress5.2で実装されたサイトヘルスの画面で「オプションのモジュール imagick がインストールされていないか、無効化されています。」が出ている時の解決策です。
この改善策は画像処理ライブラリである「ImageMagick」のAPIを使用したPHPの拡張モジュール「imagick」がサーバーで使用できない状態であるときに表示されます。
「おすすめの改善」とありますが、Wordpressの画像処理はPHPに同梱されているGDライブラリを使っているため、そのままでも全く問題はありません。
この記事の目次
WordPressでimagickを有効化する
1つ以上の推奨モジュールが存在しません
PHPモジュールはサイトの稼働に必要なほとんどのタスクをサーバー上で実行します。変更はサーバー管理者が実施する必要があります。WordPressホスティングチームでは、こうした推奨されていたり必須とされていたりするモジュールのリストをチームのハンドブックでメンテナンスしています。
オプションのモジュールimagickがインストールされていないか、無効化されています。
当サイトではこの改善案がず~と出ています。
imagickとは?Wordpressで必要なのか?
Wordpressの管理画面に表示される改善策の案内ですが、imagickに関してはサーバー上にインストールするソフトウェアの問題です。
ImageMagickという画像処理ライブラリをimagickで使ってサムネイルの自動生成などの画像処理をWordpressが行うわけです。
ではなぜ「インストールされていないか、無効化されている」状態なのに今まで問題なくWordpressを使うことが出来たのか?
それは、Wordpressを動かすために必要なPHPの中にGDライブラリという画像処理のソフトウェアも入っているからです。
このGDライブラリが画像処理を行っているため、imagickがなくても問題ないということです。
ローカル環境にWordpressを構築するXAMPPというソフトではGDライブラリが読み込まれていないため、画像処理が行えず画像のリサイズが出来ません。
関連記事
【GDライブラリの関連記事】
WordPressの画像にフルサイズしかない!特にXAMPPの初期設定ではフルサイズのみで他の画像サイズが作成されない。
普通にWordpressを使用する場合はこのGDライブラリで大抵のことはできますので、imagickが使えなくても全く問題はありません。
今回、改善策がずっと出ているのが気になったので解決しようと思いました。
imagickを有効化する方法
共有サーバーであってもimagickがインストールされており、有効化されていないだけの場合はphp.iniファイルを編集し、ライブラリを有効化することでこの問題に対応することが出来ます。
もともとサーバーにソフト自体がインストールされていない場合、サーバーのroot権限がないとソフトの新規インストールはできないため諦めるしかありません。
(VPSや専用サーバーの場合は自分でインストールすればOK)
php.iniファイルを編集する
既にサーバーにソフトがインストールされている場合、php.iniに下記のコードを追記して保存すれば有効化できます。
php.ini
extension = imagick.so
サーバーコントロールパネルの「cPanel」が使える場合は「MultiPHP INI Editor」で簡単にphp.iniの編集が可能です。
【cPanelからphp.iniを編集する手順】
- cPanelにログインする。
- ソフトウェアの欄からMultiPHP INI Editorに進む。
- タブを「編集モード」に切り替える。
- 「場所を選択します」のプルダウンでドメインを選択する。
- 一番下(分かりやすい場所)に先ほどのコードを記述。
- ファイルを保存する。
MixhostではimagickがPHPで使えない
Mixhostのサーバーの場合、先ほどの方法でサイトヘルスの案内が消えませんでした。
公式ページを確認したところ以下のような案内がありました。
弊社レンタルサーバにおいて、PerlMagick(ImageMagick)をご利用になることが出来ます。
ご利用方法
PerlMagick(ImageMagick)については、すでにインストール済みとなっているため、お客様で改めてインストール作業を行う必要はございません。そのままご利用になることが出来ます。
ん?インストールされており有効化のコードを書いても解決しない?
どうもimagickはPerlのみで使えるようで、PHPでは使うことが出来ない様子。
色々調べたのですが、2018年ごろまでに契約したサーバーだとcPanelからimagickを有効化して下さいとのこと。
cPanel > ソフトウェアの欄のPHP Selector > PHP Extensions > imagick
ここでチェックを入れることでimagickが有効化されるようですが、残念ながら僕が契約したのはもっと後の新しいサーバーのようでこの画面がありませんでした。
追記
先ほどふと確認してみると、Mixhostさんのヘルプ&サポートが更新されていました。
弊社レンタルサーバではperl用のImageMagickである『PerlMagick』をご利用になることが出来ます。
PHP用の『MagickWand for PHPIMagick』はインストールされておりません。
やはり現環境で使えるのはPerlMagickだけみたいです。
プラグインを試してみる
「ImageMagickエンジン」というプラグインをインストールしましたがダメでした。
まぁサーバー上にソフト自体がインストールされていない(制限されているのかも)ので当然ライブラリが使えるようになる訳ありません…
PerlMagickは読み込まれているはずなので、Wordpressのサイトヘルス画面に出るimagickとはPHP版のimagickということでしょうか。
結論
新しいサーバーのMixhostでは「1つ以上の推奨モジュールが存在しません」を消すことはできません。
まとめ
サーバー上にimagickがインストールされている場合にライブラリを有効化することで、サイトヘルスに出る「1つ以上の推奨モジュールが存在しません」を解決する方法でした。
先述の通り、GDライブラリで画像処理は問題ないので放置でOKです。
SEO的に不利になることもないでしょう。
「サイトヘルス画面上の1項目をご確認ください。」が出続ける...ただそれだけ...
なお、Xserverの場合は始めからインストール&有効化されているため、そもそもこの改善案は出ません。
良いな~(・ω・)/
うちのサイトでも「すばらしい!」が見たいw
関連記事
「サイトがPHPの古いバージョン(xx)を実行しており更新をおすすめします。」を解決する方法はコチラ。
レンタルサーバーのcPanelを使ってPHPのバージョンを変更する方法。サイトが少し高速化するかも?