WordPressでPDFのサムネイルが生成されなくて困ってたけど、あっさり解決した話~さくらレンタルサーバーの場合~

WordPressで運営しているサイトで、ある日突然PDFのサムネイルが表示されなくなって困った!という声がかかりました。
もともとそのサイトはPDFファイルをアイキャッチ画像にも設定するために、PDF Image Generator(PDFイメージジェネレーター)というプラグインを使っていました。
このプラグイン、どうやらPDFのサムネイルが生成されないとアイキャッチ画像に設定できないらしく、困りました…。
昔はできていたのに、なぜ!?という状態だったので、いろいろと調べてみました。
あまり自分が詳しくない領域のお話なので、今回はこれでうまくいったよ!ということで、誰かのためになれば幸い。

目次
現状、PDFをアップロードしてもサムネイルが生成されない
ImageMagickは脆弱性があるので、レンタルサーバーによって機能制限されている!?
ImageMagickをさくらレンタルサーバーで使う

現状、PDFをアップロードしてもサムネイルが生成されない

メディアライブラリにPDFファイルをアップロードしてみても、昔はPDFファイルの1枚目がJPG変換されていたのに…PDFのアイコンしか表示されず。

 

この時の環境はWordpress(バージョンは 5.2.3)、サーバーはさくらレンタルサーバー
プラグインとして前述のPDFを画像に変換してくれるPDF Image Generator(PDFイメージジェネレーター)を使用。
※必死にPDF Image Generatorの情報で検索してみたけど情報があまりなくて、なぜみんな苦しんでないのか…というのが疑問だったのですが、あんまりみんな苦しんでないのかな…?
そもそもこのPDF Image Generatorというプラグインには以下のような説明があります。

アップロードしたPDFからimageMagickを用いて自動的に表紙のサムネイルを作成します。画像付きのPDFリンクのエディターへの挿入を可能にします。また、PDF画像をアイキャッチ画像にを設定したり、画像ファイルと同じように扱うことを可能にします。

この、ImageMagickが怪しい…と思い色々調べてみるとこんな情報が。

ImageMagickは脆弱性があるので、レンタルサーバーによって機能制限されている!?

脆弱性の関係で、一部機能を制限されたのが原因???
画像を変換するソフトがPDF→JPEG変換できていないからPDFのサムネイルが生成されなくなった…?

というわけで、さくらレンタルサーバーの場合はこのImageMagickを使えれば解決しそう!というところにまでたどり着き、いろいろ調べていると1行php.iniに書き足したら解決しました(笑)
ちなみにロリポップはそもそもPDFファイルの変換が制限されているので無理そうです…。

 

以下、設定の流れです。

ImageMagickをさくらレンタルサーバーで使う

1.サーバーにログインする

まず、コントロールパネルを開き、ログインします。

2.php.ini情報を編集

ログインしたら、スクリプト設定>php.ini編集を選択します。

 

php.iniファイルの中身を編集します。
テキストボックスの中に、「extension=imagick.so」を入力して保存するをクリックします。

※誤った設定をすると想定外の動作をする可能性もあるため、設定は慎重に行いましょう。

3.PDFファイルをアップロードしてみる

WordPressのサイトに戻り、再度メディアライブラリにPDFファイルをアップロードしてみます。

サムネイルが表示されました!!!

こうなればこっちのものです!(笑)

ちなみに、アイキャッチに設定する必要がなければ、PDF Image Generatorのプラグインは不要です。プラグインがなくてもサムネイルは生成されます。
もし、表示されているサムネイル画像が欲しい場合にはファイル詳細から、画像のURLをコピーします。コピーしたブラウザにコピペすると、変換されたJPEG画像が表示れます。

 

また、やりたかったPDFファイルをアイキャッチ画像に設定することですが、サムネイルが表示されているPDFファイルであればサムネイルに設定でき、アイキャッチ画像として表示されました!
※PDFファイルをアイキャッチ画像に設定するにはPDF Image Generatorのプラグインがインストール+有効化されていることが必須です
ロリポップやエックスサーバーなど他のサーバーの状態はわからないのですが、とりあえず私の環境ではphp.iniを編集することで解決しました。
できたことが急にできなくなると焦りますね…