Menghosting WordPress di lingkungan fleksibel App Engine

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

Tujuan

  • Membuat instance Cloud SQL Generasi Kedua.
  • Mengonfigurasi situs WordPress contoh.
  • Men-deploy situs WordPress contoh ke lingkungan fleksibel App Engine.

Biaya

Sebelum memulai

  1. Login keakun Anda. Google Cloud 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 Google Cloud konsol, buka halaman Credentials.

      Buka Halaman Kredensial API

    • Klik Buat kredensial dan pilih Kunci akun layanan.
    • Pilih Akun layanan > Akun layanan default App Engine.
    • Klik Create.
    • Simpan kunci yang didownload di tempat yang aman.
  15. Instal PHP dan Composer.
  16. Unduh Proxy Cloud SQL dan setel agar dapat dijalankan. Tambahkan juga lokasi file yang dapat dieksekusi Proxy Cloud SQL ke variabel lingkungan Anda.PATH
  17. Instal klien MySQL dan pastikan lokasi file yang dapat dieksekusi mysql berada 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 ID projectAnda. Google Cloud

    • [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 memperbarui WordPress, plugin, dan tema. Anda dapat memperbarui item ini menggunakan alat wp. Setelah pembaruan, Anda harus men-deploy ulang project WordPress.

  1. Perbarui WordPress itu sendiri:

    vendor/bin/wp core update --path=wordpress
    
  2. Perbarui 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. Perbarui 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 Google Cloud konsol, buka halaman Manage resources.

    Buka Kelola resource

  2. Pada daftar project, pilih project yang Anda 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 Google Cloud konsol, 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 Delete.

Menghapus instance Cloud SQL

Untuk menghapus instance Cloud SQL:

  1. Di Google Cloud konsol, buka halaman Instances.

    Buka Instance

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

Langkah berikutnya