Modifications entre les versions 8 et 12 (s'étendant sur 4 versions)
Version 8 à la date du 2017-10-17 14:12:29
Taille: 6960
Éditeur: WillyManga
Commentaire: Meilleur emplacement
Version 12 à la date du 2017-10-17 16:09:38
Taille: 6864
Commentaire: remise en forme…
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
## page was renamed from ZAC/Ngaoundéré/Configuration/SuiviDesVisiteurs
= Mise en place d'un système d'informations pr
écises pour à la fréquentation et l'objet des visites dans l'implantation =

== La réda
ction de cet article pas encore terminé ==

Pour ç
a, on peut utiliser une machine virtuelle sur Debian '''Jessie'''. Notre version de développement tourne sous django 1.7.11 (dernière version de django sur Jessie. Pour éviter des problèmes de compatibilité pour le moment. Migration que nous effectuerons un peu plus tard)

Pour ça, on peut utiliser une machine virtuelle sur Debian
'''Jessie'''.

Dans mon
cas:
 
 * 1 Go de RAM
 Partitions :   * /  (8 Go)   * /var (8 Go)
 * /var/lib (3Go)
 * /var/www (25Go)

Chez moi, cette VM servira pour les petits services web qui viendront plus tard. Ex: visites, inscription des usagers (où nous avons besoins des photos pour identifier visuellement les usagers)... Mais pour vous 1 ou 2Go suffiront largement. Surtout que les implémentations n’hébergeront plus de site web. Tout est dans le nuage maintenant.
<<TableOfContents()>>

Cette
page décrit la mise en place d'un système d'informations précises sur la fréquentation et l'objet des visites dans l'implantation.

Pour
cela, on peut utiliser une machine virtuelle sous [[Debian/Jessie]].

{i}
Notre version de développement tourne sous [[Django]] 1.7. ''(dernière version de Django sur Jessie, pour éviter des problèmes de compatibilité pour le moment, nous ferons la migration un peu plus tard)''

Con
cernant mon installation :

 * 1 Gio de RAM

 *
Partitions :
 
* `/` (8 Gio)
 
* `/var` (8 Gio)
  * `/var/lib` (3 Gio)
  * `/var/www` (25 Gio)

Chez moi, cette VM servira pour les petits services web qui viendront plus tard. Par exemple : visites, inscription des usagers (où nous avons besoins des photos pour identifier visuellement les usagers), … Mais pour vous 1 ou 2 Gio suffiront largement sur `/var/www`. Surtout que les implantations n’hébergeront plus de site web ; tout est dans le nuage maintenant.
Ligne 22: Ligne 22:
 * Installation de Debian Jessie
 * Installation d'apache 2.4
 * Installation de django 1.7.11
 * Installation d'un gestionnaire de base de données. mysql-server dans mon cas
 * Installation de [[Debian/Jessie]]
 * Installation de Apache 2.4
 * Installation de Django 1.7
 * Installation d'un gestionnaire de base de données : MySQL dans mon cas
Ligne 28: Ligne 28:
Bon ben... Allons y :)

Après l'installation de la nouvelle VM, on installe les paquets:

'''apt-get install apache2 libapache2-mod-wsgi mysql-server-5.5 python-django python-mysqldb'''

Si '''git''' n'est pas installé, veillez le faire

'''$sudo apt install git'''

Ensuite, on commence par cloner le dépot de notre outils : '''git clone https://github.com/ongolaboy/dacgl_utils.git'''

'''''Configuration d'apache2'''''

Dans mon cas, j'ai crée un virtual host pour l'application : visiteur.conf

Voici le contenu de mon fichier "visiteur.conf"

'''$vi /etc/apache2/sites-available/visites.conf'''


        ServerName visiteur.cg.auf
        ServerAdmin tech@cg.auf.org

        Alias /static/ /var/www/dacgl/static/
        WSGIScriptAlias / /home/rene/dacgl_utils/dacgl/wsgi.py

         <Directory /var/www/dacgl>
                Require all granted
        </Directory>
         <Directory /home/rene/dacgl_utils/dacgl>
                <Files wsgi.py>
                        Require all granted
                </Files>
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/visiteurs.cm.auf.org_error.log
        CustomLog ${APACHE_LOG_DIR}/visiteurs.cm.auf.org_access.log combined
