Menggunakan phpMyAdmin dengan Cloud SQL di lingkungan standar App Engine


Mempelajari cara menginstal phpMyAdmin di lingkungan standar App Engine. Anda dapat menggunakan phpMyAdmin untuk mengelola Cloud SQL melalui web.

Tutorial ini akan bermanfaat jika Anda:

  • Menjalankan aplikasi di App Engine.
  • Menggunakan Cloud SQL sebagai database Anda.
  • Menggunakan phpMyAdmin sebagai antarmuka untuk MySQL atau Anda lebih suka antarmuka web untuk administrasi database.

Jika Anda menggunakan Compute Engine, pertimbangkan untuk menggunakan salah satu development stack atau produk yang tersedia melalui Click to Deploy. Deployment stack yang mencakup MySQL, seperti LAMP dan LEMP, atau produk seperti Drupal, memberikan opsi untuk menginstal phpMyAdmin sebagai bagian dari deployment.

Tujuan

  • Men-deploy phpMyAdmin di lingkungan standar App Engine.

Biaya

Tutorial ini menggunakan komponen Cloud Platform yang dapat ditagih, yang termasuk:

  • App Engine
  • Cloud SQL

Menggunakan Kalkulator Harga untuk membuat perkiraan biaya berdasarkan penggunaan yang Anda proyeksikan. Pengguna Cloud Platform baru mungkin memenuhi syarat untuk mendapatkan uji coba gratis.

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. Menginstal Google Cloud CLI.
  5. Untuk initialize gcloud CLI, jalankan perintah berikut:

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

    Buka pemilih project

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

  8. Menginstal Google Cloud CLI.
  9. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  10. Membuat instance Cloud SQL Generasi Kedua.
  11. (Opsional) Men-deploy aplikasi App Engine yang menggunakan instance Cloud SQL atau memilih aplikasi yang sudah ada.

    Misalnya, membuat dan men-deploy contoh buku tamu. Meskipun Anda dapat men-deploy phpMyAdmin sendiri, Anda mungkin ingin menggunakannya dengan aplikasi App Engine dalam skenario dunia nyata.

Mendownload kode sumber phpMyAdmin

Anda akan men-deploy phpMyAdmin sebagai layanan aplikasi App Engine, sehingga Anda harus mendownload kode sumber untuk phpMyAdmin. Ikuti langkah-langkah berikut:

  1. Di terminal Cloud Shell, masukkan perintah berikut guna mendownload kode sumber untuk phpMyAdmin versi 4.9.5:

    wget https://files.phpmyadmin.net/phpMyAdmin/4.9.5/phpMyAdmin-4.9.5-all-languages.tar.gz
    

    Untuk menggunakan versi phpMyAdmin yang berbeda, gunakan link ke versi yang tersedia di halaman Download phpMyAdmin.

  2. Membuat direktori baru. Anda akan mengekstrak file ke direktori ini.

    mkdir phpMyAdmin
    
  3. Mengekstrak file dari arsip ke direktori baru.

    tar -xzvf phpMyAdmin-4.9.5-all-languages.tar.gz -C phpMyAdmin --strip-components=1
    

Menyiapkan file untuk deployment

Untuk men-deploy phpMyAdmin, Anda harus membuat tiga file: app.yaml, yang berisi informasi konfigurasi untuk App Engine; config.inc.php, yang berisi informasi konfigurasi untuk phpMyAdmin; dan php.ini , yang berisi konfigurasi khusus aplikasi untuk PHP.

Membuat app.yaml

File konfigurasi App Engine menentukan cara jalur URL yang sesuai dengan pengendali permintaan dan file statis. File konfigurasi App Engine ini juga berisi informasi tentang kode aplikasi, seperti ID aplikasi dan ID versi terbaru. Ikuti langkah-langkah berikut untuk membuat file:

  1. Dalam direktori yang Anda buat, yang bernama phpMyAdmin, buat file baru bernama app.yaml.

    cd phpMyAdmin
    touch app.yaml
    
  2. Dengan menggunakan editor favorit Anda, tempelkan teks berikut ke app.yaml.

    service: phpmyadmin
    runtime: php55
    api_version: 1
    
    handlers:
    
    - url: /(.+\.(ico|jpg|png|gif))$
      static_files: \1
      upload: (.+\.(ico|jpg|png|gif))$
      application_readable: true
    
    - url: /(.+\.(htm|html|css|js))$
      static_files: \1
      upload: (.+\.(htm|html|css|js))$
      application_readable: true
    
    - url: /(.+\.php)$
      script: \1
      login: admin
    
    - url: /.*
      script: index.php
      login: admin
    
  3. Jika Anda men-deploy phpMyAdmin sebagai aplikasi pertama dan satu-satunya di App Engine, ubah nilai untuk service dari phpmyadmin menjadi default.

    Biasanya, Anda akan men-deploy phpMyAdmin sebagai layanan dari aplikasi yang sudah ada dan memberikan nama untuk layanan tersebut. Namun, jika Anda belum men-deploy aplikasi, Anda harus menggunakan nama layanan "default". Tidak masalah jika Anda mencoba phpMyAdmin di App Engine untuk tujuan tutorial ini.

    Tutorial ini hanya berfungsi untuk lingkungan standar App Engine.

  4. Menyimpan file.

