Créer un nouveau site basé sur Django hpages
DNS
Rediriger le nom d'hôte du site vers The Fool.
Sur le serveur
Créer le dossier ~/www/<monsite>
$ mkdir -p ~/www/<monsite>
Lier /var/www/<monsite> à ~/www/<monsite>
$ ln -s ~/www/<monsite> /var/www/<monsite>
Créer les répertoires public, theme, theme/admin (et copier le contenu du dossier admin)
$ mkdir -p ~/www/<monsite>/public ~/www/<monsite>/theme/admin
Créer éventuellement un .htaccess
Créer la base de donnée
$ mysql -u root -p
mysql> create database <monsite>;
Créer le nouveau site django
$ cd ~/django $ django_admin startproject <monsite>
Configurer le site django (éditer settings.py et urls.py), puis
$ ./manage.py syncdb
Configurer Apache : créer le fichier /etc/apache2/sites-available/<mon-site>:
<VirtualHost *:80>
DocumentRoot /var/www/<monsite> ServerName example.org ServerAdmin admin@example.org CustomLog "/var/log/apache2/<monsite>.log" combined
- <Location "/">
SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE <monsite>.settings PythonDebug On PythonPath "['$HOME/django'] + sys.path"
</Location>
- <Location "/public">
SetHandler None
</Location> <Location "/theme">
SetHandler None
</Location>
- <Location "/admin">
RewriteEngine on RewriteBase /admin RewriteCond %{SERVER_PORTS} !^443$ RewriteRule ^(.*)?$ https://%{SERVER_NAME}/admin/ [L,R]
</Location>
</VirtualHost>
- <VirtualHost *:443>
DocumentRoot /var/www/<monsite> ServerName example.org ServerAdmin admin@example.org CustomLog "/var/log/apache2/<monsite>.log" combined
- <Location "/">
SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE <monsite>.settings PythonDebug On PythonPath "['$HOME/django'] + sys.path"
</Location>
- <Location "/public">
SetHandler None
</Location> <Location "/theme">
SetHandler None
</Location>
SSLEngine on SSLCertificateFile /etc/apache2/server.crt SSLCertificateKeyFile /etc/apache2/server.key
</VirtualHost>
Activer le site
# a2ensite <monsite> # /etc/init.d/apache2 reload
Ajouter le site à la page des statistiques
Ajouter le site à l'accueil de The Fool
Passer d'une version à l'autre de hpages
Si les modèles ont changé, il faut reconstruire la base de données.
Soit le site suivant
django/ |- monsite/ |- apps/ | |- hpages |- templates/
Arrêt du site
# a2dissite monsite # /etc/init.d/apache2 reload
Sauvegarde des données
cd monsite ./manage.py dumpdata --indent=4 --format=xml > initial_data.xml cd ..
Sauvegarde du site
cp -r monsite monsite.old
Création d'une nouvelle base de données
mysql -u root -p create database monsite2;
Mise à jour des paramètres du site (application, base de donnée) dans settings.py et urls.py
Création des tables de la nouvelle base, et chargement des données initiales
cd monsite ./manage.py syncdb
Remise en ligne du site
# a2ensite monsite # /etc/init.d/apache2 reload