Bon ben… Allons y ! :)

Après l'installation de la nouvelle VM, on installe les paquets : {{{#!shell
sudo apt-get install apache2 libapache2-mod-wsgi mysql-server python-django python-mysqldb
}}}

Si `git` n'est pas installé, veillez à le faire : {{{#!shell
sudo apt-get install git
}}}

Ensuite, on commence par cloner le dépôt de notre outils : {{{#!shell
git clone https://github.com/ongolaboy/dacgl_utils.git
}}}

== Configuration Apache ==

Dans mon cas, j'ai créé un `VirtualHost` pour l'application : `visiteur.conf`

Voici le contenu de mon fichier `/etc/apache2/sites-available/visites.conf` : {{{#!apache
<VirtualHost>
 ServerName visiteur.cg.auf
 ServerAdmin tech@cg.auf.org
 ErrorLog ${APACHE_LOG_DIR}/visiteurs.cm.auf.org_error.log
 CustomLog ${APACHE_LOG_DIR}/visiteurs.cm.auf.org_access.log combined
 Alias /static/ /var/www/dacgl/static/
 <Directory /var/www/dacgl>
  Require all granted
 </Directory>
 WSGIScriptAlias / /home/rene/dacgl_utils/dacgl/wsgi.py
 <Directory /home/rene/dacgl_utils/dacgl>
  <Files wsgi.py>
   Require all granted
  </Files>
 </Directory>
Ligne 68: Ligne 63:

'''''
Activer votre Vhost'''''
'''$
sudo a2ensite visiteur.conf'''

'''''
Création de la base de donnée dans MYSQL'''''

On va dans notre SGBD, on crée une nouvelle base donnée avec un nouveau utilisateur et un mot de passe
En passant, j'avais déjà installer mon phpmyadmin pour aller vite :D
Mais sinon, on peut créer en ligne de commande:

# mysql -u root -p
'''''Création de ma base de donner "visiteurdb"'''''
 mysql>
CREATE DATABASE visiteurdb CHARACTER SET 'utf8';
'''''Création de l'utilisateur "visitor"'''''
 mysql>
CREATE USER 'visitor'@'localhost' IDENTIFIED BY 'Votre mot de passe';
'''''je donne tous les privillège à mon utilisateur visitor (ce mieux de donner les privillège juste à ta base)'''''
 mysql>
GRANT ALL PRIVILEGES ON * . * TO 'visitor'@'localhost';

'''''Direction vers le dossier sur
home/votre-utilisateut/:'''''

==Modifier les fichiers wsgi.py==


'''$
vi dacgl_utils/dacgl/wsgi.py'''
a. on ajoute le deux ligne   import sys
sys.path.append('/home/rene/dacgl_utils') #Le chemin vers l'application

(Juste après: import os)



==On modifie le seeting.py==

'''$vi dacgl_utils/dacgl/setting.py'''

a. Ajouter le Full Qualify Domain Name dans la directive

'''
ALLOWED_HOSTS = ['gestion-usager.cg.auf'] ''' #'gestion-usager.cg.auf' est mon FQDN, Mettez le vôtre

b. Modifier les paramètre de la base de donnée
}}}

Activer votre `VirtualHost` : {{{#!shell
sudo a2ensite visiteur.conf
}}}

==
Configuration MySQL ==

On va dans notre SGBD, on crée une nouvelle base donnée avec un nouveau utilisateur et un mot de passe.

En passant, j'avais déjà installer mon phpMyAdmin pour aller vite. :D

