WordPress 画像がアップロードできない
WordPressで画像やメディアファイルがアップロードできない問題の原因と解決方法を詳しく解説します。「HTTPエラー」「ファイルサイズが大きすぎます」などのエラーにも対応します。
⚠️ このような症状が出ていませんか?
- 画像をアップロードしようとすると「HTTPエラー」と表示される
- 「アップロードしたファイルを wp-content/uploads/ に移動できませんでした」と表示される
- 「ファイルサイズが大きすぎます」と表示される
- 画像を選択してもアップロードボタンが押せない
- アップロード中に止まってしまう
- 一部の画像だけアップロードできない
主な原因
1. uploadsフォルダのパーミッション問題
最も多い原因です。wp-content/uploads フォルダに書き込み権限がない場合に発生します。
2. PHPのアップロードサイズ制限
サーバーのPHP設定で、アップロード可能なファイルサイズに制限がかかっている場合です。
3. メモリ不足
画像処理に必要なメモリが不足している場合、特に大きな画像をアップロードする際に発生します。
4. プラグインの競合
セキュリティプラグインや画像最適化プラグインがアップロードを妨げている場合があります。
5. ファイル形式の問題
サポートされていないファイル形式、または破損したファイルをアップロードしようとしている場合です。
6. サーバーの制限
レンタルサーバー側でアップロードに制限がかかっている場合があります。
解決方法(優先度順)
uploadsフォルダのパーミッションを確認
最も効果的な解決方法です。uploadsフォルダに書き込み権限を付与します。
手順:
- FTPでサーバーに接続
/wp-content/uploads/フォルダを開く- uploadsフォルダを右クリック→「ファイル属性」または「パーミッション」
- パーミッションを「755」または「775」に設定
- 「サブディレクトリにも適用」にチェックを入れる
- 適用して再度アップロードを試す
PHPのアップロードサイズ上限を増やす
「ファイルサイズが大きすぎます」エラーの場合に有効です。
方法1: .htaccessを編集
- FTPで .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
- 保存してアップロード
方法2: wp-config.phpを編集
- wp-config.php に以下を追加:
@ini_set( 'upload_max_filesize' , '64M' );
@ini_set( 'post_max_size', '64M');
@ini_set( 'memory_limit', '256M' );
方法3: php.iniを編集(可能な場合)
- php.ini ファイルに以下を追加:
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
PHPメモリ上限を増やす
大きな画像を処理する際のメモリ不足を解消します。
手順:
- wp-config.php に以下を追加:
define('WP_MEMORY_LIMIT', '256M');
または
define('WP_MEMORY_LIMIT', '512M');
プラグインを無効化して確認
プラグインが原因かどうかを確認します。
手順:
- 「プラグイン」→「インストール済みプラグイン」
- すべてのプラグインを選択して「無効化」
- 画像アップロードを試す
- アップロードできれば、プラグインを一つずつ有効化して原因を特定
特に以下のプラグインが原因になることが多いです:
- セキュリティプラグイン(Wordfence、SiteGuardなど)
- 画像最適化プラグイン(EWWW、Smushなど)
- キャッシュプラグイン
画像ファイルを確認・最適化
ファイル自体に問題がある場合の対処法です。
確認ポイント:
- ファイル形式: JPG、PNG、GIF、WebPがサポートされています
- ファイル名: 日本語や特殊文字を使わず、半角英数字にする
- ファイルサイズ: 5MB以下に最適化(オンラインツールで圧縮)
推奨の画像最適化ツール:
- TinyPNG(https://tinypng.com/)- オンラインで簡単に圧縮
- Squoosh(https://squoosh.app/)- Googleの画像圧縮ツール
- Photoshop、GIMPなどの画像編集ソフト
画像エディターライブラリを変更
WordPressが使用する画像処理ライブラリを変更します。
手順:
- functions.php に以下を追加:
add_filter( 'wp_image_editors', 'change_graphic_lib' );
function change_graphic_lib($array) {
return array( 'WP_Image_Editor_GD', 'WP_Image_Editor_Imagick' );
}
または逆に:
add_filter( 'wp_image_editors', 'change_graphic_lib' );
function change_graphic_lib($array) {
return array( 'WP_Image_Editor_Imagick', 'WP_Image_Editor_GD' );
}
mod_securityの設定を確認
サーバーのmod_security(セキュリティモジュール)が原因の場合があります。
手順:
- .htaccess に以下を追加:
SecFilterEngine Off
SecFilterScanPOST Off
- 保存してアップロードを試す
- 解決したら、セキュリティのため必要最小限の設定に戻す
FTPで直接アップロード
WordPress管理画面からアップロードできない場合の回避策です。
手順:
- FTPで
/wp-content/uploads/年/月/フォルダを開く - 画像ファイルを直接アップロード
- WordPress管理画面で「メディアを追加」→「メディアライブラリ」
- アップロードした画像を選択して使用
現在のアップロード上限を確認する方法
WordPress管理画面から現在のアップロード上限を確認できます。
手順:
- 「メディア」→「新規追加」を開く
- 画面下部に「最大アップロードサイズ: XX MB」と表示される
- この値が小さい場合(2MB以下など)は、上限を増やす必要あり
または、「サイトヘルス」で確認:
- 「ツール」→「サイトヘルス」→「情報」
- 「サーバー」セクションを開く
- 「upload_max_filesize」「post_max_size」「memory_limit」を確認
予防策
1. 画像を事前に最適化
- アップロード前にオンラインツールで圧縮
- 適切なサイズにリサイズ(Web用は1920px幅程度で十分)
2. 画像最適化プラグインの導入
- EWWW Image Optimizer、Smush などを使用
- アップロード時に自動で圧縮
3. 定期的なバックアップ
- uploadsフォルダを定期的にバックアップ
- トラブル時に復元可能に
4. サーバー容量の確認
- レンタルサーバーの容量上限を確認
- 上限に達する前にプラン変更を検討
よくある質問
Q1. HTTPエラーと表示されます
A. uploadsフォルダのパーミッション問題、またはメモリ不足が原因です。パーミッションを755に設定し、メモリ上限を256M以上に増やしてください。
Q2. 最大アップロードサイズを増やせません
A. レンタルサーバーの管理画面から設定できる場合があります。それでも変更できない場合は、サーバー会社に問い合わせてください。
Q3. 特定の画像だけアップロードできません
A. ファイルが破損している、またはファイル名に日本語や特殊文字が含まれている可能性があります。ファイル名を半角英数字に変更し、必要に応じて画像を再保存してみてください。
Q4. PDFやZIPファイルもアップロードできません
A. セキュリティプラグインが特定のファイル形式をブロックしている可能性があります。プラグインの設定で許可するファイル形式を追加してください。
Q5. uploadsフォルダが見つかりません
A. まだ一度も画像をアップロードしていない場合、uploadsフォルダは自動生成されていません。FTPで /wp-content/ 内に「uploads」フォルダを新規作成し、パーミッションを755に設定してください。
まとめ
画像がアップロードできない時のチェックリスト
- ✓ uploadsフォルダのパーミッションを755に設定
- ✓ PHPのアップロードサイズ上限を64MB以上に増やす
- ✓ メモリ上限を256MB以上に設定
- ✓ プラグインを一時的に無効化して確認
- ✓ 画像ファイル名を半角英数字に変更
- ✓ 画像をオンラインツールで圧縮
- ✓ 解決したら、画像最適化プラグインを導入
画像アップロードエラーは、ほとんどの場合パーミッション設定またはファイルサイズ制限が原因です。このページで紹介した方法を順番に試してみてください。