WordPressのアップロード上限が低く設定されていると、サイズの大きなファイルやプラグイン、テーマをアップロードできないことがあります。画像や動画を多く扱うサイトにとっては厄介な制約になりえます。そのような状況では、WordPressまたはサーバー、あるいはその両方で最大アップロードサイズを引き上げる必要があります。
最大アップロードサイズを引き上げる方法は、ご利用のサーバーによって異なります。この記事では、WordPressの最大アップロードサイズを引き上げるさまざまな方法を取り上げ、それぞれの手順をご紹介します。
Kinstaをご利用のお客様へ
KinstaでWordPressサイトを作成すると、最大アップロードサイズは、PHPとWordPressの両方で128MBに設定されます。この上限を引き上げる必要がある場合は、MyKinstaからチャットにてお知らせください。
本記事でご紹介する方法では、Kinstaの最大アップロードファイルサイズをお客様ご自身で引き上げることはできません。ただし、以下にご紹介するBig File Uploadsプラグインを使用すれば、大きなファイルを分割してアップロードし、サーバー上で再結合することで、アップロード上限を回避することは可能です。
WordPressのファイルアップロードサイズ上限とは
大きなファイルのアップロードは、サーバーのリソースを大量に消費します。サーバーのタイムアウトが発生するのを防ぐために、WordPressのファイルアップロードサイズ上限の初期設定は、通常4〜128MBに設定されています。最大アップロードサイズは通常、サーバーによってサーバーレベルで設定されます。
WordPressにもこの上限を定義する定数が存在しますが、一般にサーバーレベルの設定を上書きすることはできません。
上限を確認するには、WordPressサイトのメディアライブラリを開きます。ここで最大アップロードサイズを超えるファイルをアップロードしようとすると、以下のようなエラーメッセージが表示されます。

WordPressの最大アップロードサイズを確認する方法
最大アップロードサイズを確認する方法はいくつかあります。
メディアライブラリから
サイトの最大アップロードサイズはまず、WordPress管理画面の「メディア」>「ライブラリ」で確認できます。「メディアファイルを追加」をクリックすると、アップロードエリアが表示され、その下に最大アップロードサイズが表示されます。

上の例(Kinstaでホスティングするサイト)では、最大アップロードサイズが128MBであることがわかります。
「メディア」>「メディアファイルを追加」でも同様に確認できます。

サイトヘルスから
WordPress 5.2以降は、より効率的にWordPressサイトをデバッグできるよう、サイトヘルス機能が追加されています。この画面の「情報」タブでサーバーやWordPressの設定に関するほぼすべての情報を確認できます。
最大アップロードサイズは、サーバーとWordPressの両方で扱われるため、「メディア処理」および「サーバー」ドロップダウンから確認できます。


ちなみに、「サーバー」ドロップダウンでは、以下のようなPHPに関する数値も確認できます。
- PHP POST サイズ上限:POSTリクエストのアップロード上限を定義
- PHP メモリ上限:PHPに割り当てられたメモリを定義(最大アップロードサイズと同じ値またはそれ以上に設定されているはず)
これらの設定は、利用しているレンタルサーバーによって決まります。一般的に、初心者向けプランでは、エンタープライズ向けプランよりもアップロードサイズの上限が低く設定されています。サーバーによっては、この上限を自分で変更できる場合もありますが、多くの場合、上限を引き上げるにはサポートへの問い合わせが必要です(場合によってはプランのアップグレードも必要)。
WordPressの最大アップロードサイズを引き上げる10の方法
それでは、本題である最大アップロードサイズを引き上げる方法を見ていきましょう。簡単な方法から順にご紹介していきます。
1. サーバーのサポートに問い合わせる

日本語をはじめとした8言語に対応しています。
2. マルチサイトの最大アップロードサイズを引き上げる
WordPressのマルチサイトを運営している場合は、マルチサイト全体のファイルアップロードサイズ上限を引き上げることができます。
「サイトネットワーク管理者」の管理画面から「設定」>「サイトネットワーク設定」を開き、「アップロード設定」の「アップロードファイル最大サイズ」という項目を探します。

