Taille: 1294
Commentaire:
|
Taille: 6885
Commentaire:
|
Texte supprimé. | Texte ajouté. |
Ligne 3: | Ligne 3: |
Pour ça, on peut utiliser une machine virtuelle sur Debian '''Jessie'''. . ''Pourquoi pas directement Stretch (qui est déjà sortie depuis plusieurs mois) ?? -- ProgFou'' |
== La rédaction 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'''. |
Ligne 7: | Ligne 10: |
Ligne 8: | Ligne 12: |
Partitions : | Partitions : |
Ligne 14: | Ligne 18: |
Pourquoi 25Go dans le /var/www pour cette petite vm? Chez moi, cette VM servira pour les petits services web qui viendront plus tard. Ex: visites, inscription des usagers... . ''25 Gio sont largement trop pour cela. Pour des applications écrites en Django, 1 ou 2 Gio devraient suffire. Je rappelle qu'aucun site web ne sera hébergé sur place !! -- ProgFou'' . ''Rappel : configurer 1 seule partition de type Volume physique pour LVM (8E), puis créer des LV au lieu des partitions indiquées ci-dessus, cf [[Debian#Installer_Debian_GNU.2FLinux|installer Debian]]. Cela permet de redimensionner très facilement plus tard. -- ProgFou'' |
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. |
Ligne 22: | Ligne 24: |
* Installation d'un gestionnaire de base de données. Mysql-server 5.5 dans mon cas | * Installation d'un gestionnaire de base de données. mysql-server dans mon cas * Installation de git |
Ligne 25: | Ligne 28: |
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 </VirtualHost> ''''' 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 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'visiteurdb', 'USER':'visitor', 'PASSWORD':'mot-de-passe-de-visitor', 'HOST':'localhost' } } 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: - 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 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''' 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'outils prend en charge automatiquemenr le CSS et l'outils peut être mis enproduction :D Merci Ongolaboy et IzaneFG |
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édaction 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.
Prérequis:
- 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 git
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
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 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
DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.mysql', 'NAME': 'visiteurdb', 'USER':'visitor', 'PASSWORD':'mot-de-passe-de-visitor', 'HOST':'localhost'
}
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:
- - 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 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
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'outils prend en charge automatiquemenr le CSS et l'outils peut être mis enproduction
Merci Ongolaboy et IzaneFG