コンテンツにスキップ

WordPressのアップロード上限を引き上げる5つの方法

カテゴリ:WordPress

WordPressでメディアファイルをアップロードしようとしたとき、「上限を超えています」というエラーに遭遇したことはありませんか? WordPressのデフォルトのアップロード上限はサーバー環境によって異なりますが、多くの場合2MB〜64MBに設定されています。この記事では、アップロード上限を引き上げる5つの方法をコード例付きで解説します。

注意:設定変更前に必ずバックアップを取得してください。また、共有ホスティングでは一部の方法が使えない場合があります。

現在の上限を確認する

まず、現在の設定を確認しましょう。WordPress管理画面の「メディア」→「新しいメディアファイルを追加」ページに、現在のアップロード上限が表示されています。また、「ツール」→「サイトヘルス」→「情報」→「サーバー」セクションでも、upload_max_filesizepost_max_size の値を確認できます。

方法1:wp-config.php で設定

最も手軽な方法です。WordPress のルートディレクトリにある wp-config.php に以下の行を追加します。

// wp-config.php に追加(「編集が必要なのはここまでです」の行の上に記述)
@ini_set('upload_max_filesize', '64M');
@ini_set('post_max_size', '64M');
@ini_set('max_execution_time', '300');
@ini_set('max_input_time', '300');

この方法は PHP の ini_set() を利用するため、サーバーの設定によっては反映されない場合があります。特に、php.ini でこれらの値が固定されている環境では効果がありません。

方法2:.htaccess で設定

Apache サーバーを使用している場合、.htaccess ファイルで PHP の設定を上書きできます。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
php_value memory_limit 256M

Nginx サーバーの場合は .htaccess が使えないため、サーバー設定ファイルで対応する必要があります。

# Nginx の設定(/etc/nginx/conf.d/ 配下)
client_max_body_size 64m;

方法3:php.ini で設定

サーバーの PHP 設定ファイルを直接編集できる場合、最も確実な方法です。php.ini(または .user.ini)に以下を記述します。

; php.ini に追記
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
max_input_time = 300
memory_limit = 256M

共有ホスティングでは php.ini を直接編集できないことがあります。その場合、WordPress のルートディレクトリに .user.ini を作成して同じ内容を記述すると反映される場合があります。

ポイント:post_max_sizeupload_max_filesize より大きい値に設定してください。post_max_size はフォームデータ全体の上限であり、ファイル本体に加えてフォームフィールドやオーバーヘッドも含まれます。

方法4:functions.php で設定

テーマの functions.php にフィルターを追加する方法です。テーマを更新すると設定が消えるため、子テーマまたはカスタムプラグインでの実装を推奨します。

// functions.php または カスタムプラグインに追加
@ini_set('upload_max_filesize', '64M');
@ini_set('post_max_size', '64M');

// WordPress のアップロードサイズフィルター
add_filter('upload_size_limit', function($size) {
    return 64 * 1024 * 1024; // 64 MiB
});

// マルチサイトの場合
add_filter('upload_size_limit', function($size) {
    return 64 * 1024 * 1024;
}, 20);

方法5:ホスティングパネルで設定

多くのレンタルサーバーやホスティングサービスでは、管理パネル(cPanel、Plesk、ConoHa、エックスサーバーなど)から PHP の設定を変更できます。

  1. ホスティングの管理パネルにログイン
  2. PHP設定、またはphp.ini設定のメニューを探す
  3. upload_max_filesizepost_max_size の値を変更
  4. 設定を保存し、必要に応じてPHPを再起動

この方法が最も確実で、サーバーレベルで設定が適用されるため、他の方法で上書きされる心配がありません。

設定が反映されないときの確認ポイント

  • Webサーバー(Apache/Nginx)を再起動したか
  • PHP-FPM を使っている場合、PHP-FPM も再起動したか
  • CDN やリバースプロキシがリクエストサイズを制限していないか
  • WordPress のマルチサイトでは、ネットワーク管理画面の設定が優先されることがある
  • post_max_sizeupload_max_filesize 以上になっているか

設定変更後のテスト

アップロード上限を変更したら、必ず実際のファイルでテストしましょう。DevLab では各サイズのテストファイルを提供しています。

まとめ

WordPressのアップロード上限を引き上げる方法は複数ありますが、サーバー環境によって使える方法が異なります。まずはホスティングパネルでの設定を試み、それが使えない場合は .htaccessphp.ini で対応しましょう。設定変更後は、DevLab のテストファイルを使って実際にアップロードが成功することを確認してください。

📚 関連記事

PNG vs WebP vs AVIF|画像フォーマットの選び方と変換方法

PNG / JPEG / WebP / AVIF の特徴・用途・ブラウザ対応状況を比較。picture 要素での出し分け、DevLab の画像フォーマット変換ツールの使い方も解説。

2026-04-18

Whois でドメイン情報を調べる方法|有効期限・ネームサーバー・登録者

Whois でわかること (登録者・有効期限・レジストラ・NS)、GDPR によるプライバシー保護の影響、ドメイン管理の実務的な使い方を解説。

2026-04-18

HTTP ステータスコード完全ガイド|よくあるエラーの原因と対処法

開発者が頻出する HTTP ステータスコード (200/301/302/400/401/403/404/413/422/429/500/502/503/504) の意味・原因・対処法を解説。301 vs 302 の SEO 影響、400 vs 422 の使い分けも。

2026-04-18

cURL コマンドを JavaScript fetch・Python requests に変換する方法|DevTools 連携

Chrome DevTools の Copy as cURL を fetch / axios / Python requests / PHP cURL / Go net/http に変換する手順を解説。主要 cURL オプション (-X / -H / -d / -F / -u / -b / -L) の変換パターン、認証トークンの扱い、注意点まで。

2026-04-16

Cookie のセキュリティフラグ完全ガイド|Secure / HttpOnly / SameSite / __Host-

Cookie のセキュリティ属性 Secure / HttpOnly / SameSite (Strict/Lax/None) / __Host- __Secure- プレフィックス / 4096 バイト制限を解説。CSRF / XSS / セッションハイジャック対策と、Laravel / Express の実装例。

2026-04-16

JWT のセキュリティベストプラクティス|alg none 攻撃 / 有効期限 / 署名検証

JWT (JSON Web Token) の代表的な脆弱性 6 種類 (alg none 攻撃 / 鍵混同 / 無期限トークン / payload への機密情報 / 失効不可 / 弱いシークレット) と対策。リフレッシュトークンパターン、失効リスト、HttpOnly Cookie 格納まで。

2026-04-16