Heroku + Wordpress에서 S3 사용

3670 단어 경 6S3WordPress

개요



Wordpress를 Heroku로 운용할 때 Heroku는 정기적으로 빌드를 하고 있으므로 업로드한 이미지가 사라져 버리는 현상이 발생합니다.

heroku의 리포지토리가 dyno라고 하는 단위로 관리되고 있어, Free 플랜이라면 일정 시간 경과 후에 dyno가 재기동되는 사양이 되고 있기 때문. - 【Rails6】 heroku에서 게시한 이미지가 표시되지 않음

따라서 AWS의 "S3"라는 서비스를 사용하여 이미지가 사라지는 현상을 피합니다. Wordpress 플러그인을 사용하여 업로드할 이미지의 저장 대상을 S3로 설정하여 외부에 이미지를 저장합니다.

S3 사용을 위한 준비



먼저 아래의 기사에 따라 Wordpress에서 S3를 사용할 준비를 합니다.

WordPress의 이미지 데이터를 S3에 저장

S3 액세스 권한 설정



S3의 블록 공개 액세스는 다음과 같이 설정합니다.

이 설정을 통해 내 환경에서 다음 두 가지를 달성하는 것을 확인했습니다.
  • WordPress에서 이미지 업로드
  • 포트폴리오 사이트에서 이미지 표시

  • 참고 : Amazon S3 퍼블릭 액세스 블록 사용

    버킷 정책 설정은 다음과 같습니다.

    버킷 정책
    {
        "Version": "2008-10-17",
        "Statement": [
            {
                "Sid": "AllowPublicRead",
                "Effect": "Allow",
                "Principal": {
                    "AWS": "*"
                },
                "Action": "s3:GetObject",
                "Resource": "<リソース名>/*"
            }
        ]
    }
    

    참고:
  • WordPress S3 Tutorial: How to Connect WordPress to Amazon S3 Bucket
  • Amazon S3 콘솔을 사용하여 버킷 ACL에서 퍼블릭 액세스를 활성화했습니다. 누구나 버킷에 액세스할 수 있습니까?

  • 로컬 환경에서 S3에 연결할 때 오류가 발생합니다.



    Wordpress의 로컬 환경에서 S3에 액세스할 때 오류가 발생할 수 있으므로 다음 기사를 따라 처리합니다.

    Wordpress에서 S3로 연결하려고 "There was an error attempting to get the region of the bucket"이 발생했습니다.

    GD를 Composer에 추가



    Wordpress에서 S3를 사용하려면 GD(이미지 파일 조작 라이브러리)를 사용해야 합니다. Heroku에는 기본적으로 GD가 설치되어 있지 않으므로 Composer에서 사용할 수 있도록 구성해야 합니다.

    참고 : 이미지 처리 및 GD

    먼저 composer.json에 다음과 같이 추가합니다.

    composer.json
    {
        "require": {
            "ext-gd": "*"
        }
    }
    

    만든 파일은 wordpress의 루트 디렉토리에 넣습니다. 그런 다음 다음 명령을 실행합니다.
    $ composer install
    

    종료 후 composer.lock이 composer.json과 동일한 디렉토리에 작성되면 OK입니다. 나중에 Heroku에 배포 할 때 Heroku는 자동으로 라이브러리를 설치합니다.

    참고 : Heroku PHP Support

    좋은 웹페이지 즐겨찾기