🚀 WordPressで3GBファイルも怖くない！大容量ファイルアップロード完全攻略ガイド

![wordpress大容量.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637864/fb138d87-97a7-5818-66b4-ed83c3e418cb.png)

## 1. イントロダクション 🚀

WordPressは多くの場合、軽量な画像や文書のアップロードを想定しているため、2〜3GBという大容量ファイルはアップロードできない設定になっています。  
この問題を解決するためには、WordPressの設定だけでなく、PHPやWebサーバー（Apache、Nginxなど）の設定も変更する必要があります。  
以下では、サーバー設定とWordPressのカスタマイズにより大容量アップロードを実現する方法を分かりやすく解説します。

---

## 2. サーバー側の設定変更 🔧

### **2-1. PHP設定の変更**

PHPの設定ファイル（通常は`php.ini`）で以下のパラメータを大容量ファイルに対応できるよう変更します。  
例として、3GBに対応させる設定は下記のようになります：

```ini
; php.ini の設定例
upload_max_filesize = 3G
post_max_size = 3G
memory_limit = 4G
max_execution_time = 0    ; 制限なし（または十分大きな値に設定）
max_input_time = 0        ; 制限なし
```

※ 注意  
・`upload_max_filesize` は1ファイル当たりの上限です。  
・`post_max_size` はフォーム全体（アップロード含む）の最大サイズ。  
・実際に設定を変更後、Webサーバーの再起動が必要となる場合があるので、再起動も忘れずに行いましょう。

### **2-2. .htaccess を使った設定 (Apacheの場合)**

Apache環境の場合、WordPressのルートディレクトリにある`.htaccess`ファイルに以下の設定を追加することで、PHP設定を上書きできます：

```apache
# .htaccess ファイルの先頭付近に記述
php_value upload_max_filesize 3G
php_value post_max_size 3G
php_value memory_limit 4G
php_value max_execution_time 0
php_value max_input_time 0
```

### **2-3. wp-config.php の設定変更**

WordPress側で使用するメモリ上限を変更するために、`wp-config.php`に以下の行を追加することをおすすめします：

```php
// wp-config.php の適切な位置に追加（通常はコメント「/* That's all, stop editing! ...」の前）
define('WP_MEMORY_LIMIT', '4G');
```

---

## 3. WordPress内部でのアップロード方法 🎨

### **3-1. メディアライブラリからのアップロード**

WordPress管理画面の「メディア」>「新規追加」からファイルをアップロードしようとした場合、PHPやサーバーの設定に依存しているため、上記設定変更後にアップロード可能なサイズが反映されるはずです。  
ただし、巨大ファイルの場合、ブラウザ側のタイムアウトやネットワークの不安定さによる問題も考えられるため、直接FTPによるアップロードも検討してください。

### **3-2. FTPアップロードとプラグインの利用**

直接FTPでサーバーの特定ディレクトリにアップロードし、WordPressに読み込ませる方法もあります。  
たとえば、以下の手順になります：

- FTPクライアント（FileZilla、WinSCPなど）を使い、アップロード用ディレクトリに2〜3GBのファイルをアップロードする。
- ファイルがサーバーに存在したことを確認後、WordPress側でそのファイルへの参照（もしくは添付情報）を登録するプラグイン（例：「Add From Server」など）を利用する。

---

## 4. ワークフローダイアグラム 📊

下記は大容量ファイルアップロードの全体的な流れを示すシンプルな図です。

```mermaid
flowchart TD
    A[サーバー設定変更] --> B[php.iniの編集]
    A --> C[.htaccessの編集]
    A --> D[wp-config.phpの変更]
    B & C & D --> E[WordPress再起動]
    E --> F[メディアライブラリからアップロード]
    E --> G[FTPアップロード]
    G --> H[プラグインでファイル参照登録]
```

この図は、設定変更から実際のアップロードまでのステップを視覚化しています。

---

## 5. コマンドラインでの確認方法 🖥️

サーバー設定を変更した後、変更が反映されているかを確認するために、簡単なPHPスクリプトを用意しましょう。

```php
<?php
// phpinfo.php
phpinfo();
?>
```

このスクリプトをサーバーに配置してWebブラウザからアクセスすることで、`upload_max_filesize` や `post_max_size` などの値が希望通りになっているか確認できます。

---

## 6. 注意点とまとめ ⚠️

- **サーバーリソース:**  
  大容量ファイルのアップロードはサーバーのメモリや実行時間に大きな影響を与えます。共有ホスティングの場合、これらのパラメータの変更ができない場合が多いため、VPSや専用サーバーの利用が望ましいです。

- **タイムアウトの注意:**  
  ネットワークのタイムアウト対策として、`max_execution_time` や `max_input_time` の設定を無制限（0）または十分大きな値へ調整してください。

- **バックアップ:**  
  変更を加える前に設定ファイルのバックアップを必ず取得してください。誤った設定によりサイトが表示されなくなるリスクを回避できます。

- **FTPとプラグイン:**  
  ブラウザ経由でのアップロードが不安定な場合、FTP経由でのアップロードと「Add From Server」のようなプラグイン活用を検討しましょう。

---

## まとめ

今回、WordPressに2〜3GBの大容量ファイル（OSイメージなど）をアップロードするためには、  
・PHPの設定変更（`php.ini`・`.htaccess`・`wp-config.php`）  
・サーバー再起動による設定反映  
・場合によってはFTP経由とプラグインでの登録という手順が必要となります。  

各手順を慎重に実施することで、WordPress上でも大容量ファイルのアップロードを可能にできます。  
もし設定変更に不安がある場合は、サーバー管理者やホスティングサービスに相談の上、作業を進めてください。  

Happy coding! 💻✨

--- 

参考文献：  
[1] [WordPressで大容量ファイルのアップロードに対応する方法](https://tobelog.net/post-48/)
[2] [All-in-one WP Migrationのインポートサイズの上限をあげる方法](https://hirock-lab.com/blog/all-in-one-wp-migration%E3%81%AE%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%AE%E4%B8%8A%E9%99%90%E3%82%92%E3%81%82%E3%81%92%E3%82%8B%E6%96%B9%E6%B3%95/)
[3] [WordPressサイトのファイルアップロードサイズ上限を引き上げる方法](https://kinsta.com/jp/blog/increase-max-upload-size-wordpress/)