マルチサイトの最大アップロードファイルサイズは、デフォルトで1500 KB (~1.5 MB)になっています。これをより大きな値に変更し、「変更を保存」をクリックして保存します。
補足)サーバーレベルで設定された最大アップロードサイズをここで書き換えることはできません。サーバーで設定された上限を超える値を設定しても、無効になります。サーバーの設定値は、上記でご紹介した手順で確認可能です。
3. .htaccessファイルを更新する
サーバーがApacheを利用している場合、サイトの.htaccessファイルを編集して、最大アップロードサイズを引き上げることができます。.htaccessファイルはWordPressサイトのルートディレクトリに格納されています。
PHPのドキュメントによると、WordPressでのアップロード処理には、以下3つのPHPディレクティブが関係しています。
upload_max_filesizepost_max_sizememory_limit
これらについては、先ほどの「サイトヘルス」の「サーバー」ドロップラウンでも触れましたが、アップロードするファイルのサイズに合わせて、この3つのディレクティブの値を変更する必要があります。たとえば、アップロードする最大ファイルサイズが32MBの場合は、以下の設定を推奨します。
upload_max_filesize = 32Mpost_max_size = 64Mmemory_limit = 128M
いずれの値も、MBではなくMを使用している点に注意してください。PHPのディレクティブでは、このように表記します。
アップロード時には、ファイルそのものに加えて追加の情報も送信されるため、アップロードに関連するその他のディレクティブには、ある程度余裕を持たせておくことをおすすめします。詳しくは、WordPressのPHPメモリ上限を引き上げる方法をご覧ください。
FTP/SFTP、またはご利用のサーバーのファイルマネージャーを使用して、.htaccessファイルにアクセスします。

テキストエディターやコードエディターで.htaccessファイルを開き、以下のコードを追加します。
php_value upload_max_filesize 32M
php_value post_max_size 64M
php_value memory_limit 128M
php_value max_execution_time 300
php_value max_input_time 300
上記のコードには、max_execution_timeとmax_input_timeという2つのPHPディレクティブもあります。これらは、サーバーが1つのPHP処理に費やすことのできる時間を定義するものです。アップロードするファイルが大きいほど処理に時間がかかるため、用途に応じて適切な値を設定してください。
4. php.iniファイルを作成もしくは変更する
php.iniファイルでは、PHPの初期設定への変更を定義することができます。一般的には、ファイルのタイムアウト、最大アップロードサイズ、リソースの上限などを定義するディレクティブが含まれます。
SSHもしくはFTPを利用し、WordPressのルートディレクトリからphp.iniファイルを探します。見当たらない場合は、新たにサイトのルートディレクトリ内に作成してください。

コードエディターもしくはテキストエディターを使って、以下をphp.iniファイルに記述します。
upload_max_filesize = 32M
post_max_size = 64M
memory_limit = 128M
変更を加えた後は、忘れずにファイルを保存してください。一部のレンタルサーバーではこの方法でPHPの設定を変更できないことがあります。その場合は、次にご紹介する方法をお試しください。
5. .user.iniファイルを作成もしくは変更する
利用中のサーバーがPHPの共通設定の変更を制限している場合、php.iniファイルではなく .user.iniファイルでサーバーの設定をしている可能性があります。
php.iniや.htaccessファイルと同様に.user.iniもまたサイトのルートディレクトリ内にあります。見つからない場合は、そこに新たな.user.iniファイルを作成します。手順はphp.iniファイルを作成する場合と同じです。
以下のコードを.user.iniファイルに貼り付けます。
upload_max_filesize = 32M
post_max_size = 64M
memory_limit = 128M
このとおりファイル名が異なるだけで、内容は前の方法とほぼ同じです。
6. cPanelを介してPHPの設定を変更する
利用中のサーバーが、管理やサイト設定にcPanelを採用している場合は、cPanelから最大アップロードサイズを変更できます。
まずcPanelのコントロールパネルを開き、「ソフトウェア」から「Select PHP Version(PHPバージョンの選択)」を選びます。

この画面でサーバーのPHPバージョンを変更したり、PHPの拡張機能を有効もしくは無効にしたりできます。ナビゲーションメニューから「Options」をクリックし、「PHP Options」を開きます。

