tkitdoi
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: PDFアップロード時のエラーご教示いただきありがとうございます。
wp-includes/media.phpの関数「_wp_image_editor_choose」において、
call_user_func( array( $implementation, ‘test’ ), $args )
の処理では、
imagickがインストールされていない場合、
$implementationがWP_Image_Editor_Imagickの場合、false
$implementationがWP_Image_Editor_GDの場合、truecall_user_func( array( $implementation, ‘supports_mime_type’ ), $args[‘mime_type’]
の処理(※)では、
$implementationがWP_Image_Editor_Imagickかつ$args[‘mime_type’]がapplication/pdfの場合、true
$implementationがWP_Image_Editor_GDかつ$args[‘mime_type’]がapplication/pdfの場合、false結果、_wp_image_editor_chooseの返り値として、
imagickがインストールされている場合、
WP_Image_Editor_Imagickが返されることになりました。下記ページの「9. Imagickと共有ホスティング会社のパフォーマンス異常を処理する」セクションで紹介されている「function.php」への追記処理は、配列「$editors」の要素の順番を入れ替える(WP_Image_Editor_GDを先に持ってくる)処理だと思いますが、$implementationがWP_Image_Editor_GDかつ$args[‘mime_type’]がapplication/pdfの場合は、(※)の処理でfalseとなってしまい、結局その後の要素「WP_Image_Editor_Imagick」が_wp_image_editor_chooseの返り値として採用されてしまうと認識しました。
そして、私がレンタルしているサーバーでは、Imagickが正しく動作しない(※2)ので、問い合わせのエラーが発生してしまっているのではないかと考えました。((※2)の理由はまだわかっていません。)https://kinsta.com/jp/blog/wordpress-http-error/
ですので、function.phpに下記を追記して、対処することにしました。(配列「$editors」から「WP_Image_Editor_Imagick」を消すfunctionを定義)
———————————
function wpb_image_editor_delete_imagemagick( $editors ) {
$gd_editor = ‘WP_Image_Editor_GD’;
$im_editor = ‘WP_Image_Editor_Imagick’;
$editors = array_diff( $editors, array( $im_editor ) );
array_unshift( $editors, $gd_editor );
return $editors;
}
add_filter( ‘wp_image_editors’, ‘wpb_image_editor_delete_imagemagick’ );
———————————現時点では、この処置によって、問い合わせのエラーは発生しなくなっております。
(※2)の理由をもう少し追求してみたいと思います。
- この返信は2年、 9ヶ月前にtkitdoiが編集しました。
フォーラム: 使い方全般
返信が含まれるトピック: PDFアップロード時のエラー連続投稿にて失礼致します。
調べたところ、
phpinfoにてimagickに関する情報が表示される場合のみエラーが発生するようです。
WordPressを使用しているレンタルサーバーでは、phpのバージョンを任意に変更でき、
php7.3,php7.4を選択した時のみ、phpinfoの情報に「imagick」に関する情報が表示されます。php8.0やphp5.6なども選択でき、その場合は、imagickに関する情報が表示されません。
(imagickが無効であると認識しております)なお、どのphpバージョンを選択した時でも、GDはサポートしております。
おそらく、WordPressのpost.phpにて、ファイルをアップロードする際に、
PDFファイルなどからサムネイル画像を作成する処理が動作し、
imagickが使用された時のみ、サムネイル作成に失敗しているのではないかと推測致しました。レンタルサーバーの運営元に、imagickを無効化できないか確認してみようと思います。
同時に、imagickを使用しないように、WordPressの設定やphpファイルの編集などで対応できるか
確認したいと考えております。フォーラム: 使い方全般
返信が含まれるトピック: PDFアップロード時のエラーご教示いただきありがとうございます。
いただいた内容を参考に、
デバッグモードを有効にして、試してみました。すると、今回発生している問題の操作を行なった場合は、
デバッグログに情報は出力されず、
別の問題を発生させると(wp-config.phpに誤った記述をする)、
デバッグログに情報が出力されました。この場合は、phpエラーの確認の前に、Apacheのエラーログを確認することも有効でしょうか?
また、先ほど確認してみると、
問題の発生時に、Google Chromeのコンソールログを展開すると、下記の情報も
記録されておりましたので、書き込ませていただきます。
———————————POST https://ocean-test.valuesv.jp/wp-admin/async-upload.php 500 (Internal Server Error) `moxie.js?ver=1.3.5:7173 POST https://ocean-test.valuesv.jp/wp-admin/async-upload.php 500 (Internal Server Error)
send @ moxie.js?ver=1.3.5:7173
exec @ moxie.js?ver=1.3.5:2247
shimExec @ moxie.js?ver=1.3.5:2417
exec @ moxie.js?ver=1.3.5:2435
exec @ moxie.js?ver=1.3.5:5369
_doXHR @ moxie.js?ver=1.3.5:5407
send @ moxie.js?ver=1.3.5:5058
uploadNextChunk @ plupload.js?ver=2.1.9:1522
onUploadFile @ plupload.js?ver=2.1.9:1559
dispatchEvent @ plupload.js?ver=2.1.9:2107
trigger @ moxie.js?ver=1.3.5:2070
uploadNext @ plupload.js?ver=2.1.9:933
start @ plupload.js?ver=2.1.9:1865
(anonymous) @ wp-plupload.js?ver=5.8.2:399
dispatchEvent @ plupload.js?ver=2.1.9:2107
trigger @ moxie.js?ver=1.3.5:2070
(anonymous) @ plupload.js?ver=2.1.9:2017
(anonymous) @ moxie.js?ver=1.3.5:249
setTimeout (async)
(anonymous) @ plupload.js?ver=2.1.9:1989
(anonymous) @ moxie.js?ver=1.3.5:249
(anonymous) @ plupload.js?ver=2.1.9:1940
(anonymous) @ plupload.js?ver=2.1.9:696
(anonymous) @ plupload.js?ver=2.1.9:1939
callNext @ moxie.js?ver=1.3.5:247
(anonymous) @ moxie.js?ver=1.3.5:249
(anonymous) @ plupload.js?ver=2.1.9:1940
(anonymous) @ plupload.js?ver=2.1.9:717
(anonymous) @ plupload.js?ver=2.1.9:1939
callNext @ moxie.js?ver=1.3.5:247
(anonymous) @ moxie.js?ver=1.3.5:249
(anonymous) @ plupload.js?ver=2.1.9:1940
(anonymous) @ plupload.js?ver=2.1.9:677
(anonymous) @ plupload.js?ver=2.1.9:1939
callNext @ moxie.js?ver=1.3.5:247
inSeries @ moxie.js?ver=1.3.5:253
filterFile @ plupload.js?ver=2.1.9:1945
(anonymous) @ plupload.js?ver=2.1.9:1980
callNext @ moxie.js?ver=1.3.5:247
inSeries @ moxie.js?ver=1.3.5:253
addFile @ plupload.js?ver=2.1.9:2014
fileInput.onchange @ plupload.js?ver=2.1.9:1089
(anonymous) @ moxie.js?ver=1.3.5:2086
(anonymous) @ moxie.js?ver=1.3.5:2020
callNext @ moxie.js?ver=1.3.5:247
inSeries @ moxie.js?ver=1.3.5:253
dispatchEvent @ moxie.js?ver=1.3.5:2025
trigger @ moxie.js?ver=1.3.5:2070
onChange @ moxie.js?ver=1.3.5:6610`