Utilizzo del server di sviluppo locale

Puoi utilizzare il server di sviluppo locale per simulare per eseguire l'applicazione App Engine in produzione e per utilizzarla per accedere ai servizi in bundle di App Engine.

L'ambiente simulato applica alcune limitazioni della sandbox, ad esempio di funzioni di sistema e di moduli PHP 5, ma non altri, come timeout delle richieste o quote.

Il server di sviluppo locale simula anche i servizi forniti nell'SDK per App Engine, tra cui Datastore, Memcache e Code di attività, eseguendo le relative attività localmente. Se la tua applicazione in esecuzione nel server di sviluppo, puoi comunque effettuare chiamate API remote al dell'infrastruttura di produzione utilizzando gli endpoint HTTP delle API di Google.

Prima di iniziare

Poiché PHP 5 ha raggiunto la fine del supporto, non puoi più utilizzare l'ultima versione di dev_appserver.py per eseguire localmente diverse applicazioni. Per scaricare una versione archiviata di devapp_server.py: passaggi:

  1. Dall'archivio, scarica la cartella compressa che contiene Server dev_appserver.py per i runtime che hanno raggiunto la fine del supporto.

  2. Estrai il contenuto della directory nel file system locale, ad esempio nella directory /home. Puoi trovare dev_appserver.py nella directory google_appengine/.

Configura il server di sviluppo locale

Per eseguire lo strumento del server di sviluppo locale, devi configurare quanto segue:

  1. Verifica di aver installato un interprete Python 2 della versione 2.7.12 o successiva.

  2. Imposta la variabile di ambiente DEVAPPSERVER_ROOT nella shell su il percorso dell'interprete Python 2.

Esegui il server di sviluppo locale

Dopo aver configurato il server di sviluppo locale e creato il app.yaml: di configurazione del file della tua app, puoi usare il comando dev_appserver.py per la tua app in locale.

Per avviare il server di sviluppo locale:

  1. Nella directory che contiene il file di configurazione app.yaml, esegui il comando dev_appserver.py.

    Windows / Mac OS

    Specifica il percorso della directory dell'app, ad esempio:

         python2 [DEVAPPSERVER_ROOT]/google_appengine/dev_appserver.py [PATH_TO_YOUR_APP]
    

    In alternativa, puoi specificare il file di configurazione di un servizio, ad esempio:

         python2 [DEVAPPSERVER_ROOT]/google_appengine/dev_appserver.py app.yaml
    

    Per cambiare la porta, includi l'opzione --port:

         python2 [DEVAPPSERVER_ROOT]/google_appengine/dev_appserver.py --port=9999 [PATH_TO_YOUR_APP]
    

    Sostituisci [DEVAPPSERVER_ROOT] con il percorso della cartella in cui Estrai la versione archiviata di devapp_server.py.

    Linux / cust. php-cgi

    Se sei su Linux o se vuoi usare una versione personalizzata di php-cgi, devi specificare il percorso della directory per php-cgi:

    1. Crea la tua versione dell'estensione PHP di App Engine sul tuo computer locale.

    2. Avvia il server di sviluppo locale con Opzioni --php_executable_path e --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
      

      Sostituisci:

      • DEVAPPSERVER_ROOT con il percorso della cartella in cui Estrai la versione archiviata di devapp_server.py.
      • --php_executable_path con la posizione del file PHP come interprete.
      • --php_gae_extension_path con la posizione di gae_runtime_module.so creato nel passaggio precedente.

    Per scoprire di più sulle opzioni del comando dev_appserver.py, consulta Opzioni del server di sviluppo locale.

  2. Il server di sviluppo locale è ora in esecuzione e rimane in ascolto delle richieste. Tu puoi visitare http://localhost:8080/ nel tuo browser per vedere l'app in azione.

    Se hai specificato una porta personalizzata con l'opzione --port, ricordati di aprire il tuo browser a quella porta.

Per arrestare il server locale dalla riga di comando, premi quanto segue:

  • macOS o Linux: Ctrl+C
  • Windows: Ctrl+Interruzione

Specifica gli ID applicazione