Mais sinon, on peut créer en ligne de commande : {{{#!shell
mysql -u root -p
}}}
{{{#!mysql
--
Création de ma base de données "visiteurdb"
CREATE DATABASE visiteurdb CHARACTER SET 'utf8';
-- Création de l'utilisateur "visitor"
CREATE USER 'visitor'@'localhost' IDENTIFIED BY 'Votre mot de passe';
-- Je donne tous les privilèges à mon utilisateur "visitor" (c'est mieux de donner les privilèges juste à ta base)
GRANT ALL PRIVILEGES ON * . * TO 'visitor'@'localhost';
}}}

La suite dans le dossier `/
home/votre-utilisateur/`…

== Configuration WSGI ==

{{{#!shell
vi dacgl_utils/dacgl/wsgi.py
}}}

 
a. on ajoute ces deux lignes (juste après `import os`) : {{{#!python
import sys

sys.path.append('/home/rene/dacgl_utils') # Le chemin vers l'application
}}}


== Configuration Django ==

{{{#!shell
vi dacgl_utils/dacgl/setting.py
}}}

 
a. Ajouter le FQDN (Fully Qualified Domain Name) dans la directive : {{{#!python
ALLOWED_HOSTS = ['gestion-usager.cg.auf'] ''' # 'gestion-usager.cg.auf' est mon FQDN, mettez le vôtre
}}}
 a.
Modifier les paramètre de la base de donnée : {{{#!python
Ligne 111: Ligne 112:
  'default': {
  'ENGINE': 'django.db.backends.mysql',
        'NAME': 'visiteurdb',
        'USER':'visitor',
  'PASSWORD':'mot-de-passe-de-visitor',
        'HOST':'localhost'
   'default': {
       'ENGINE': 'django.db.backends.mysql',
       'NAME': 'visiteurdb',
       'USER':'visitor',
       'PASSWORD':'mot-de-passe-de-visitor',
       'HOST':'localhost'
Ligne 119: Ligne 120:


c
. Ajout de la ligne

STATIC_ROOT = '/var/www/dacgl/static' #juste après "STATIC_URL"

'''''Placez ensuite dans le dossier "
/home/votrenomuser/dacgl_utils" et executer ces différente commande'''''

'''$
python manage.py makemigrations id2'''

 
0017_auto_20171016_1741.py:
}}}
 a
. Ajout de la ligne suivante : {{{#!python
STATIC_ROOT = '/var/www/dacgl/static' # juste après "STATIC_URL"
}}}

== Déploiement Django ==

Se placer ensuite dans le dossier `
/home/votrenomuser/dacgl_utils` et exécuter ces différentes commandes :
{{{#!shell
python manage.py makemigrations id2

0017_auto_20171016_1741.py:
Ligne 134: Ligne 136:

'''$ python manage.py migrate'''

Applying id2.0005_auto_20170505_0733... OK
}}}

{{{#!shell
python manage.py migrate

  Applying id2.0005_auto_20170505_0733... OK
Ligne 151: Ligne 155:


'''$python manage.py makemigrations id2'''


'''''On créer le dossier 'dacgl' dans /var/www'''''
'''$sudo mkdir /var/www/dacgl'''
'''$sudo mkdir /var/www/dacgl/static'''

Après tous ça, j'ai rencontrer ce porblème dans mon navigateur :Bad request (400)

Juste parce que j'avais pas rensigner la directive ALLOW_HOST dans mon setting.py, mais si vous suuivez pas à pas tous ce qui est au dessus, vous n'allez pas rencontrer ce problème, sauf si vous avez fait des erreur de syntaxe ou quelque chose autre.

En cas de problème, voir le log


Problème rencontrer au niveau de syntaxe de ALLOW_HOSTS , oublie de quote


'''''création d'un compte administrateur pour l'outils'''''
Toujours en se positionnant dans le dossier de l'application

'''$ python manage.py createsuperuser'''

Introduisez le username et le password

Juste Après, j'ai rencontrer des problème de CSS, n'ayer pas peur :) , le dossier 'static' dans '/var/www/dacgl/static' est encore vide. Les fichier CSS doivent être dans un dossier controler pas apache2.

'''''collectionner tous le fichier static (Tranfert des fichiers CSS, javascript et autre dans notr dossier static)'''''
'''$ python manage.py collectstatic'''
}}}

{{{#!shell
python manage.py makemigrations id2

# On créer le dossier 'dacgl' dans /var/www
sudo mkdir /var/www/dacgl
sudo mkdir /var/www/dacgl/static
}}}

Après tous ça, j'ai rencontré ce problème dans mon navigateur : {{{
Bad request (400)
}}}

Juste parce que j'avais pas renseigné la directive `ALLOW_HOST` dans mon `setting.py`. Mais si vous suivez pas-à-pas tout ce qui est au dessus, vous n'allez pas rencontrer ce problème, sauf si vous avez fait des erreurs de syntaxe ou quelque chose autre.

