AWS re:Postを使用することにより、以下に同意したことになります AWS re:Post 利用規約

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 パラメーターのデフォルト値を変更します。

重要: MMB は「メガバイト」に相当する記号です。たとえば、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 から 100 M に更新されています。
    memory_limit などの php.ini パラメーターを変更するには、post_max_sizephp.ini ディレクティブを参照してください。Elastic Beanstalk の memory_limit の最大値は 256 M です。
  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 スタックを実行している単一のインスタンスのアップロードファイルサイズを変更する

次の手順を実行します。

  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 のバージョンによって異なる場合があります。Amazon Linux AMI 以外のディストリビューションを使用している場合は、Apache サーバーを再起動するコマンドは異なる場合があります。WordPress はデフォルトで PHP プロセスのメモリを制限します。

関連情報

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

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

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

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

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

関連するコンテンツ