Membuat config.inc.php

Ikuti langkah-langkah ini untuk membuat file konfigurasi phpMyAdmin.

  1. Membuat file baru bernama config.inc.php.

    touch config.inc.php
    
  2. Dengan menggunakan editor favorit Anda, tempelkan teks berikut ke config.inc.php.

    <?php
    /**
     * Copyright 2016 Google Inc.
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *     http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    /*
     * This is needed for cookie based authentication to encrypt password in
     * cookie
     * http://www.question-defense.com/tools/phpmyadmin-blowfish-secret-generator
     */
    $cfg['blowfish_secret'] = '{{your_secret}}'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
    
    /*
     * Servers configuration
     */
    $i = 0;
    
    // Change this to use the project and instance that you've created.
    $host = '/cloudsql/{{your_connection_string}}';
    $type = 'socket';
    
    /*
    * First server
    */
    $i++;
    /* Authentication type */
    $cfg['Servers'][$i]['auth_type'] = 'cookie';
    /* Server parameters */
    $cfg['Servers'][$i]['socket'] = $host;
    $cfg['Servers'][$i]['connect_type'] = $type;
    $cfg['Servers'][$i]['compress'] = false;
    /* Select mysql if your server does not have mysqli */
    $cfg['Servers'][$i]['extension'] = 'mysqli';
    $cfg['Servers'][$i]['AllowNoPassword'] = true;
    /*
     * End of servers configuration
     */
    
    /*
     * Directories for saving/loading files from server
     */
    $cfg['UploadDir'] = '';
    $cfg['SaveDir'] = '';
    
    /*
    * Other settings
    */
    $cfg['PmaNoRelation_DisableWarning'] = true;
    $cfg['ExecTimeLimit'] = 60;
    $cfg['CheckConfigurationPermissions'] = false;
    
  3. Membuka Google Cloud Shell dan menjalankan perintah berikut ini guna mendapatkan string acak untuk blowfish Anda:

    php -r "echo password_hash(uniqid(), PASSWORD_BCRYPT).PHP_EOL;"
    
  4. Menempelkan rahasia baru sebagai pengganti {{your_secret}} di config.inc.php.

  5. Membuka halaman instance Cloud SQL di Konsol Google Cloud.

  6. Mengklik instance Cloud SQL untuk menampilkan halaman detail Instance-nya.

  7. Mengganti nilai {{your_connection_string}} (dalam variabel $host) dengan properti nama koneksi Instance.

  8. Menyimpan file.

Membuat php.ini

Dalam kodenya, phpMyAdmin menggunakan fungsi yang dinonaktifkan secara default di App Engine. Ikuti langkah-langkah berikut untuk menambahkan file php.ini sehingga App Engine mengaktifkan fungsi tersebut kembali:

  1. Dalam direktori phpMyAdmin, buat file.

    touch php.ini
    
  2. Mengubah file dan menambahkan baris berikut:

    google_app_engine.enable_functions = "php_uname, getmypid"
    
  3. Simpan file.

Men-deploy aplikasi

Menggunakan perintah berikut untuk men-deploy aplikasi Anda ke App Engine.

  1. Memeriksa update untuk komponen gcloud Anda.

    gcloud components update
    
  2. Men-deploy aplikasi dengan menjalankan perintah berikut dari dalam direktori phpMyAdmin tempat file app.yaml Anda berada:

    gcloud app deploy
    

    Perintah ini men-deploy aplikasi ke layanan phpMyAdmin, seperti yang ditentukan file app.yaml Anda. Men-deploy ke layanan terpisah membantu memastikan bahwa phpMyAdmin berjalan di pusat data yang sama dengan aplikasi utama Anda, yang mana dapat meningkatkan performa. Untuk mempelajari lebih lanjut tentang men-deploy aplikasi dari command line, lihat Men-deploy Aplikasi PHP.

Login ke phpMyAdmin

Anda sekarang dapat login ke phpMyAdmin.

  1. Di browser web, masukkan URL phpMyAdmin untuk membuka halaman sambutan, lalu ubah URL agar menggunakan ID aplikasi Anda.

        https://phpmyadmin-dot-[YOUR_APP_ID].appspot.com
    
  2. Untuk Nama pengguna, masukkan root.

  3. Masukkan sandi root yang Anda berikan saat Anda mengonfigurasi akun root.

  4. Mengklik Go.

Saat mengembangkan aplikasi App Engine, jangan lupa untuk melindungi akun pengguna apa pun yang Anda buat untuk mengakses database di Cloud SQL dengan sandi.

Memecahkan masalah

App Engine menggunakan Proxy Auth Cloud SQL untuk terhubung ke instance Cloud SQL Generasi Kedua. Untuk mengetahui informasi selengkapnya tentang cara kerja Proxy Auth Cloud SQL, lihat Tentang Proxy Auth Cloud SQL.

Log App Enginedi Konsol Google Cloud dapat memberikan informasi tentang error App Engine.

Pembersihan

Setelah menyelesaikan tutorial, Anda dapat membersihkan resource yang dibuat agar resource tersebut berhenti menggunakan kuota dan dikenai biaya. Bagian berikut menjelaskan cara menghapus atau menonaktifkan resource ini.

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 instance

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