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 contoh situs WordPress.
  • Deploy contoh situs WordPress 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. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Enable the required APIs.

    Enable the APIs

  5. Menginstal Google Cloud CLI.
  6. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  7. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  8. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  9. Enable the required APIs.

    Enable the APIs

  10. Menginstal Google Cloud CLI.
  11. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  12. Buat kredensial dengan mengikuti langkah-langkah berikut:
    • Di Konsol Google Cloud, buka halaman Kredensial.

      Buka Halaman Kredensial API

    • Klik Create credentials dan pilih Service account key.
    • Pilih Akun layanan > Akun layanan default App Engine.
    • Klik Create.
    • Simpan kunci yang didownload di tempat yang aman.
  13. Instal PHP dan Composer.
  14. Download Proxy Cloud SQL dan setel agar proxy tersebut dapat dijalankan. Selain itu, tambahkan lokasi file Proxy Cloud SQL yang dapat dieksekusi ke variabel lingkungan PATH Anda.
  15. Instal klien MySQL dan pastikan lokasi file mysql yang dapat dieksekusi 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:

    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]
    

    dengan

    • [YOUR_PROJECT_ID] adalah ID project Google Cloud 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 baru dan pengguna:

    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. Menjalankan 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:

Mengupdate WordPress, plugin, dan tema

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

  1. Update WordPress itu sendiri:

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

    Buka Manage 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 Versi 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 Anda

Untuk menghapus instance Cloud SQL:

  1. Di konsol Google Cloud, buka halaman Instance.

    Buka Instance

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

Langkah selanjutnya