WordPress でアップロードできるファイルの最大サイズは、WordPress の設定ではなく、サーバーの PHP の設定 upload_max_filesize と post_max_size の小さい方で決まります。変えるには、この二つ(あわせて memory_limit)を、サーバー会社の管理画面か、php.ini・.user.ini・.htaccess のどれかで上げます。エックスサーバーならサーバーパネルの「php.ini設定」、さくらのレンタルサーバならコントロールパネルの「スクリプト設定」→「php.ini設定」です。値は memory_limit ≧ post_max_size ≧ upload_max_filesize の順にそろえます。
この記事は、WordPress と PHP の公式の説明、エックスサーバーとさくらのレンタルサーバの公式マニュアルを、2026年11月14日に確かめた範囲で書いています。サーバー会社ごとの手順は、その会社の公式マニュアルで確かめられた2社だけを書きました。それ以外のサーバーは、各社のマニュアルで「php.ini」を探してください。
この記事の結論
- 今の上限は、「メディア」→「新規追加」の画面の下か、「ツール」→「サイトヘルス」→「情報」→「サーバー」で分かります。
- 上限を決めているのは
upload_max_filesizeとpost_max_sizeです。片方だけ上げても、小さい方で止まります。 - サーバー会社の管理画面に PHP の設定があれば、そこで変えるのがいちばん安全です。
- wp-config.php や functions.php に書いても、この二つは変わりません。
今の上限を確かめる
WordPress.org の説明(メディアの新規追加の画面)では、この画面の下に、ホスティング会社が設定したアップロードの最大サイズが出ます。もう一つは「ツール」→「サイトヘルス」→「情報」の「サーバー」の欄で、アップロードの最大サイズなど PHP の値が並びます。変える前と変えたあとに、ここを見比べます。
上限を決めている PHP の設定
WordPress の開発者向けの説明では、WordPress は upload_max_filesize と post_max_size を読み取り、小さい方を最大サイズにしています(wp_max_upload_size() という関数)。それぞれの意味は、PHP の公式マニュアルでは次のとおりです。
- upload_max_filesize:アップロードされるファイルの最大サイズ。PHP の初期値は 2M です。
- post_max_size:一回の送信(POST)で受け付けるデータの最大サイズ。ファイルのアップロードにも効きます。初期値は 8M で、大きなファイルを送るには
upload_max_filesizeより大きくする必要があります。これを超えると、送ったデータそのものが空として扱われます。 - memory_limit:一つのプログラムが使えるメモリーの上限。初期値は 128M で、一般に
post_max_sizeより大きくする必要があるとされています。
サーバー会社によって初期値は違うので、上の数字は PHP 自体の初期値です。単位は「M」(メガ)で書きます。さくらのレンタルサーバのマニュアルでも、「MB」ではなく「M」で書くよう注意されています。
PHP の公式マニュアルでは、upload_max_filesize と post_max_size は変更できる場所が「INI_PERDIR」とされています。php.ini・.htaccess・httpd.conf・.user.ini では変えられますが、動いている途中のプログラムからは変えられません。wp-config.php などに ini_set と書いても効かないのはこのためです。
エックスサーバーで変える
エックスサーバーの公式マニュアル(php.ini設定について)では、次の手順です。
- サーバーパネルにログインし、設定するドメインを選びます。
- 「php.ini設定」を開きます。
- 「php.ini設定変更」で項目ごとに値を変えるか、「php.ini直接編集」で書き換えて保存します。
マニュアル(php.ini設定で設定可能な項目について)では、upload_max_filesize・post_max_size・memory_limit などが設定できる項目に挙がっています。また、この機能で設定した php.ini が優先して使われること、「Xアクセラレータ Ver.2」を使っていると一部の項目が無効になることが書かれています。設定はドメインごとなので、別のドメインを選んだまま変えていないかも見ます。
さくらのレンタルサーバで変える
さくらのサポート情報(php.iniの設定内容を変更したい)では、次の手順です。
- サーバーコントロールパネルに、初期ドメインか追加したドメインとパスワードでログインします(メールアドレスでログインすると、メールの設定しか出ません)。
- 「スクリプト設定」→「php.ini設定」を開きます。
- 入力欄に設定を書き、「保存する」を押します。
サポート情報に載っている書き方の例は次のとおりです。数値は一例で、使い方に合わせて決めるよう書かれています。
memory_limit = 128M
post_max_size = 8M
upload_max_filesize = 5M
同じページでは、三つの値を memory_limit ≧ post_max_size ≧ upload_max_filesize の関係にすること、共用のサーバーなので「G」(ギガ)の単位は勧めず、大きすぎる値は不具合の元になりうることが注意されています。PHP 8 以降は、さくらの決まった設定に、ここに書いた設定が足される形で反映されます。
管理画面に設定がないサーバー:php.ini・.user.ini・.htaccess
サーバー会社の管理画面で変えられない場合は、ファイルに書きます。どれが使えるかは、PHP がサーバーでどう動いているかで決まります。PHP の公式マニュアルでは次のとおりです。
- php.ini:PHP 全体の設定ファイルです。共用のサーバーでは直接触れないことが多く、サーバー会社の管理画面がその代わりになっています。
- .user.ini:PHP が CGI・FastCGI で動いている場合に読まれます。WordPress を入れたフォルダに置き、上の例と同じ「名前 = 値」の形で書きます。標準では300秒(5分)ごとに読み直されるので、すぐには変わりません。
- .htaccess:PHP が Apache のモジュールとして動いている場合だけの方法です。
php_value upload_max_filesize 64Mのように書きます(値は例です)。
Apache のモジュールとして動いていないサーバーで .htaccess に php_value を書くと、効かないだけでなく、サイトが開かなくなる原因にもなりえます(ここは当社の推測を含みます)。書く前に .htaccess の控えを取り、開かなくなったらすぐ控えに戻します(500 エラーが出たときの確かめ方はWordPressで500エラーが出るときに書きました)。.htaccess を触るときの注意はWordPressのリダイレクト設定と解除にも書きました。
変えたのに上限が上がらないとき
upload_max_filesizeとpost_max_sizeの両方を上げたかを見ます。片方だけでは、小さい方で止まります。- .user.ini なら、5分ほど待ってから見直します。
- サーバー会社の管理画面の設定と、ファイルに書いた設定が両方ある場合は、どちらが使われているかをサーバー会社のマニュアルで確かめます。エックスサーバーでは管理画面の設定が優先です。
- WordPress には、プラグインがこの上限を変えられる仕組み(
upload_size_limitというフィルター)があります。プラグインで上限を下げていないかも見ます。
上げすぎない
会社のホームページで扱うファイルは、写真や PDF がほとんどです。さくらのマニュアルにもあるとおり、共用のサーバーで大きすぎる値は不具合の元になります。大きな動画などは YouTube などに置いて埋め込み、写真はアップロードの前に縮めてから上げる方が、ページの表示も速くなります。表示の速さの測り方と、重いときに直す順番はホームページが重い・表示が遅いときの原因と直す順番に書きました。上限は、実際に上げたいファイルが通る大きさまでで十分です。サーバーの引っ越しで All-in-One WP Migration のバックアップが大きすぎて取り込めない場合は、All-in-One WP Migrationの容量制限でインポートできないときも見てください。
今日、自社で確かめられること
- 「メディア」→「新規追加」の画面の下で、今の最大サイズを見ます。
- サイトヘルスの「情報」→「サーバー」で、PHP の値と版を控えます。PHP の版の見方はWordPressのPHPバージョンの確認方法に書きました。
- 契約しているサーバー会社の管理画面に、PHP の設定(php.ini)の画面があるかを見ます。
当社は、中小企業や士業のホームページの運営を引き受けています。サーバーの設定に触るのが不安な場合は、お問い合わせからご相談ください。
参考にした公式の説明
- wp_max_upload_size()(WordPress Developer Resources)
- Media Add New Screen(WordPress.org Documentation)、Site Health Screen
- php.ini ディレクティブに関する説明(PHP マニュアル)、設定可能な項目の種類、設定の変更方法、.user.ini ファイル
- php.ini設定について(エックスサーバー マニュアル)、php.ini設定で設定可能な項目について
- php.iniの設定内容を変更したい(さくらのサポート情報)
いずれも2026年11月14日に内容を確かめました。管理画面の表示名は、サーバー会社の画面の新旧によって変わることがあります。