Anda dapat menggunakan server pengembangan lokal untuk menyimulasikan cara menjalankan aplikasi App Engine dalam lingkungan production, serta menggunakannya untuk mengakses layanan yang dipaketkan App Engine.
Lingkungan simulasi menerapkan beberapa pembatasan sandbox, seperti fungsi sistem terbatas dan impor modul PHP 5, tetapi tidak yang lainnya, seperti waktu tunggu atau kuota permintaan.
Server pengembangan lokal juga menyimulasikan layanan yang disediakan oleh library di SDK untuk App Engine, termasuk Datastore, Memcache, dan Task Queue, dengan menjalankan tugasnya secara lokal. Saat aplikasi Anda berjalan di server pengembangan, Anda masih dapat melakukan panggilan API jarak jauh ke infrastruktur produksi menggunakan endpoint HTTP Google API.
Sebelum memulai
Karena PHP 5 telah mencapai akhir dukungan, Anda tidak dapat lagi menggunakan versi terbaru dev_appserver.py
untuk menjalankan aplikasi Anda secara lokal. Untuk mendownload versi devapp_server.py
yang diarsipkan, ikuti
langkah-langkah berikut:
Dari arsip, download folder zip yang berisi server
dev_appserver.py
untuk runtime yang telah mencapai akhir dukungan.Ekstrak konten direktori ke sistem file lokal Anda, seperti ke direktori
/home
. Anda dapat menemukandev_appserver.py
di direktorigoogle_appengine/
.
Menyiapkan server pengembangan lokal
Untuk menjalankan alat server pengembangan lokal, Anda harus menyiapkan hal-hal berikut:
Verifikasi bahwa Anda telah menginstal penafsir Python 2 versi 2.7.12 atau yang lebih baru.
Tetapkan variabel lingkungan
DEVAPPSERVER_ROOT
di shell ke jalur penafsir Python 2 Anda.
Menjalankan server pengembangan lokal
Setelah menyiapkan server pengembangan lokal dan membuat file konfigurasi
app.yaml
untuk aplikasi Anda, Anda dapat menggunakan perintah dev_appserver.py
untuk
menjalankan aplikasi secara lokal.
Untuk memulai server pengembangan lokal:
Dalam direktori yang berisi file konfigurasi
app.yaml
Anda, jalankan perintahdev_appserver.py
.Windows / macOS
Tentukan jalur direktori ke aplikasi Anda, misalnya:
python2 [DEVAPPSERVER_ROOT]/google_appengine/dev_appserver.py [PATH_TO_YOUR_APP]
Atau, Anda dapat menentukan file konfigurasi layanan tertentu, misalnya:
python2 [DEVAPPSERVER_ROOT]/google_appengine/dev_appserver.py app.yaml
Untuk mengubah port, sertakan opsi
--port
:python2 [DEVAPPSERVER_ROOT]/google_appengine/dev_appserver.py --port=9999 [PATH_TO_YOUR_APP]
Ganti
[DEVAPPSERVER_ROOT]
dengan jalur ke folder tempat Anda mengekstrak versi yang diarsipkan daridevapp_server.py
.Linux / php-cgi kustom
Jika menggunakan Linux atau ingin menggunakan versi kustom
php-cgi
, Anda harus menentukan jalur direktori kephp-cgi
:Buat Ekstensi PHP App Engine versi Anda sendiri di komputer lokal.
Mulai server pengembangan lokal dengan opsi
--php_executable_path
dan--php_gae_extension_path
:python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py --php_executable_path=[PATH_TO_PHP_CGI] --php_gae_extension_path=[PATH_TO_APPENGINE_EXTENSION] app.yaml
Ganti:
- DEVAPPSERVER_ROOT dengan jalur ke folder tempat Anda mengekstrak versi yang diarsipkan dari
devapp_server.py
. --php_executable_path
dengan lokasi penafsir PHP.--php_gae_extension_path
dengan lokasi filegae_runtime_module.so
yang Anda buat di langkah sebelumnya.
- DEVAPPSERVER_ROOT dengan jalur ke folder tempat Anda mengekstrak versi yang diarsipkan dari
Untuk mempelajari opsi perintah
dev_appserver.py
lebih lanjut, lihat Opsi server pengembangan lokal.Server pengembangan lokal sekarang berjalan dan memproses permintaan. Anda dapat membuka http://localhost:8080/ di browser web untuk melihat cara kerja aplikasi.
Jika Anda menentukan port kustom dengan opsi
--port
, jangan lupa untuk membuka browser ke port tersebut.
Untuk menghentikan server lokal dari command line, tekan tombol berikut:
- macOS atau Linux: Control+C
- Windows: Control+Break
Menentukan ID aplikasi
Untuk mengakses ID Aplikasi Anda di server lokal, misalnya untuk melakukan spoofing terhadap alamat email, gunakan fungsi AppIdentityService::getApplicationId
. Untuk mendapatkan nama host aplikasi yang sedang berjalan, gunakan fungsi
AppIdentityService::getDefaultVersionHostname
.
Mendeteksi lingkungan runtime aplikasi
Untuk menentukan apakah kode Anda berjalan di produksi atau di server pengembangan lokal, Anda dapat memeriksa nilai variabel lingkungan SERVER_SOFTWARE
:
if (strpos(getenv('SERVER_SOFTWARE'), 'Development') === 0){
echo 'Local development server';
} else {
echo 'Production';
}
Menyimpan data
App Engine untuk PHP mendukung baca dan tulis ke Cloud Storage melalui API stream PHP. Anda dapat membaca dan menulis ke Cloud Storage dengan menentukan
Cloud Storage URI (gs://
) saat menggunakan fungsi PHP yang mendukung
implementasi Stream PHP, seperti
fopen,
fwrite, atau
file_get_contents.
Server pengembangan lokal mengemulasikan fungsi ini dengan membaca dan menulis ke file lokal sementara yang dipertahankan di antara permintaan.
Menjelajahi Datastore lokal
Jika aplikasi Anda telah menulis data ke Datastore lokal menggunakan server pengembangan lokal, Anda dapat mencarinya di konsol pengembangan lokal.
Untuk menjelajahi Datastore lokal:
Akses Viewer Datastore di konsol pengembangan lokal. (URL-nya adalah
http://localhost:8000/datastore
.)Lihat konten Datastore lokal Anda.
Menggunakan layanan Pengguna
App Engine menyediakan Layanan Pengguna untuk menyederhanakan autentikasi dan otorisasi untuk aplikasi Anda. Server pengembangan lokal menyimulasikan perilaku Akun Google dengan halaman login dan logout-nya sendiri. Saat berjalan di bawah server
pengembangan lokal, fungsi createLoginURL
dan createLogoutURL
menampilkan URL untuk /_ah/login
dan /_ah/logout
di server lokal.
Menggunakan Email
Server pengembangan lokal dapat mengirim email untuk panggilan ke layanan email App Engine menggunakan server SMTP atau penginstalan lokal Sendmail.
Menggunakan SMTP
Untuk mengaktifkan dukungan email dengan server SMTP, panggil dev_appserver.py
seperti
berikut:
python2 [DEVAPPSERVER_ROOT]/google_appengine/dev_appserver.py --smtp_host=smtp.example.com --smtp_port=25 \
--smtp_user=ajohnson --smtp_password=k1tt3ns [PATH_TO_YOUR_APP]
Ganti:
[DEVAPPSERVER_ROOT]
dengan jalur ke folder tempat Anda mengekstrak versi yang diarsipkan daridevapp_server.py
.- Opsi
--smtp_host
,--smtp_port
,--smtp_user
dan--smtp_password
dengan nilai konfigurasi Anda sendiri.
Menggunakan Sendmail
Untuk mengaktifkan dukungan email dengan Sendmail, panggil dev_appserver.py
sebagai berikut:
python2 [DEVAPPSERVER_ROOT]/google_appengine/dev_appserver.py --enable_sendmail=yes [PATH_TO_YOUR_APP]
Ganti [DEVAPPSERVER_ROOT]
dengan jalur ke folder tempat Anda mengekstrak versi yang diarsipkan dari devapp_server.py
.
Server lokal akan menggunakan perintah sendmail
untuk mengirim pesan email dengan konfigurasi default penginstalan Anda.
Menggunakan URL-fetch
Jika aplikasi Anda menggunakan URL-fetch API untuk membuat permintaan HTTP, server pengembangan lokal akan membuat permintaan tersebut langsung dari komputer Anda. Perilaku URL-fetch di server lokal dapat berbeda dengan App Engine produksi jika Anda menggunakan server proxy untuk mengakses situs.
Men-debug secara lokal dengan XDebug
Jika memiliki debugger yang kompatibel dengan
debugger XDebug, dan telah menginstal modul xdebug
, Anda dapat menggunakan XDebug dengan server pengembangan lokal.
Untuk mengaktifkan XDebug pada Server Pengembangan di Linux atau macOS:
Ekspor variabel lingkungan
XDEBUG_CONFIG
dengan kunci ide untuk dihubungkan ke IDE Andaexport XDEBUG_CONFIG="idekey=netbeans-xdebug remote_host=localhost"
Panggil Server Pengembangan dengan
--php_remote_debugging=yes