Faire fonctionner un site django sur sa page perso
- Choisir un dossier dans votre www (ça peut être le dossier www). On l'appellera le dossier A
- Aller dans votre projet django, on dira qu'il est dans le dossier B
Faites un ./manage.py collectstatic. Disons que les fichiers statiques sont collectés dans le dossier C
Faire un ln -s C A/static
- Choisir un port entre 1025 et 65535, on le note p
- Créer un .htaccess dans le dossier A avec dedans :
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ fcgi://127.0.0.1:8000 [P]
en remplaçant 8000 par p
lancez ./manage.py runfcgi method=threaded host=127.0.0.1 port=8000 daemonize=false workdir=/ toujours en remplaçant 8000 par p pour tester. Quand tout marche bien, vous pouvez mettre daemonize=false pour lancer le serveur fcgi en arrière plan.
- profit
Notes
- Pensez a faire correspondre le urls.py de votre projet et le STATIC_URL avec le prefixe de votre page perso. par exemple :
STATIC_URL=/login/static
Ça peut être bien de mettre la commande pour démarrer le serveur fcgi dans un cron pour la lancer au démarrage de la machine : lancer crontab -e et mettez dedans :
@reboot B/manage.py runfcgi method=threaded host=127.0.0.1 port=p daemonize=true workdir=B
- prendre p=8000 est une mauvaise idée comme c'est le port par defaut qu'utilise django, il risque d'être pris par quelqu'un d'autre. Un bon moyen de choisir un port est de le prendre au hasard, par exemple :
valentin@nashi $ echo $(($(($RANDOM * 2)) + $(($RANDOM % 2)))) 15035