En cas de problème, voir le log.

Problème rencontré au niveau de syntaxe de `ALLOW_HOSTS`, oublie d'apostrophes.


== Création d'un compte administrateur ==

Toujours en se positionnant dans le dossier de l'application : {{{#!shell
python manage.py createsuperuser
}}}

Introduisez le username et le password.

Juste après, j'ai rencontré des problème de CSS, n'ayez pas peur :) , le dossier `static` dans `/var/www/dacgl/static` est encore vide. Les fichier CSS doivent être dans un dossier contrôlé par Apache.

== Collecte des fichiers static ==

Il s'agit d'un transfert des fichiers CSS, javascript et autres dans notre dossier `static`.

{{{#!shell
python manage.py collectstatic
Ligne 191: Ligne 202:

Et après voilà l'outils prend en charge automatiquemenr le CSS et l'outils peut être mis enproduction :D
}}}

Et après voilà l'outil prend en charge automatiquement le CSS et l'outil peut être mis en production. :D
Ligne 195: Ligne 207:
----

Cette page décrit la mise en place d'un système d'informations précises sur la fréquentation et l'objet des visites dans l'implantation.

Pour cela, on peut utiliser une machine virtuelle sous Debian/Jessie.

{i} Notre version de développement tourne sous Django 1.7. (dernière version de Django sur Jessie, pour éviter des problèmes de compatibilité pour le moment, nous ferons la migration un peu plus tard)

Concernant mon installation :

  • 1 Gio de RAM
  • Partitions :
    • / (8 Gio)

    • /var (8 Gio)

    • /var/lib (3 Gio)

    • /var/www (25 Gio)

Chez moi, cette VM servira pour les petits services web qui viendront plus tard. Par exemple : visites, inscription des usagers (où nous avons besoins des photos pour identifier visuellement les usagers), … Mais pour vous 1 ou 2 Gio suffiront largement sur /var/www. Surtout que les implantations n’hébergeront plus de site web ; tout est dans le nuage maintenant.

Prérequis:

  • Installation de Debian/Jessie

  • Installation de Apache 2.4
  • Installation de Django 1.7
  • Installation d'un gestionnaire de base de données : MySQL dans mon cas
  • Installation de git

Bon ben… Allons y ! :)

Après l'installation de la nouvelle VM, on installe les paquets :

sudo apt-get install apache2 libapache2-mod-wsgi mysql-server python-django python-mysqldb

Si git n'est pas installé, veillez à le faire :

sudo apt-get install git

Ensuite, on commence par cloner le dépôt de notre outils :

git clone https://github.com/ongolaboy/dacgl_utils.git

Configuration Apache

Dans mon cas, j'ai créé un VirtualHost pour l'application : visiteur.conf

Voici le contenu de mon fichier /etc/apache2/sites-available/visites.conf :

<VirtualHost>
        ServerName visiteur.cg.auf
        ServerAdmin tech@cg.auf.org
        ErrorLog ${APACHE_LOG_DIR}/visiteurs.cm.auf.org_error.log
        CustomLog ${APACHE_LOG_DIR}/visiteurs.cm.auf.org_access.log combined
        Alias /static/ /var/www/dacgl/static/
        <Directory /var/www/dacgl>
                Require all granted
        </Directory>
        WSGIScriptAlias / /home/rene/dacgl_utils/dacgl/wsgi.py
        <Directory /home/rene/dacgl_utils/dacgl>
                <Files wsgi.py>
                        Require all granted
                </Files>
        </Directory>
</VirtualHost>

Activer votre VirtualHost :

sudo a2ensite visiteur.conf

Configuration MySQL

On va dans notre SGBD, on crée une nouvelle base donnée avec un nouveau utilisateur et un mot de passe.

En passant, j'avais déjà installer mon phpMyAdmin pour aller vite. :D

Mais sinon, on peut créer en ligne de commande :

mysql -u root -p