Per accedere al tuo ID app nel server locale, ad esempio per lo spoofing di un'email , utilizza AppIdentityService::getApplicationId personalizzata. Per trovare il nome host dell'app in esecuzione, usa la AppIdentityService::getDefaultVersionHostname personalizzata.

Rilevamento dell'ambiente di runtime dell'applicazione in corso...

Per determinare se il tuo codice è in esecuzione in produzione o nell'ambiente di sviluppo, puoi verificare il valore dell'ambiente SERVER_SOFTWARE variabile:

if (strpos(getenv('SERVER_SOFTWARE'), 'Development') === 0){
  echo 'Local development server';
} else {
  echo 'Production';
}

Archiviare dati

App Engine per PHP supporta la lettura e la scrittura nei Cloud Storage tramite flussi di dati PHP tramite Google Cloud CLI o tramite l'API Compute Engine. Puoi leggere e scrivere in Cloud Storage specificando un URI Cloud Storage (gs://) quando utilizzi una qualsiasi funzione PHP che supporti L'implementazione di flussi PHP come fopen, fwrite o file_get_contents.

Il server di sviluppo locale emula questa funzionalità tramite lettura e scrittura ai file locali temporanei che vengono conservati tra le richieste.

Sfoglia il datastore locale

Se la tua app ha scritto dati nel tuo Datastore locale utilizzando lo sviluppo locale puoi consultarlo nella console di sviluppo locale.

Per sfogliare Datastore locale:

  1. Avvia il server di sviluppo.

  2. Accedi al Visualizzatore Datastore nella nella console di sviluppo locale. L'URL è http://localhost:8000/datastore.

  3. Visualizzare i contenuti locali di Datastore.

Utilizzare il servizio Utenti

App Engine fornisce Servizio utenti per semplificare di autenticazione e autorizzazione per la tua applicazione. Lo sviluppo locale server simula il comportamento di Google Account con le proprie pagine di accesso e uscita. Mentre corri con di sviluppo software, createLoginURL e createLogoutURL restituiscono URL per /_ah/login e /_ah/logout sul server locale.

Utilizza Mail

Il server di sviluppo locale può inviare email per le chiamate ad App Engine servizio di posta elettronica tramite un server SMTP o un'installazione locale Sendmail.

Utilizzo di SMTP

Per attivare il supporto della posta con un server SMTP, richiama dev_appserver.py come segue:

   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]

Sostituisci:

  • [DEVAPPSERVER_ROOT] con il percorso della cartella in cui Estrai la versione archiviata di devapp_server.py.
  • --smtp_host, --smtp_port, --smtp_user e --smtp_password opzioni con i tuoi valori di configurazione.

Utilizzo di Sendmail

Per attivare il supporto via posta con Sendmail, richiama dev_appserver.py in questo modo:

   python2 [DEVAPPSERVER_ROOT]/google_appengine/dev_appserver.py --enable_sendmail=yes [PATH_TO_YOUR_APP]

Sostituisci [DEVAPPSERVER_ROOT] con il percorso della cartella in cui Estrai la versione archiviata di devapp_server.py.

Il server locale utilizzerà il comando sendmail per inviare messaggi email con configurazione predefinita dell'installazione.

Utilizza il recupero URL

Quando la tua applicazione utilizza l'API di recupero URL per effettuare una richiesta HTTP, il server di sviluppo locale effettua la richiesta direttamente dal tuo computer. La Il comportamento di recupero dell'URL sul server locale può essere diverso dall'ambiente di produzione App Engine se utilizzi un server proxy per accedere ai siti web.

Esegui il debug in locale con XDebug

Se disponi di un debugger compatibile con Debugger XDebug, dove troverai il modulo xdebug installato, puoi utilizzare XDebug con il server di sviluppo locale.

Per attivare XDebug sul server di sviluppo su Linux o macOS:

  1. Esporta la variabile di ambiente XDEBUG_CONFIG con una chiave idekey per il tuo IDE connettiti a

    export XDEBUG_CONFIG="idekey=netbeans-xdebug remote_host=localhost"
    
  2. Richiama il server di sviluppo con --php_remote_debugging=yes