Linux / Ubuntu

Configurer Apache 2 avec Django 1.7

Déployer son site internet Lille réalisé sous Django sur un serveur Apache 2 peut se faire de différentes manières. Voici la version simple via un fichier httpd.conf avec mod_wsgi.

On suppose que :Envoyer le dossier du projet sur le serveur (par ssh par exemple, depuis le serveur:

scp -r user@IP-source:/chemin/vers/le/projet /home/projet

1. Installer mod-wsgi sur le serveur

 $ sudo aptitude install libapache2-mod-wsgi

Redémarrer Apache

 $ sudo service apache2 restart

Activer mod-wsgi

$ a2enmod wsgi

2. Modifier le fichier wsgi.py sur le serveur

 import sys
sys.path.append("/home/projet/;)

3. Créer un fichier "static" (pour ma part, je le crée dans un autre répertoire que celui du projet: /var/www/) et on attribue les droits à Apache (www-data)

$ mkdir /var/www/projet-static
chown www-data:www-data /var/www/projet-static

Modidier settings.py

STATIC_ROOT = "/var/www/projet-static/"

Et on lance un collectstatic:


cd /home/projet
python manage.py collectstatic

4. On crée le fichier de configuration Apache dans /etc/apache2/

nano /etc/apache2/httpd.conf

Et on y insère la configuration suivante :

<Directory /home/psychloe/>
   <Files wsgi.py>
       Require all granted
   </Files>
</Directory>
Alias /static/ /var/www/psychloe/static/

<Directory /var/www/psychloe/static>

Require all granted

AllowOverride All

</Directory>

5. Enfin, on redémarre Apache (vu plus haut)