サーバーでimagickを有効化する方法。WordPressの「1つ以上の推奨モジュールが存在しません」を解決する。

Wordpress_imagickの有効化001

WordPress5.2で実装されたサイトヘルスの画面で「オプションのモジュール imagick がインストールされていないか、無効化されています。」が出ているときの解決策です。

この改善策は画像処理ライブラリである「ImageMagick」のAPIを使用したPHPの拡張モジュール「imagick」がサーバーで使用できない状態であるときに表示されます。

「おすすめの改善」とありますが、Wordpressの画像処理はPHPに同封されているGDライブラリを使っているため、そのままでも全く問題はありません。

サイトヘルスおすすめの改善_imagick

Wordpress_imagickの有効化001

管理画面左メニュー > ツール >サイトヘルス

1つ以上の推奨モジュールが存在しません

PHPモジュールはサイトの稼働に必要なほとんどのタスクをサーバー上で実行します。変更はサーバー管理者が実施する必要があります。WordPressホスティングチームでは、こうした推奨されていたり必須とされていたりするモジュールのリストをチームのハンドブックでメンテナンスしています。

オプションのモジュールimagickがインストールされていないか、無効化されています。

imagickとは?Wordpressで必要なのか?

WordPressの管理画面に表示される改善策の案内ですが、imagickに関してはサーバー上にインストールするソフトウェアの問題です。

ImageMagickという画像処理ライブラリをimagickで使ってサムネイルの自動生成などの画像処理をWordpressが行うわけです。

ではなぜ「インストールされていないか、無効化されている」状態なのに今まで問題なくWordpressを使うことが出来たのか?
それは、Wordpressを動かすために必要なPHPの中にGDライブラリという画像処理のソフトウェアも入っているからです。

Wordpress_imagickの有効化002

phpinfoでのPHP設定情報確認画面

このGDライブラリが画像処理を行っているため、imagickがなくても問題ないということです。

ローカル環境にWordpressを構築するXAMPPというソフトではGDライブラリが読み込まれていないため、画像処理が行えず画像のリサイズが出来ません。

普通にWordpressを使用する場合はこのGDライブラリで大抵のことはできますので、imagickが使えなくても全く問題はありません。

今回、改善策がずっと出ているのが気になったので解決しようと思いました。

imagickを有効化する方法

共有サーバーであってもimagickがインストールされており、有効化されていないだけの場合はphp.iniファイルを編集し、ライブラリを有効化することでこの問題に対応することが出来ます。

もともとサーバーにソフト自体がインストールされていない場合、サーバーのroot権限がないとソフトの新規インストールはできないため諦めるしかありません。
(VPSや専用サーバーの場合は自分でインストールすればOK)

php.iniファイルを編集する

既にサーバーにソフトがインストールされている場合、php.iniに下記のコードを追記して保存すれば有効化できます。

extension = imagick.so

サーバーコントロールパネルの「cPanel」が使える場合は「MultiPHP INI Editor」で簡単にphp.iniの編集が可能です。

【cPanelからphp.iniを編集する手順】

1.cPanelにログインする。
2.ソフトウェアの欄からMultiPHP INI Editorに進む。
3.タブを「編集モード」に切り替える。
4.「場所を選択します」のプルダウンでドメインを選択する。
5.一番下(分かりやすい場所)に先ほどのコードを記述。
6.ファイルを保存する。

MixhostではimagickがPHPで使えない

Mixhostのサーバーの場合、先ほどの方法でサイトヘルスの案内が消えませんでした。

公式ページを確認したところ以下のような案内がありました。

弊社レンタルサーバにおいて、PerlMagick(ImageMagick)をご利用になることが出来ます。

ご利用方法
PerlMagick(ImageMagick)については、すでにインストール済みとなっているため、お客様で改めてインストール作業を行う必要はございません。そのままご利用になることが出来ます。

ん?インストールされており有効化のコードを書いても解決しない?

どうもimagickはPerlのみで使えるようで、PHPでは使うことが出来ない様子。

色々調べたのですが、2018年ごろまでに契約したサーバーだとcPanelからimagickを有効化して下さいとのこと。

cPanel > ソフトウェアの欄のPHP Selector > PHP Extensions > imagick

ここでチェックを入れることでimagickが有効化されるようですが、残念ながら僕が契約したのはもっと後の新しいサーバーのようでこの画面がありませんでした。

プラグインを試してみる

「ImageMagickエンジン」というプラグインをインストールしましたがダメでした。

まぁサーバー上にソフト自体がインストールされていない(制限されているのかも)ので当然ライブラリが使えるようになる訳ありません…

PerlMagickは読み込まれているはずなので、Wordpressのサイトヘルス画面に出るimagickとはPHP版のimagickということでしょうか。

結論

新しいサーバーのMixhostでは「1つ以上の推奨モジュールが存在しません」を消すことはできません。

まとめ

サーバー上にimagickがインストールされている場合にライブラリを有効化することで、サイトヘルスに出る「1つ以上の推奨モジュールが存在しません」を解決する方法でした。

先述の通り、GDライブラリで画像処理は問題ないので放置でOKです。
SEO的に不利になることもないでしょう。

「サイトヘルス画面上の1項目をご確認ください。」が出続ける...ただそれだけ...
エックスサーバーの場合は始めからインストール&有効化されているため、そもそもこの改善案が出ないみたいです。良いなぁ~(笑)

「サイトがPHPの古いバージョン(xx)を実行しており更新をおすすめします。」を解決する方法はコチラ。
【関連記事】
レンタルサーバーのcPanelを使ってPHPのバージョンを変更する方法。サイトが少し高速化するかも?

-Wordpress
-

© 2021 ソロ学