画像がアップロードできない
WordPressに画像をアップロードしようとしたら
「サーバーが画像を処理できません。このエラーは、サーバーが忙しいか、タスクを完了するために十分なリソースがない場合に発生します。小さな画像をアップロードすれば解決するかもしれません。推奨する最大サイズは2560ピクセルです。」
こんなエラーが出てしまいました。WordPressバージョンは6.7.1です。
原因はプラグインAutoptimizeでした。これを無効化したら解決しました。
ネットで調べたら
「パソコンを再起動しよう」
「サーバーを再起動しましょう」
とかなんの役にも立たない情報が出てきました。そんなの誰でもやってるわ!
他にも疑うべきこと
Autoptimizeを使っていないとか、無効化しても治らなかった場合、以下の3点をご確認ください。
①アップロードしようとしている画像のファイル名をローマ字にする
②画像の形式を見直す(JPGかWebpにする)
③WordPressのアップロード上限サイズを確認する
③の、アップロード上限を変更するやり方は有用です。
方法は3つありますが、いずれも慎重に作業してください。簡単に解説します。
WordPressのアップロードサイズ変更方法
方法1: テーマのfunctions.phpファイルを編集する
この方法は、PHPの基本的な知識があるユーザー向けです。
- バックアップを取る: functions.phpファイルを編集する前に、必ずWordPressサイト全体のバックアップを取ってください。問題が発生した場合に、サイトを元の状態に戻すことができます。
- functions.phpファイルにアクセスする: WordPressダッシュボードから「外観」→「テーマファイルエディタ」に移動します。使用しているテーマのfunctions.phpファイルを選択します。子テーマを使用している場合は、子テーマのfunctions.phpを編集します。
- コードを追加する: 以下のコードをfunctions.phpファイルの最後に追加します。
PHP
@ini_set( 'upload_max_size' , '64M' );
@ini_set( 'post_max_size', '64M');
@ini_set( 'max_execution_time', '300' );
upload_max_size
: アップロードできるファイルの最大サイズを指定します。上記の例では64MBに設定しています。post_max_size
: POSTデータとして送信できる最大サイズを指定します。upload_max_size
より大きいか同じ値に設定する必要があります。max_execution_time
: スクリプトの最大実行時間を秒単位で指定します。大きなファイルをアップロードする場合は、この値を大きくする必要があります。上記の例では300秒(5分)に設定しています。
- ファイルを保存する: 変更を保存し、ファイルをアップロードします。
注意: この方法で変更できる値には、サーバー側の設定による上限があります。サーバーで設定されている上限を超える値を設定しても、効果はありません。
方法2: .htaccessファイルを編集する
この方法も、.htaccessファイルの編集に関する基本的な知識があるユーザー向けです。
- バックアップを取る: .htaccessファイルを編集する前に、必ずWordPressサイト全体のバックアップを取ってください。
- .htaccessファイルにアクセスする: FTPクライアントまたはファイルマネージャーを使用して、WordPressのルートディレクトリにある.htaccessファイルにアクセスします。
- コードを追加する: 以下のコードを.htaccessファイルの最後に追加します。
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300
- 1 各パラメータの意味は、方法1のfunctions.phpファイルの場合と同じです。 1. wpzone.co wpzone.co
- ファイルを保存する: 変更を保存し、ファイルをアップロードします。
注意: この方法は、Apacheサーバーを使用している場合にのみ有効です。また、サーバーの設定によっては.htaccessファイルでの設定変更が許可されていない場合があります。
方法3: php.iniファイルを編集する (php.iniにアクセスできる場合のみ)
この方法は、サーバーのphp.iniファイルにアクセスできる場合のみ可能です。
共用サーバーでは多くの場合編集が許可されていません。専用サーバーやVPSを利用している場合に検討してください。
- php.iniファイルを見つける: php.iniファイルの場所はサーバー環境によって異なります。
phpinfo()
関数を実行することで、php.iniファイルのパスを確認できます。 - php.iniファイルを編集する: テキストエディタでphp.iniファイルを開き、以下の行を探して値を変更します。
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
- 各パラメータの意味は、方法1および方法2の場合と同じです。
- サーバーを再起動する: 変更を有効にするには、ウェブサーバー(ApacheやNginxなど)を再起動する必要があります。
注意: 誤った設定を行うと、サイトにアクセスできなくなる可能性があります。また、この変更はサーバー上のすべてのウェブサイトに影響を与える可能性があるので中級〜上級者向けです。初心者にはおすすめできません