下へスクロールし、upload_max_filesize、post_max_size、memory_limit、max_execution_time、max_input_timeなどのPHPディクティブの値を変更します。ここで設定できる最大値はサーバーによって異なります。

この値が気になる場合は、サーバーのサポートに問い合わせることをおすすめします。最新のcPanelでは変更は自動で保存されるため、ボタンのクリックなどは不要です(旧バージョンの場合は、「Save Changes(変更を保存)」をクリックして保存してください)。
7. Nginxで最大アップロードサイズを引き上げる
NginxもまたApacheと同じくウェブサーバーですが、性能はApacheを大きく上回ります。通常、NginxはApacheよりも多くの同時リクエストを処理することができるため、大幅に高速です。KinstaのWordPress専用マネージドクラウドサーバーでは、Nginxを利用しています。
WordPressサイトでNginxを使用している場合、php.iniとnginx.confファイルの両方を編集する必要があります。
upload_max_filesize = 64M
post_max_size = 128M
sudo service php7.4-fpm restart
繰り返しになりますが、正確なコードは、サーバーにインストールされているPHPのバージョンによって多少異なる場合があります。
次に、Nginxのclient_max_body_sizeディレクティブを使用して、新しい最大アップロードサイズを設定します。このディレクティブは、/etc/nginx/nginx.confにあるnginx.confファイルで指定します。
このディレクティブは、http {...}、server {...}、またはlocation {...}ブロック内で指定できます。
httpブロック内で設定すると、そのサーバーでホストされているすべてのサイトやアプリケーションに適用されます。
http {
...
client_max_body_size 128M;
}
serverブロック内で指定すると、そのサーバーでホストされている特定のサイトやアプリケーションにのみ適用されます。
server {
...
client_max_body_size 128M;
}
locationブロック内で指定すると、サイトやアプリケーション内の特定のディレクトリ(filesやuploadsなど)にのみ適用されます。
location /files {
...
client_max_body_size 128M;
}
ファイルを保存したら、変更を反映するためにNginxを再起動することを忘れないでください。再起動するには、ターミナルで以下のコマンドを実行します。
sudo service nginx reload
Kinstaをご利用の場合、Nginxの設定に直接アクセスすることはできません。カスタマーサポートまでご連絡いただけましたら、スタッフが必要な変更を行います。
8. WordPressの「upload_size_limit」フィルターを利用する
WordPress 2.5では、php.iniで許可されている最大アップロードサイズをフィルタリングするupload_size_limitフィルターが導入されました。WordPressでも、メディアライブラリやサイトヘルス情報の画面などで、許可されている最大アップロードサイズを表示するためにこのフィルターが使用されています。
以下は、WordPressコントリビューターのDrew Jaynes氏による、このフィルターの使用例です。管理者以外のすべてのユーザー権限に対して、アップロードサイズの上限を設定しています。
/**
* Filter the upload size limit for non-administrators.
*
* @param string $size Upload size limit (in bytes).
* @return int (maybe) Filtered size limit.
*/
function filter_site_upload_size_limit( $size ) {
// Set the upload size limit to 10 MB for users lacking the 'manage_options' capability.
if ( ! current_user_can( 'manage_options' ) ) {
// 10 MB.
$size = 1024 * 10000;
}
return $size;
}
add_filter( 'upload_size_limit', 'filter_site_upload_size_limit', 20 );
9. WordPressプラグインを使用する
SSHやFTP/SFTPを使ってコードを操作する方法は、誰にでも適しているわけではありません。コードの記述や編集に慣れていない場合は、代わりにWordPressプラグインを使用することもできます。
WordPressには、PHPで設定された最大アップロードファイルサイズの範囲内で、WordPress側のファイルサイズ上限を管理できるプラグインが複数あります。Big File Uploadsプラグインでは、大容量ファイルを分割してアップロードし、サーバー側で再結合することで、この上限を回避できます。

Big File Uploadsをインストールすると、プラグインの設定画面で、分割アップロード方式で許可する最大ファイルサイズを設定できます。ユーザー権限ごとに異なる上限を設定することも可能です。

この例では、Big File Uploadsを使用することで、WordPressのメディアライブラリに最大アップロードファイルサイズが1GBと表示されています。

