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.
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)
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
<?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
ç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.
voilà re-test ...
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/
Il faut modifier le fichier app.yaml pour changer la ligne application et mettre le nom que vous avez déclaré ci dessus
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/
Pour le test il suffit dans un navigateur d’appeler la web application pour moi c’est geekmpsphp.
http://geekmpsphp.appspot.com/
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