エックスサーバーのアップロード制限を突破!上限を増やす3つの解決策
なぜエラーになる?エックスサーバーのアップロード制限の仕組み
エックスサーバーで大きなファイルや動画などをWordPressにアップロードしようとした際、「アップロードしたファイルはphp.iniのupload_max_filesizeディレクティブを超えています」といったエラーが表示されることがあります。
これは、サーバー側で「一度にアップロードできるファイルの最大サイズ」に制限が設けられているために発生します。
INFO
デフォルトで制限が設けられている主な理由は、「サーバーの安定稼働」と「セキュリティ対策」のためです。
一度に巨大なファイルをアップロードしようとすると、サーバーのメモリやCPUに大きな負荷がかかり、他のユーザーのサイト表示速度に影響を及ぼす可能性があります。また、制限を設けることで、悪意のあるプログラムや極端に大きなファイルを一括送信する攻撃からサーバーを守る役割も果たしています。
エックスサーバーの標準設定では、この上限値(upload_max_filesize)が「2MB」や「10MB」など、比較的小さな値に設定されていることが一般的です。
ブログで高画質の画像やプラグイン、テーマファイルをアップロードする際には、この制限に抵触しやすいため、必要に応じて設定値を引き上げる必要があります。ただし、無制限に大きくすれば良いというわけではなく、サーバーのリソース状況やサイトの運用目的に合わせて適切な数値を設定することが重要です。
【STEP】PHP設定からアップロードサイズ上限を変更する手順
エックスサーバーでは、専門的な知識がなくても「サーバーパネル」から数クリックでPHPのアップロード上限を変更することが可能です。以下の手順に沿って設定を行ってください。
STEP 2
対象ドメインの選択
設定を変更したいドメインを選択します。一覧が表示されるので、該当するドメインの「選択する」をクリックしてください。
STEP 3
PHP設定の編集
タブメニューから「php.ini設定変更」を選択します。設定項目の一覧が表示されるので、以下の2つの項目を探して数値を変更します。
- upload_max_filesize:一度にアップロードできるファイルの最大サイズです(例:128M)。
- post_max_size:フォームから送信できるデータの最大サイズです(例:128M)。
BLOCKPLACEHOLDER5UNIQUE
STEP 4
設定の反映
数値を入力したら、画面下部の「確認画面へ進む」をクリックし、内容に問題がなければ「変更する」をクリックして完了です。
POINT
設定変更後、WordPressの管理画面(メディア>新規追加)を開き、アップロード上限の数値が変わっているか確認しましょう。もし数値が反映されていない場合は、ブラウザのキャッシュをクリアするか、数分待ってから再度確認してみてください。
.htaccessで制限を直接書き換える上級テクニック
エックスサーバーの管理パネル(サーバーパネル)からの設定変更が反映されない場合や、特定のディレクトリ配下のみに制限解除を適用したい場合は、.htaccess ファイルを直接編集する方法が有効です。
FTPソフトやサーバーパネルの「ファイルマネージャー」から、対象サイトのドキュメントルートにある .htaccess ファイルを開き、以下のコードを追記してください。
php_value upload_max_filesize 128M
php_value post_max_size 128M
php_value memory_limit 256M
POINT
この手法が有効なケースと注意点
有効なケース: 管理パネルのPHP設定が他のプラグイン等の影響で上書きされてしまう場合や、特定の階層のみ一時的に制限を緩和したい場合に適しています。
リスク: .htaccess は記述ミスがあるとサイト全体が「500 Internal Server Error」となり、表示されなくなります。編集前には必ず元のファイルのバックアップを取るようにしてください。
設定を反映させるには、ファイルを保存してサーバーにアップロードするだけで完了です。もしエラーが発生した場合は、すぐに記述内容を削除(またはバックアップと差し替え)して復旧させてください。
設定変更前に確認すべき注意点リスト
エックスサーバーでアップロードサイズの上限を引き上げることは、大きなファイルを扱う際に非常に有効です。しかし、無制限に数値を大きくすれば良いというわけではありません。
特に注意すべきは「セキュリティリスク」と「サーバー負荷」です。例えば、上限を極端に大きく設定してしまうと、悪意のあるユーザーが巨大なファイルをサーバーに送りつけ、ディスク容量を圧迫させたり、サーバーをダウンさせたりする攻撃(DoS攻撃の一種)に悪用される恐れがあります。
また、ファイルサイズの上限を上げたとしても、PHPの実行時間制限(max_execution_time)やメモリ上限(memory_limit)が低いままだと、大きなファイルのアップロード途中で処理が止まってしまうことがあります。
設定を変更する前に、以下の項目を必ずチェックしておきましょう。
ATTENTION
設定値を変更した後は、必ず実際のファイルアップロードテストを行い、正常に完了するか確認してください。特にWordPressの「メディア」からアップロードする場合、ブラウザやネットワーク環境の制限によっても失敗することがあります。
よくある質問とまとめ
エックスサーバーでアップロードサイズ上限を変更する際によく寄せられる疑問をまとめました。設定を行う前に、ぜひ参考にしてください。
アップロードサイズの上限を極端に大きくしても問題ないでしょうか?
システム上は可能ですが、推奨はしません。上限を広げすぎると、誤って巨大なファイルをアップロードした際にサーバーのリソースを圧迫し、サイト全体の表示速度低下やエラーの原因となる可能性があります。必要最小限の数値に設定するのが安全です。
設定を変更したのに反映されません。なぜですか?
ブラウザのキャッシュが残っているか、サーバー側での反映にタイムラグがある可能性があります。数分待ってから再度確認するか、ブラウザのシークレットモードでアクセスしてみてください。また、PHPのバージョンが正しく選択されているかも再確認しましょう。
まとめ:適切な設定で快適な運用を
エックスサーバーでアップロード制限に引っかかってしまう場合、今回解説した「PHP設定」や「.htaccess」での調整を行うことで、スムーズに解決できます。
POINT
設定変更後は、必ず実際の管理画面からファイルアップロードを試して、正常に動作するか確認しましょう。また、大きなファイルを取り扱う際は、サーバーへの負荷を考慮し、可能な限りファイルの軽量化(圧縮など)を行うことも、サイト運営を快適に保つための重要なスキルです。
エックスサーバーは、今回のようなサーバー設定の柔軟性が高く、初心者から法人サイトまで安心して運用できる環境が整っています。設定を正しく理解し、ご自身のサイト運営に最適な環境を構築していきましょう。
EXPERIENCE
WordPressの引っ越し作業中、大容量のプラグインをアップロードしようとしたら「413 Request Entity Too Large」というエラーで弾かれ、筆者は焦りました。調べてみるとエックスサーバーの初期設定ではアップロード上限が低めに設定されていることが原因でした。
対処法は簡単で、サーバーパネルの「php.ini設定」から数値を書き換えるだけ。upload_max_filesizeを現在の2MBから64MBへ変更したところ、ものの3分で設定は完了しました。反映まで1時間ほど待つ必要はありましたが、それ以降はエラーに悩まされることはありません。ただ、設定値を変えすぎるとセキュリティ上の懸念もあるそうなので、必要最小限の数字に留めるのがコツです。初心者には少し緊張する操作ですが、手順さえ間違えなければ確実に解決できるので、同じ壁にぶつかった方はぜひ落ち着いて試してみてください。