Menghosting WordPress di lingkungan fleksibel App Engine

Tutorial ini menunjukkan cara men-deploy situs WordPress kecil ke lingkungan fleksibel App Engine.

Tujuan

  • Buat instance Cloud SQL Generasi Kedua.
  • Konfigurasi situs WordPress contoh.
  • Deploy situs WordPress contoh ke lingkungan fleksibel App Engine.

Biaya

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the required APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Instal Google Cloud CLI.

  6. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  7. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the required APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. Instal Google Cloud CLI.

  12. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  13. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  14. Buat kredensial dengan mengikuti langkah-langkah berikut:
    • Di konsol Google Cloud , buka halaman Credentials.

      Membuka Halaman Kredensial API

    • Klik Create credentials, lalu pilih Service account key.
    • Pilih Service account > App Engine default service account.
    • Klik Create.
    • Simpan kunci yang didownload di tempat yang aman.
  15. Instal PHP dan Composer.
  16. Download Proxy Cloud SQL dan setel agar dapat dijalankan. Tambahkan juga lokasi file yang dapat dieksekusi Cloud SQL Proxy ke variabel lingkungan PATH Anda.
  17. Instal klien MySQL dan verifikasi bahwa lokasi file yang dapat dieksekusi mysql ada di variabel lingkungan PATH Anda.

Membuat dan mengonfigurasi instance Cloud SQL Generasi Kedua

  1. Buat instance Cloud SQL Generasi Kedua:

    gcloud sql instances create tutorial-sql-instance \
        --activation-policy=ALWAYS \
        --tier=db-n1-standard-1 \
        --region=us-central1
    
  2. Tetapkan sandi root untuk instance Anda:

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

    dengan [YOUR_SQL_ROOT_PASSWORD] adalah sandi aman pilihan Anda.

  3. Download dan jalankan Proxy Cloud SQL:

    ./cloud-sql-proxy \
        -dir /tmp/cloudsql \
        -instances=[YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance \
        -credential_file=[PATH_TO_YOUR_SERVICE_ACCOUNT_JSON]

    di mana

    • [YOUR_PROJECT_ID] adalah Google Cloud project ID Anda.

    • [PATH_TO_YOUR_SERVICE_ACCOUNT_JSON] adalah jalur ke file JSON akun layanan yang Anda download sebelumnya.

    Output berikut menunjukkan bahwa proxy siap untuk koneksi baru:

    Listening on 127.0.0.1:3306 for [YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance
    Ready for new connections
    
  4. Di jendela terminal lain, buat database dan pengguna baru:

    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

    dengan:

    • [YOUR_SQL_ROOT_PASSWORD] adalah sandi root untuk instance Cloud SQL Anda.
    • [YOUR_DATABASE_PASSWORD] adalah sandi aman pilihan Anda.

Menyiapkan project WordPress

  1. Gandakan repositori sampel

    git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
    
  2. Buka direktori yang berisi kode contoh:

    cd php-docs-samples/appengine/flexible/wordpress
    
  3. Instal dependensi:

    composer install
    
  4. Jalankan skrip 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]

    dengan:

    • [YOUR_PROJECT_ID] adalah project ID Anda.
    • [YOUR_DATABASE_PASSWORD] adalah sandi database Anda.

    Parameter -dir menentukan lokasi project WordPress Anda.

  5. Skrip helper menulis informasi ke wordpress-project/wordpress/wp-config.php. Periksa konten wp-config.php untuk memverifikasi bahwa nama, project ID, dan sandi database Anda sudah benar.

    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]');
    }

Men-deploy project WordPress ke lingkungan fleksibel App Engine

  1. Buka direktori project WordPress Anda:

    cd wordpress-project
    
  2. Deploy project WordPress:

    gcloud app deploy \
        --promote --stop-previous-version app.yaml cron.yaml
    
  3. Di browser Anda, masukkan URL berikut:

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

    Ganti kode berikut:

Memperbarui WordPress, plugin, dan tema

Penting untuk selalu mengupdate WordPress, plugin, dan tema. Anda dapat terus memperbarui item ini menggunakan alat wp. Setelah update, Anda harus men- deploy ulang project WordPress.

  1. Perbarui WordPress itu sendiri:

    vendor/bin/wp core update --path=wordpress
    
  2. Update plugin:

    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. Memperbarui tema:

    vendor/bin/wp theme update --all --path=wordpress
    
  4. Deploy project lagi:

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

Pembersihan

Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.

Menghapus project

Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.

Untuk menghapus project:

  1. Di Konsol Google Cloud , buka halaman Manage resources.

    Buka Kelola resource

  2. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

Menghapus versi non-default aplikasi Anda

Jika tidak ingin menghapus project, Anda dapat mengurangi biaya dengan menghapus versi non-default aplikasi Anda.

Untuk menghapus versi aplikasi:

  1. Di konsol Google Cloud , buka halaman Versions untuk App Engine.

    Buka Versi

  2. Pilih kotak centang untuk versi aplikasi non-default yang ingin Anda hapus.
  3. Untuk menghapus versi aplikasi, klik Hapus.

Menghapus instance Cloud SQL

Untuk menghapus instance Cloud SQL:

  1. Di konsol Google Cloud , buka halaman Instances.

    Buka Instances

  2. Klik nama instance SQL yang ingin Anda hapus.
  3. Untuk menghapus instance, klik Hapus, lalu ikuti petunjuknya.

Langkah berikutnya