App Engine 가변형 환경에서 WordPress 호스팅

이 가이드에서는 App Engine 가변형 환경에 작은 WordPress 사이트를 배포하는 방법을 보여줍니다.

목표

  • Cloud SQL 2세대 인스턴스 만들기
  • 샘플 WordPress 사이트 구성
  • App Engine 가변형 환경에 샘플 WordPress 사이트 배포

비용

시작하기 전에

  1. Google 계정으로 로그인합니다.

    아직 계정이 없으면 새 계정을 등록하세요.

  2. Cloud Console의 프로젝트 선택기 페이지에서 Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기 페이지로 이동

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

  4. 필요한 API를 사용 설정합니다.

    API 사용 설정

  5. Cloud SDK 설치 및 초기화
  6. 다음 단계에 따라 사용자 인증 정보를 만듭니다.
    • Cloud Console에서 사용자 인증 정보 페이지로 이동합니다.

      API 사용자 인증 정보 페이지 열기

    • 사용자 인증 정보 만들기를 클릭하고 서비스 계정 키를 선택합니다.
    • 서비스 계정 > App Engine 기본 서비스 계정을 선택합니다.
    • 만들기를 클릭합니다.
    • 다운로드한 키를 안전한 곳에 보관합니다.
  7. PHPComposer를 설치합니다.
  8. Cloud SQL 프록시를 다운로드하고 실행 파일로 만듭니다. 또한 Cloud SQL 프록시 실행 파일의 위치를 PATH 환경 변수에 추가합니다.
  9. MySQL 클라이언트를 설치하고 mysql 실행 파일의 위치가 PATH 환경 변수에 있는지 확인합니다.

