###前提・実現したいこと
WordpressにPDFを添付するカスタムフィールドがあり、
ImageMagickでPDFからサムネイル画像を作成するということを行っていたのですが、
今回サーバー移行をしたところサムネイル画像が作成されなくなりました。
バージョンの違いで記述方法が違ったりするのでしょうか?
何かご存知の方がいらっしゃいましたらをご教示ください。
よろしくお願いいたします。
###サーバー環境
■サーバー移行前
PHP Version:5.2.0
Imagick module version:2.1.1-rc1
ImageMagick version:ImageMagick 6.2.4 07/28/09 Q16
■サーバー移行後
PHP Version:5.4.0
Imagick module version:3.1.0RC2
ImageMagick version:ImageMagick 6.7.8-9 2016-05-09 Q16
###該当のソースコード
<?php $filefield = get_imagefield('photo_file'); $imagefield = get_imagefield('photo_image'); $attachment = get_attachment_object($imagefield['id']); $file_path = $filefield['url']; $new_width = x150; $out_file_name = $filefield['id']; $out_file_path = 'wp/wp-content/themes/original/thumb/out_' . $out_file_name . '.jpg'; if(post_custom('photo_file') == true) : //PDFのサムネイル画像がある場合 if(file_exists($out_file_path) == true) : echo '<a href="' . $filefield['url'] . '"><img src="' . get_bloginfo("template_url") . '/thumb/out_' . $out_file_name . '.jpg" /></a>'; //PDFのサムネイル画像がない場合 elseif(file_exists($out_file_path) == false) : $command = '/usr/bin/convert ' . $file_path . '[0] -thumbnail ' . $new_width . ' -quality 90 ' . $out_file_path; shell_exec($command); echo '<a href="' . $filefield['url'] . '"><img src="' . get_bloginfo("template_url") . '/thumb/out_' . $out_file_name . '.jpg" /></a>'; endif; //PDF以外の画像がある場合 elseif(post_custom('photo_file') == false && post_custom('photo_image') == true) : echo '<a href="' . $imagefield['url'] . '"><img src="' . $imagefield['url'] . '" /></a>'; //画像が挿入ない場合 else : echo '<img src="' . get_bloginfo("template_url") . '/images/noimg.gif" />'; endif; ?>
###表示される内容
<a href="http://www.hogehoge.com/wp/wp-content/uploads/2017/06/hoge.pdf"> <img src="http://www.hogehoge.com/wp/wp-content/themes/original/thumb/out_0001.jpg"> </a> ```「hoge.pdf」をアップして確認すると画像は表示されておらず、 「thumb」ディレクトリには「out_0001.jpg」という画像作成されていませんでした。 ディレクトリのパーミッションは707です。 ###補足 サーバーはホスティングです。 パーミッションはサーバー移行前のものに合わせています。 PHP実行ユーザーとディレクトリのオーナーをサーバー側に確認したところドメイン名でした。 本文内「表示される内容」のhogehogeの部分です。 移行前のサーバーは下記の通りです。 PHP実行ユーザー: www-data ディレクトリオーナー: ドメイン
回答2件
あなたの回答
tips
プレビュー