-- Création de ma base de données "visiteurdb"
CREATE DATABASE visiteurdb CHARACTER SET 'utf8';
-- Création de l'utilisateur "visitor"
CREATE USER 'visitor'@'localhost' IDENTIFIED BY 'Votre mot de passe';
-- Je donne tous les privilèges à mon utilisateur "visitor" (c'est mieux de donner les privilèges juste à ta base)
GRANT ALL PRIVILEGES ON * . * TO 'visitor'@'localhost';

La suite dans le dossier /home/votre-utilisateur/

Configuration WSGI

vi dacgl_utils/dacgl/wsgi.py
  1. on ajoute ces deux lignes (juste après import os) :

       1 import sys
       2 sys.path.append('/home/rene/dacgl_utils') # Le chemin vers l'application
    

Configuration Django

vi dacgl_utils/dacgl/setting.py
  1. Ajouter le FQDN (Fully Qualified Domain Name) dans la directive :

       1 ALLOWED_HOSTS = ['gestion-usager.cg.auf'] ''' # 'gestion-usager.cg.auf' est mon FQDN, mettez le vôtre
       2 
    
  2. Modifier les paramètre de la base de donnée :

       1 DATABASES = {
       2    'default': {
       3        'ENGINE': 'django.db.backends.mysql',
       4        'NAME': 'visiteurdb',
       5        'USER':'visitor',
       6        'PASSWORD':'mot-de-passe-de-visitor',
       7        'HOST':'localhost'
       8     }
       9 }
    
  3. Ajout de la ligne suivante :

       1 STATIC_ROOT = '/var/www/dacgl/static' # juste après "STATIC_URL"
    

Déploiement Django

Se placer ensuite dans le dossier /home/votrenomuser/dacgl_utils et exécuter ces différentes commandes :

python manage.py makemigrations id2

0017_auto_20171016_1741.py:
    - Alter field derniere_modif on abonne
    - Alter field inscription on abonne
    - Alter field date_arrivee on visite
    - Alter field date_arrivee on visiteprof

python manage.py migrate

  Applying id2.0005_auto_20170505_0733... OK
  Applying id2.0006_auto_20170509_0825... OK
  Applying id2.0007_auto_20170512_1337... OK
  Applying id2.0008_auto_20170512_1345... OK
  Applying id2.0009_auto_20170512_1355... OK
  Applying id2.0010_auto_20170512_1356... OK
  Applying id2.0011_auto_20170512_1358... OK
  Applying id2.0012_auto_20170512_1538... OK
  Applying id2.0013_auto_20171008_0950... OK
  Applying id2.0014_auto_20171008_1015... OK
  Applying id2.0015_auto_20171008_1740... OK
  Applying id2.0016_auto_20171014_1800... OK
  Applying id2.0017_auto_20171016_1741... OK
  Applying sessions.0001_initial... OK

python manage.py makemigrations id2

# On créer le dossier 'dacgl' dans /var/www
sudo mkdir /var/www/dacgl
sudo mkdir /var/www/dacgl/static

Après tous ça, j'ai rencontré ce problème dans mon navigateur :

Bad request (400)

Juste parce que j'avais pas renseigné la directive ALLOW_HOST dans mon setting.py. Mais si vous suivez pas-à-pas tout ce qui est au dessus, vous n'allez pas rencontrer ce problème, sauf si vous avez fait des erreurs de syntaxe ou quelque chose autre.

En cas de problème, voir le log.

Problème rencontré au niveau de syntaxe de ALLOW_HOSTS, oublie d'apostrophes.

Création d'un compte administrateur

Toujours en se positionnant dans le dossier de l'application :

python manage.py createsuperuser

Introduisez le username et le password.

Juste après, j'ai rencontré des problème de CSS, n'ayez pas peur :) , le dossier static dans /var/www/dacgl/static est encore vide. Les fichier CSS doivent être dans un dossier contrôlé par Apache.

Collecte des fichiers static

Il s'agit d'un transfert des fichiers CSS, javascript et autres dans notre dossier static.

python manage.py collectstatic

You have requested to collect static files at the destination
location as specified in your settings:

    /var/www/dacgl/static

This will overwrite existing files!
Are you sure you want to do this?

Type 'yes' to continue, or 'no' to cancel: yes

Et après voilà l'outil prend en charge automatiquement le CSS et l'outil peut être mis en production. :D

Merci Ongolaboy et IzaneFG


ZAC/Projets/SuiviVisiteurs (dernière édition le 2017-10-24 21:28:03 par WillyManga)