Cloud SQL 2세대 인스턴스 만들기 및 구성

  1. Cloud SQL 2세대 인스턴스를 만듭니다.

    gcloud sql instances create tutorial-sql-instance \
        --activation-policy=ALWAYS \
        --tier=db-n1-standard-1 \
        --region=us-central1
    
  2. 인스턴스에 루트 비밀번호를 설정합니다.

    gcloud sql users set-password root --instance tutorial-sql-instance \
        --password [YOUR_SQL_ROOT_PASSWORD] \
        --host %
    

    [YOUR_SQL_ROOT_PASSWORD]는 원하는 대로 선택하는 안전한 비밀번호입니다.

  3. Cloud SQL 프록시를 다운로드하고 실행합니다.

    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
    cloud_sql_proxy \
        -dir /tmp/cloudsql \
        -instances=[YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance=tcp:3306 \
        -credential_file=[PATH_TO_YOUR_SERVICE_ACCOUNT_JSON]
    

    각 항목의 의미는 다음과 같습니다.

    • [YOUR_PROJECT_ID]는 Google Cloud 프로젝트 ID입니다.

    • [PATH_TO_YOUR_SERVICE_ACCOUNT_JSON]은 이전에 다운로드한 서비스 계정 JSON 파일에 대한 경로입니다.

    다음 출력은 프록시가 새로 연결할 준비가 되었음을 나타냅니다.

    Listening on 127.0.0.1:3306 for [YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance
    Ready for new connections
    
  4. 다른 터미널 창에서 새 데이터베이스와 사용자를 만듭니다.

    mysql -h 127.0.0.1 -u root --password=[YOUR_SQL_ROOT_PASSWORD]
    mysql> create database tutorialdb;
    mysql> create user 'tutorial-user'@'%' identified by '[YOUR_DATABASE_PASSWORD]';
    mysql> grant all on tutorialdb.* to 'tutorial-user'@'%';
    mysql> exit
    

    각 매개변수는 다음과 같습니다.

    • [YOUR_SQL_ROOT_PASSWORD]는 Cloud SQL 인스턴스의 루트 비밀번호입니다.
    • [YOUR_DATABASE_PASSWORD]는 원하는 대로 선택하는 안전한 비밀번호입니다.

WordPress 프로젝트 설정

  1. 샘플 저장소를 복제합니다.

    git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
    
  2. 샘플 코드가 있는 디렉토리로 이동합니다.

    cd php-docs-samples/appengine/flexible/wordpress
    
  3. 종속성 항목을 설치합니다.

    composer install
    
  4. helper 스크립트를 실행합니다.

    php wordpress.php setup -n \
        --dir=./wordpress-project \
        --db_instance=tutorial-sql-instance \
        --db_name=tutorialdb \
        --db_user=tutorial-user \
        --project_id=[YOUR_PROJECT_ID] \
        --db_password=[YOUR_DATABASE_PASSWORD]
    

    각 항목의 의미는 다음과 같습니다.

    • [YOUR_PROJECT_ID]는 프로젝트 ID입니다.
    • [YOUR_DATABASE_PASSWORD]는 데이터베이스 비밀번호입니다.

    -dir 매개변수는 WordPress 프로젝트의 위치를 지정합니다.

  5. 도우미 스크립트는 wordpress-project/wordpress/wp-config.php에 정보를 작성합니다. wp-config.php의 콘텐츠를 검사하여 이름, 프로젝트 ID, 데이터베이스 비밀번호가 올바른지 확인합니다.

    if ($onGae) {
        /** Production environment */
        define('DB_HOST', ':/cloudsql/[YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance');
        /** The name of the database for WordPress */
        define('DB_NAME', 'tutorialdb');
        /** MySQL database username */
        define('DB_USER', 'tutorial-user');
        /** MySQL database password */
        define('DB_PASSWORD', '[YOUR_DATABASE_PASSWORD]');
    } else {
        /** Local environment */
        define('DB_HOST', '127.0.0.1');
        /** The name of the database for WordPress */
        define('DB_NAME', 'tutorialdb');
        /** MySQL database username */
        define('DB_USER', 'tutorial-user');
        /** MySQL database password */
        define('DB_PASSWORD', '[YOUR_DATABASE_PASSWORD]');
    }
    

App Engine 가변형 환경에 WordPress 프로젝트 배포

  1. WordPress 프로젝트 디렉토리로 이동합니다.

    cd wordpress-project
    
  2. WordPress 프로젝트를 배포합니다.

    gcloud app deploy \
        --promote --stop-previous-version app.yaml cron.yaml
    
  3. 브라우저에 다음 URL을 입력합니다.

    https://PROJECT_ID.REGION_ID.r.appspot.com

    다음을 바꿉니다.

WordPress, 플러그인, 테마 업데이트

WordPress, 플러그인, 테마를 항상 최신 상태로 유지해야 합니다. wp 도구를 사용하여 이러한 항목의 최신 업데이트를 유지할 수 있습니다. 업데이트한 후에는 WordPress 프로젝트를 다시 배포해야 합니다.

  1. WordPress를 업데이트합니다.

    vendor/bin/wp core update --path=wordpress
    
  2. 플러그인을 업데이트합니다.

    vendor/bin/wp plugin update --all --path=wordpress
    # Just in case it updates any of the dropins, copy the files:
    cp wordpress/wp-content/plugins/batcache/advanced-cache.php \
        wordpress/wp-content/plugins/memcached/object-cache.php \
        wordpress/wp-content
    
  3. 테마를 업데이트합니다.

    vendor/bin/wp theme update --all --path=wordpress
    
  4. 프로젝트를 다시 배포합니다.

    gcloud app deploy \
        --promote --stop-previous-version app.yaml cron.yaml
    

삭제

이 가이드에서 사용한 리소스 비용이 Google Cloud Platform 계정에 청구되지 않도록 하려면 다음 안내를 따르세요.

프로젝트 삭제

비용이 청구되지 않도록 하는 가장 쉬운 방법은 가이드에서 만든 프로젝트를 삭제하는 것입니다.

프로젝트를 삭제하는 방법은 다음과 같습니다.

  1. Cloud Console에서 리소스 관리 페이지로 이동합니다.

    리소스 관리 페이지로 이동

  2. 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제 를 클릭합니다.
  3. 대화상자에서 프로젝트 ID를 입력한 다음 종료를 클릭하여 프로젝트를 삭제합니다.

기본 이외의 앱 버전 삭제

프로젝트를 삭제하지 않으려면 기본 이외의 앱 버전을 삭제하여 비용을 줄일 수 있습니다.

앱 버전을 삭제하려면 다음 안내를 따르세요.

  1. Cloud Console에서 App Engine의 Versions 페이지로 이동합니다.

    Versions 페이지로 이동

  2. 삭제할 기본이 아닌 앱 버전의 체크박스를 선택합니다.
  3. 삭제 를 클릭하여 앱 버전을 삭제합니다.

Cloud SQL 인스턴스 삭제

Cloud SQL 인스턴스를 삭제하려면 다음 안내를 따르세요.

  1. Cloud Console에서 SQL 인스턴스 페이지로 이동합니다.

    SQL 인스턴스 페이지로 이동

  2. 삭제할 SQL 인스턴스의 이름을 클릭합니다.
  3. 삭제 를 클릭하여 인스턴스를 삭제합니다.

다음 단계