Elastic Beanstalk 環境に 2 MB を超える WordPress のファイルをアップロードする方法を教えてください。

所要時間2分
0

2 MB を超える WordPress ファイルを AWS Elastic Beanstalk 環境にアップロードしようとすると、 「The uploaded file exceeds the upload_max_filesize directive in php.ini.」というエラーメッセージが表示されます。

簡単な説明

Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのデフォルトの PHP 設定では、2 MB を超える WordPress ファイルをアップロードできません。2 MB より大きいファイルをアップロードするには、/etc/php.ini ファイルの upload_max_filesize パラメーターのデフォルト値を変更します。

**重要:**M と MB は「メガバイト」に相当する記号です。 たとえば、2 M は 2 MB に相当します。ただし、設定ファイルでは MB は無効であるため、M のみを使用してください。

解決策

ソリューションスタックに該当する解決策を選択してください。

PHP ソリューションスタックを実行する Elastic Beanstalk 環境のアップロードファイルサイズを更新する

すべてのインスタンスでファイルサイズを増やすには、以下の手順を実行して、基盤となる Amazon マシンイメージ (AMI) を更新します。

1.    コードエディターで、change_upload_size.config という名前の新しいファイルを作成し、次のコードをファイルに追加します。

files:    "/etc/php.d/99uploadsize.ini":
        mode: "000644"
        owner: root
        group: root
        content: |
            upload_max_filesize = 100M
            post_max_size = 100M
commands:
    remove_old_ini:
        command: "rm -f /etc/php.d/99uploadsize.ini.bak"

**注:**上記の例では、post_max_size パラメーターの値がデフォルトの 32M から 100M に更新されています。

memory_limit などの php.ini パラメーターを変更するには、post_max_sizephp.ini ディレクティブを参照してください。Elastic Beanstalk の memory_limit の最大値は 256M です。

2.    アプリケーションソースバンドルのルートで、.ebextensions という新しいディレクトリを作成し、change_upload_size.config ファイルを .ebextensions ディレクトリに移動します。

.ebextensions ディレクトリがすでにアプリケーションソースバンドル内にある場合は、change_upload_size.config ファイルを他の .config ファイルとともに .ebextensions に保持します。
例:

├── wp-site.zip/     ├── .ebextensions/
         ├── change_upload_size.config
    ├── wp-content/
    ├── wp-includes/
    ├── wp-admin/
    ├── LICENSE
    ├── README.md
    ├── index.php
    ├── license.txt
    ├── readme.html
    ├── ...
    ├── ...
    ├── ...
    ├── ...
    ├── wp-settings.php
    ├── wp-signup.php
    ├── wp-trackback.php
    └── xmlrpc.php

重要:Elastic Beanstalk ベースの Amazon Linux 2 プラットフォームの場合、ファイル名 99uploadsize.iniz99uploadsize.ini に変更します。新しい PHP 設定でデフォルトを上書きできるようにするには、.ebextension のすべての場所でファイル名を変更します。

3.    Elastic Beanstalk コンソールを開き、アプリケーションソースバンドルの zip アーカイブを作成します。

4.    コードを既存の Elastic Beanstalk 環境にアップロードするには、環境を選択してから、[アップロードしてデプロイ] を選択します。
**注:**新しい Elastic Beanstalk 環境にコードをデプロイするには、Elastic Beanstalk 環境を参照してください。

.ebextensions ファイルをアップロードした後もエラーメッセージが消えない場合は、YAML バリデーターを使用して、コード内の空白エラーを確認してください。また、remove_old_ini コマンドを使用して、不要なバックアップファイルを削除してください。詳細については、php.ini の拡張を参照してください。

LAMP スタックを実行している単一の Amazon EC2 インスタンスのアップロードファイルサイズを変更する

1.    /etc/php.ini ファイルを vi エディタで開くには、次のコマンドを実行します。

$ sudo vi /etc/php.ini

注:****/etc/php.ini ファイルの名前またはパスは、使用している PHP または AMI のバージョンによって異なる場合があります。

2.    vi エディタで、upload_max_filesize パラメーターの値を 2 MB より大きいサイズに変更し、ファイルを保存します。
**注:**memory_limit などの php.ini パラメーターを変更するには、post_max_sizephp.ini ディレクティブを参照してください。詳細については、PHP ウェブサイトのpost_max_size エントリを参照してください。

3.    Apache サーバーを正常に再起動するには、環境に応じた適切なコマンドを実行します。

Amazon Linux の場合:

$ sudo service httpd graceful

Amazon Linux 2 の場合:

$ sudo service httpd reload

注:****/etc/php.ini ファイルの名前またはパスは、使用している PHP または AMI のバージョンによって異なる場合があります。Apache サーバーを再起動するコマンドは、Amazon Linux AMI 以外のディストリビューションを使用している場合にも異なる場合があります。WordPress はデフォルトで PHP プロセスのメモリを制限します。

関連情報

設定ファイル (.ebextensions) を使用した高度な環境のカスタマイズ

外部 Amazon Relational Database Service (Amazon RDS) データベースして高可用性 WordPress ウェブサイトを Elastic Beanstalk にデプロイする

Amazon Linux 2 で WordPress ブログをホストする

PHP のウェブサイトのコア php.ini ディレクティブの説明

AWS公式
AWS公式更新しました 7ヶ月前
コメントはありません

関連するコンテンツ