Déployer une application web2py

Un article de alwaysdata.

Il y a plusieurs façons de déployer web2py chez alwaysdata, suivant la manière dont vous organisez vos fichiers. Cette page propose une méthode relativement simple.

[modifier] Première étape

Téléchargez web2py et installez les fichiers dans le répertoire de votre choix :

wget http://mdp.cti.depaul.edu/examples/static/web2py_src.zip
unzip web2py_src.zip

Vous aurez désormais un répertoire nommé web2py qui sera la racine de votre projet. Vous pouvez le renommer, par exemple avec un nom plus explicite décrivant votre application (myapp). Quel que soit le nom de ce répertoire, cela ne change pas les instructions suivantes.

[modifier] Deuxième étape

Créez un répertoire public à la racine de votre projet (web2py/public ou, si vous avez renommé le répertoire, myapp/public). À l'intérieur de celui-ci, créez un fichier web2py.fcgi contenant :

#!/usr/bin/python

import os, sys
_PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, _PROJECT_DIR)
os.chdir(_PROJECT_DIR)

import gluon.main
import gluon.contrib.gateways.fcgi as fcgi
fcgi.WSGIServer(gluon.main.wsgibase, environ={'web2py_path': _PROJECT_DIR}).run()

Donnez les droits d'exécution à ce fichier (en SSH : chmod +x web2py.fcgi).

[modifier] Troisième étape

Toujours dans le répertoire public, créez un fichier .htaccess contenant :

AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ web2py.fcgi/$1 [QSA,L]

[modifier] Quatrième étape

Faites pointer votre sous-domaine vers le répertoire public via l'interface d'administration alwaysdata.

Puisque / représente /home/user/www/, le chemin à indiquer dans le formulaire sera /web2py/public si vous avez décompressé web2py dans /home/user/www/ et placé public dans web2py.

[modifier] Accéder à votre application

Vous pouvez désormais accéder à votre application web2py via votre sous-domaine (par exemple, http://user.alwaysdata.net si votre compte est user).

[modifier] ATTENTION !
  • Comme pour l'instant les applications fournies avec les sources ne sont pas installées, vous devriez obtenir une Invalid request. Il faut alors installer vos propres applications ou lancer le script web2py/web2py.py en SSH pour que les applications admin, examples et welcome s'installent automatiquement. Au moment de rentrer le mot de passe admin, vous pouvez annuler avec CTRL+C. Notez que sur un compte gratuit, vous aurez besoin de faire de la place en supprimant le répertoire web2py/applications/examples ainsi que l'archive web2py/examples.tar.
  • L'interface d'administration web2py n'est pas accessible.

[modifier] Hiérarchie alternative

Nous vous proposons une deuxième méthode si vous ne voulez pas que le répertoire public soit au milieu de l'arborescence de base de web2py.

Vous pouvez placer ce répertoire public où vous voulez, mais il faudra changer la définition de _PROJECT_DIR dans public/web2py.fcgi afin qu'il trouve la racine de votre projet :

_PROJECT_DIR = '/home/user/www/path/to/web2py/'

[modifier] Voir aussi

Affichages
Outils personnels
Navigation
Boîte à outils