10. FTP/SFTPを介してファイルをアップロードする
ここまでご紹介した方法を試してもうまくいかない場合や、サーバーに最大アップロードファイルを引き上げてもらえない場合は、FTP/SFTPを使って大容量ファイルをアップロードすることもできます。

大量の大容量ファイルをアップロードする場合は、この方法が最も効率的です。WordPressのメディアライブラリにファイルを一括アップロードする手順はこちらをご覧ください。
FTP/SFTP経由でアップロードしたファイルがWordPressに認識されないことがあります。その場合は、無料のAdd From Serverプラグインを使用して、アップロードしたファイルをWordPressにインポートできます。
また、コマンドラインからWP-CLIを使用して画像をインポートすることも可能です。wp media importコマンドを使用すると、ローカルファイルやURLから添付ファイルを作成できます。
どの方法もうまくいかない場合
上記の方法を試しても、WordPressのファイルアップロード上限が変更されない場合、よくある原因として以下が考えられます。
.htaccessまたはphp.iniの変更が反映されない
PHP は設定ファイルをキャッシュします。php.iniまたは.user.iniを編集した後は、Nginxサーバーの場合は PHP-FPM を再起動(sudo service php8.2-fpm restart)し、Apacheの場合は、Apacheを再起動してください。共用サーバーを利用している場合は、サーバーに連絡し、PHP 設定の再読み込みを依頼してください。
.htaccessの編集後に「500 Internal Server Error」が発生する
サーバーがCGI モードでPHPを実行している可能性があります。CGI モードでは、.htaccessのphp_valueディレクティブはサポートされていません。追加した行を削除し、代わりにphp.iniまたは.user.iniを使用する方法を試してください。
サイトヘルス画面には変更後の上限が表示されるが、エラーが引き続き発生する
PHP の3つの値がすべて正しく更新されていることを確認してください。よくあるのが、upload_max_filesizeの値だけを引き上げ、post_max_sizeがアップロードするファイルサイズよりも小さいままになっているケースです(この場合、アップロードは失敗します)。post_max_sizeは必ずupload_max_filesizeよりも大きな値に設定し、memory_limitはpost_max_size以上に設定する必要があります。
サーバープランに変更できない上限が設定されている
一部の共用サーバーでは、設定ファイルから変更できない PHPのアップロード上限がインフラレベルで設定されています。自分で試せる方法がどれもうまくいかない場合は、サーバーに直接問い合わせ、上限の引き上げを依頼してください。
対応してもらえない場合は、WordPress用マネージドサーバーへの移行を検討するのも一つの手です。Kinstaのデフォルトのアップロード上限は128MBで、ご希望に応じてさらに引き上げることも可能です。
超大型ファイルをアップロードできない
数百MBを超えるファイルの場合は、WordPressのアップローダーではなく、FTP/SFTPを使用してください。
特に動画ファイルについては、YouTube、Vimeo、または動画配信用CDNを利用する方がほとんどの場合に適しています。アップロード上限の問題を完全に回避できるだけでなく、サイトのパフォーマンス向上にもつながります。
新たに設定したWordPressの最大アップロードサイズを確認する
最後に、WordPressサイトに新しい最大アップロードファイルサイズが反映されているか確認しましょう。確認するには、上記でご紹介したWordPressの最大アップロードファイルサイズを確認する手順と同じ方法を使用します。
WordPress管理画面のメディアライブラリに移動し、最大アップロードファイルサイズが変更されているか確認してください。

また、先ほど触れた「ツール」>「サイトヘルス」の「情報」タブにある「メディア処理」および「サーバー」ドロップダウンからも確認できます。


まとめ
ここまで見てきたように、WordPressの最大アップロードサイズを引き上げるのは、それほど難しくありません。画像や動画を多用するポートフォリオサイトを構築する場合でも、サイズの大きなテーマをインストールする場合でも、設定箇所と使用するコマンドやツールさえ把握しておけば対応できます。
ほとんどの場合は、ご利用中のサーバーに連絡することで解決できます。対応してもらえなかった場合は、別のサーバーに移行する前に、今回ご紹介したその他の方法を試してみてください。