Google vient d’annoncer récemment que PHP était disponible dans Google App Engine. Chouette on va pouvoir commencer à s’amuser. Le python et le java ce n’était franchement pas mon truc.

Tout d’abord qu’est ce Google App Engine, un hébergeur, une machine virtuelle chez google ? D’après la définition de Google, il s’agit d’un espace sur les machines de google pour faire tourner une web application. Après le python, le java etc … vient donc d’être ajouté le php. Je vais essayer de faire un tout petit guide de démarrage rapide (tutorial) en français. Histoire de voir l’utilisation de cette possibilité qu’offre google.

J’ai donc réalisé ce tuto guide sous Ubuntu 13.04 (sous windows c’est légèrement différent mais rien de bien sorcier).

Cet article n’est la que pour vous mettre le pied à l’étrier, pour des applications plus complexes rien ne vaut les exemples fournis par google.

 Google App Engine php img 013 Google App Engine php img 014

Les limites

Il y a des limites, on a droit à 10 applications de 1go chacune (si je dis pas de bêtises) après le 1go c’est 0.13$ HT par Go et par mois.

La bande passante est elle aussi payant audela 1 go est c’est 0.12$.

Mysql est aussi facturé à l’heure.

bref les tarifs c’est pas ici https://developers.google.com/appengine/docs/billing les limites c’est ici https://developers.google.com/appengine/docs/quotas (bon courage pour les lires)

En php on ne peut pas tout faire, certaines fonctions ont été supprimée (passthru par exemple)

Pour le stockage de données, il y a 2 possibilités soit  Google Cloud SQL , soit le Google Cloud Storage

 

Comment ça marche

1) je teste en local que tout fonctionne grâce au SDK

2) j’envoi sur les machines de google

3) j’attends le déployement

4) je teste la web application

On peut même faire du wordpress https://developers.google.com/appengine/articles/wordpress mais ça devient payant à cause de la Base de données

Avant de commencer se préparer

Avant de commencer il y a plusieurs petites choses à faire. On peut commencer par se créer un compte développeur (oui ça peut servir). Ce n’est pas nécessaire de le faire tout de suite, mais ça peut être utile  plus tard.

1) vérifier que python est bien installé en version > 2.7

jbaptiste@Ubuntu-v2:~/programmes$ /usr/bin/python --version
Python 2.7.4

 

 

2) contrôler qu’on a bien un php-cgi 5.4 d’installé

jbaptiste@Ubuntu-v2:~/programmes$ php5-cgi --version
PHP 5.4.9-4ubuntu2.3 (cgi-fcgi) (built: Sep  4 2013 19:28:09)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
    with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans

 

 

3) avoir un mysql 5.5

jbaptiste@Ubuntu-v2:~/programmes$ mysql --version
mysql  Ver 14.14 Distrib 5.5.32, for debian-linux-gnu (x86_64) using readline 6.2

 

4) récupérer le SDK

ça se passe ici https://developers.google.com/appengine/docs/php/gettingstarted/installing il y en a pour tous les goût (linux, windows, mac).

Un fois l’archive récupéré (au moment où j’écris ces lignes elle se nomme google_appengine_1.8.5.zip et pèse 49Mo) la dezipper où bon vous semble. Bon voilà sous linux je n’avais pas unzip … Donc vous pouvez essayer ça

unzip  google_appengine_1.8.5.zip

 

 

Voilà on est prêt on a normalement tout ce qu’il faut pour essayer App Engine en local

//se créer une application (un truc avec un url, les version .appspot.com)

Il ne faut pas oublier de s’inscrire au programme php (ce n’est pas vraiment obligatoire, mais si vous voulez diffuser c’est mieux)

Google App Engine php img 001 Google App Engine php img 002

 

Premier script  … Hello world évidemment

1) créer un répertoire pour accueillir  votre script

J’ai choisi de réunir les script App Engine dans un répertoire ~/www/appengine/

Donc je créé le répertoire  ~/www/appengine/helloworld

 

2) créer le script php

