2MB보다 큰 WordPress 파일을 Elastic Beanstalk 환경에 업로드하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 6월 22일

2MB가 넘는 WordPress 파일을 AWS Elastic Beanstalk 환경에 업로드하려고 시도하면 "업로드된 파일이 php.ini의 - 지시문을 초과합니다."라는 오류 메시지가 표시됩니다. 이 오류를 해결하려면 어떻게 해야 하나요?

간략한 설명

Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스의 기본 PHP 구성에서는 2MB보다 큰 WordPress 파일 업로드를 허용하지 않습니다. 2MB보다 큰 파일을 업로드하려면 /etc/php.ini 파일에서 upload_max_filesize 파라미터의 기본값을 변경하십시오.

중요: M과 MB는 메가바이트를 나타내는 동일한 표현입니다. 예를 들어 2M는 2MB와 같습니다. 그러나 구성 파일에서는 MB가 유효하지 않으므로 M 단위만 사용하십시오.

해결 방법

솔루션 스택에 적용되는 해상도를 선택합니다.

PHP 솔루션 스택을 실행하는 Elastic Beanstalk 환경에 대한 업로드 파일 용량 업데이트

모든 인스턴스에서 파일 용량을 늘리려면 다음 단계를 완료하여 기본 Amazon Machine Image(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로 업데이트됩니다.

팁: php.ini 파라미터(예: memory_limit)를 수정하려면 post_max_size에 대한 php.ini 명령을 참조하십시오. Elastic Beanstalk의 최대 memory_limit 값은 256M입니다.

2.    애플리케이션 소스 번들의 루트에서 .ebextensions라는 새 디렉터리를 만든 다음, change_upload_size.config 파일을 .ebextensions 디렉터리로 이동합니다.

.ebextensions 디렉터리가 이미 애플리케이션 소스 번들 안에 있으면, .ebextensions 디렉터리에 다른 .config 파일과 함께 change_upload_size.config 파일을 남겨둡니다. 디렉터리 구조는 다음의 예시와 유사해야 합니다.

├── 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

3.    Elastic Beanstalk 콘솔을 연 다음, 애플리케이션 소스 번들의 zip 아카이브를 생성합니다.

4.    코드를 기존 Elastic Beanstalk 환경에 업로드하려면 환경을 선택한 다음, 업로드 및 배포를 선택합니다.

참고: 새 Elastic Beanstalk 환경에서 코드를 배포하려면 Elastic Beanstalk 환경 생성을 참조하십시오.

.ebextensions 파일을 업로드한 후에도 오류 메시지가 사라지지 않을 경우, YAML 검사기를 사용하여 코드의 공백 오류를 검사합니다. 또한, remove_old_ini 명령을 사용하여 불필요한 백업 파일을 제거할 수도 있습니다. 자세한 내용은 Extending php.ini를 참조하십시오.

LAMP 스택을 실행하는 단일 Amazon EC2 인스턴스에 대한 업로드 파일 용량 변경

1.    vi 편집기에서 /etc/php.ini 파일을 열려면 다음의 명령을 실행합니다.

$ sudo vi /etc/php.ini

참고: /etc/php.ini 파일 이름 또는 경로는 PHP 버전이나 사용 중인 AMI에 따라 달라질 수 있습니다.

2.    vi 편집기에서 upload_max_filesize 파라미터의 값을 2MB보다 큰 값으로 변경한 다음, 파일을 저장합니다.

팁: php.ini 파라미터(예: memory_limit)를 수정하려면 post_max_size에 대한 php.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 프로세스의 메모리를 제한합니다.