Bon là rien de sorcier, dans le répertoire précédent on créé un fichier php que l’on nomme au hasard helloworld.php et on entre le ligne suivante

Google App Engine php img 008

<?php
  echo 'Hello, World! GeekMPS';
  echo '<br/><a href="http://geekmps.fr"> Geekmps</a>';

 

 

 

 

 

3) créer le fichier de configuration

Il faut également créer le fichier de configuration de votre app se fichier s’appelle obligatoirement app.yaml (que l’on place aussi dans le répertoire helloworld) Il ya tout un blabla sur le language yaml sur le site de google.

On va y mettre les lignes suivantes:

application: helloworld
version: 1
runtime: php
api_version: 1
handlers:
- url: /.*
  script: helloworld.php

 

 

Remarque : Ici le nom de l’application n’a pas d’importance en revanche avant de l’envoyer sur les serveurs de google il faudra le changer.

 

4) on teste en local (pour Ubuntu 13.04)

Se placer dans le répertoire du SDK (bah oui c’est plus simple pour la commande suivante ;) )

./dev_appserver.py --php_executable_path=/usr/bin/php5-cgi ~/www/appengine/helloworld/ --port=8083

J’ai utilisé le port 8083 car j’ai déjà un nginx en 8081, un solar en 8082, un apache en 80 etc sur ma machine locale.

Dans un navigateur en entrant http://localhost:8083 vous devriez lire Hello World!

 

 

Et là c’est la grosse blague de Ubuntu ou Google, je ne peux pas tester car j’ai le module memcache activé (bah oui j’en ai besoin pour d’autre site !!! ). Donc va falloir le désactiver

Google App Engine php img 003 Google App Engine php img 004

ça se passe dans /etc/php5/conf.d/20-memcache.ini   Il suffit de tout passe en commentaire. Ne pas oublier de faire l’inverse après avoir fini vos tests.

Google App Engine php img 009

voilà re-test ...

Google App Engine php img 007

Ca marche pas, pas grave je vais quand même déployer :D

 

Envoyer son programme php chez Google

Si ce n’est pas déjà fait il faut créer votre application https://appengine.google.com/

Google App Engine php img 005

Il faut modifier le fichier app.yaml pour changer la ligne application et mettre le nom que vous avez déclaré ci dessus

Google App Engine php img 006

Envoyer vers le serveur votre code avec la commande suivante. Se placer dans le répertoire du SDK (ce n’est pas obligatoire mais çà aide pour la commande suivante ;) )

./appcfg.py update ~/www/appengine/helloworld/

Google App Engine php img 011

 

Pour le test il suffit dans un navigateur d’appeler la web application pour moi c’est geekmpsphp.

http://geekmpsphp.appspot.com/

Google App Engine php img 012

Remarque l’utilisation de git est possible il faut simplement créer un dépôt sur le google’s cloud

 

Conclusion

Il est très facile de faire du php sur les machines de google avec App Engine. Vous allez me dire l’exemple que je donne ne sert à rien. Oui il ne sert à rien. Maintenant en regardant les exemples, vous pouvez utiliser le stockage Mysql de App Engine, le stockage Cloud Storage, utiliser bien d’autre ressource de google depuis un App Php

Est ce que google devient un héberger, oui et non, il faut comparer les prix, savoir que ce n’est pas le même service, que la base de donnée est payée à l’utilisation (tiens revoilà un système de facturation que IBM pratiquait) etc...

Pour aller plus loin lire la suite du guide de démarrage directement chez google https://developers.google.com/appengine/docs/php/gettingstarted/usingusers

 

Comments powered by CComment

We use cookies

Nous utilisons des cookies sur notre site web. Certains d’entre eux sont essentiels au fonctionnement du site et d’autres nous aident à améliorer ce site et l’expérience utilisateur (cookies traceurs). Vous pouvez décider vous-même si vous autorisez ou non ces cookies. Merci de noter que, si vous les rejetez, vous risquez de ne pas pouvoir utiliser l’ensemble des fonctionnalités du site.