[obsolète] Installation de Crème CRM 1.6 sous Linux
#1
(ceci est une petite mise-à-jour du tutoriel pour pour Creme1.5 de jmarmand https://www.cremecrm.com/forum/showthread.php?tid=70)

Pour ce tutoriel d'installation de Crème CRM sous Linux on va faire les choses du mieux possible. On va donc installer des choses qui pourraient vous sembler inutiles mais qui à terme permettront d'avoir une installation pérenne et qui ne rentrera pas en collision avec d'autres logiciels que vous pourriez vouloir installer.

Enfin, le tutoriel va être en deux parties, la première partie vous permet d'installer tout le nécessaire pour faire fonctionner Crème avec le serveur de développement intégré dans Django. Le serveur de développement n'est pas une façon pérenne de faire fonctionner une application Django. Mais c'est un moyen simple de vérifier que tout fonctionne et vous pouvez faire quelques tests avec pour vérifier que Crème vous convient.

La deuxième partie du tutoriel vous permettra d'utiliser Apache pour faire tourner votre Crème. Bien que plus compliqué à faire fonctionner, c'est une façon pérenne de faire les choses.

Une remarque très importante : si l'utilisation du serveur de développement est déconseillé pour une utilisation sur du long terme dans le cadre d'une machine personnelle, elle est par contre totalement interdite dans le cadre d'un hébergement sur un serveur. Si vous comptez installer Crème  tout de suite sur un serveur, il ne faut pas, pas une seule seconde, utiliser le serveur de développement. En effet celui-ci est fait pour le test et rien d'autre. Il n'est pas prévu, ni en terme de performance ni en terme de sécurité, pour être utilisé dans un vrai contexte de production.

On va donc commencer par installer Virtualenv. Virtualenv vous permet en effet d'avoir plusieurs environnements virtuels Python. L’intérêt est de pouvoir cloisonner les dépendances par projet. Vous êtes ainsi sûr que votre Crème n’arrêtera pas de fonctionner juste parce que vous avez dû mettre à jour une librairie Python pour pouvoir installer un autre logiciel. On ne va pas se contenter d'installer Virtualenv et on va installer aussi Virtualenvwrapper qui est une surcouche à Virtualenv et qui vous simplifiera les choses.

Pour installer tout cela, vous allez devoir commencer par installer python-setuptools et python-pip. Si vous êtes sous Debian ou Ubuntu il vous suffit de faire :
Code :
sudo apt-get install python-setuptools
sudo apt-get install python-pip

Ensuite, vous allez installer Virtualenvwrapper qui installera automatiquement Virtualenv en même temps.
Pour cela il vous suffit de taper :
Code :
sudo pip install virtualenvwrapper

Avant d'aller plus loin, il faut que vous vérifiez que les packages suivants sont bien installés, sinon, installez les :
  • mysql_config libmysqlclient-devpython-devlibxslt1-devdefault-jrelibjpeg-dev (et potentiellement les autres bibliothèques de gestion d'images selon vos besoins, comme libpng*-dev)graphvizgraphviz-dev

Une fois que tout est installé on va pouvoir créer le Virtualenv pour Crème.

Il reste pourtant une dernière petite config à faire, à savoir indiquer où vous allez stocker vos différents Virtualenv. Je vais partir du principe que vous utilisez le répertoire Envs à la racine de votre home. Il va falloir que dans le fichier de configuration de votre shell (.bashrc si vous utilisez le bash) vous configuriez la variable WORKON_HOME. Cela se fait de la manière suivante (pour bash)
Code :
export WORKON_HOME=~/Envs


Une fois cela fait et après avoir rechargé votre configuration, vous pouvez créer votre Virtualenv en tapant la commande :
Code :
mkvirtualenv creme
L'option –no-site-packages permet d'être sûr que votre Virtualenv sera bien isolé de votre système et que vous n'utiliserez pas par inadvertance un package de celui-ci. Il faut d'ailleurs noter que dans les dernières versions de Virtualenvwrapper, cette option est obsolète. En effet, l'isolation des Virtualenv est devenu le comportement par défaut.

Une fois que votre Virtualenv est créé, il faut l'activer pour votre console. Vous allez en effet installer de nouveaux packages Python et faire des commandes Django et tout doit se faire dans votre Virtualenv. L'activation d'un Virtualenv se fait avec la commande workon. Si vous la lancez sans argument elle vous donnera la liste des Virtualenv possibles. Avec un nom de Virtualenv, elle l'active.

Ici, vous devez donc taper
Code :
workon creme

Il y a d'autre commandes intéressantes dans Virtualenvwrapper. Vous les trouverez dans le man. Une commande qui vous sera utile est la commande deactivate qui permet de sortir d'un Virtualenv pour revenir à votre environnement système classique.

Maintenant que vous avez activé votre Virtualenv, il vous faut récupérer Crème. Je vais partir du principe que vous voulez installer la version 1.6 (une version 1.7 sortira durant l'année 2017). Pour cela il suffit d'utiliser mercurial (que vous devez avoir installé avec votre gestionnaire de package préféré).

Taper simplement à l'endroit où vous voulez déposer le code source de Crème :
Code :
hg clone https://bitbucket.org/hybird/creme_crm-1.6

Vous remarquerez que les sources de Crème contiennent (dans le répertoire creme) un petit fichier requirements.txt. C'est ce fichier qui va servir à installer de manière automatique les dépendances.

Il vous suffit donc de taper (suivant l'endroit d'où vous vous trouvez)
Code :
pip install -r creme/requirements.txt
ou
Code :
pip install -r requirements.txt

Une fois l'installation des dépendances finies et avant de passer au déploiement de Crème proprement dit, on va devoir configurer la base de données.

Je vais partir du principe que vous utilisez MySQL comme serveur de base de données. Pour pouvoir utiliser Crème, il faut créer une base de données et un utilisateur qui a les droits sur celle-ci. Vous pouvez bien entendu le faire en graphique grâce à un outil d'administration de BD.

Vous pouvez aussi le faire en console. Logguez vous dans MySQL avec la commande suivante :
Code :
mysql -uroot -p

Puis passez sur la base de configuration avec la commande :
Code :
use mysql;

Ajoutez maintenant votre utilisateur (en remplaçant les valeurs d'exemple par vos propres valeurs) avec la commande :
Code :
INSERT INTO user(host,user,password) VALUES ('localhost','cremeuser',PASSWORD('34jkfue1dioaA'));

Il ne vous reste plus alors qu'à créer la base de données
create database bdcremecrm ;
et à donner à votre utilisateurs les bonnes permissions.
Code :
GRANT SELECT ,
INSERT ,
UPDATE ,
DELETE ,
CREATE ,
DROP ,
INDEX ,
ALTER ,
CREATE TEMPORARY TABLES ,
CREATE VIEW ,
EVENT,
TRIGGER,
SHOW VIEW ,
CREATE ROUTINE,
ALTER ROUTINE,
EXECUTE ON `bdcremecrm` . * TO 'cremeuser'@'localhost';

On peut passer à la dernière phase du déploiement de Crème. Rendez-vous dans le répertoire 'creme/'. Il va vous falloir créer un fichier de configuration propre à votre machine.

Ce fichier doit s'appeler local_settings.py

Il doit contenir les lignes suivantes (vous devrez si nécessaire remplacer les noms de la table, de l'utilisateur et son mot de passe par les valeurs que vous avez défini précédemment)  :
Code :
# -*- coding: utf-8 -*-

DATABASES = {
   'default': {
       'ENGINE':   'django.db.backends.mysql',
       'NAME':     'bdcremecrm',
       'USER':     'cremeuser',
       'PASSWORD': '34jkfue1dioaA',
       'HOST':     '',    # Une chaîne vide pour le localhost.
       'PORT':     '',    # Une chaîne vide pour le port par défaut.
   },
}

SECRET_KEY = ''  # Nous allons bientôt remplir cette valeur

Ensuite, vous devez revenir dans le répertoire 'cremecrm/' (et ne pas rester dans le répertoire 'creme/') ; il vous suffit de taper :
Code :
cd ..

Avec la commande suivante, vous allez générer votre clé secrète ; il faudra mettre la valeur retournée dans votre local_settings.py, dans la variable SECRET_KEY (entre les '' ; exemple: SECRET_KEY = 'abcd123'):
Code :
python manage.py build_secret_key
Vous pouvez alors continuer l'installation de Crème, avec la commande suivante qui va créer les tables de la base :
Code :
python manage.py migrate

Puis on remplit la base avec les données initiales (utilisateur administrateur, société initiale, configuration par défaut etc…) :
Code :
python manage.py creme_populate
Ne vous inquiétez pas des messages du genre , ils indiquent juste que certaines apps n'ont pas besoin de créer des données initiales.

Enfin on génère les bundles d'assets statiques (CSS et JavaScript) :
Code :
python manage.py generatemedia

Ici , vous pouvez avoir des messages d'erreur parlant d'images non trouvées (voir ci dessous ). Ce n'est pas grave du tout, les choses ont tout de même fonctionné.
Code :
/usr/lib/python2.7/pkgutil.py:186: ImportWarning: Not importing directory '/usr/local/lib/python2.7/dist-packages/virtualenvwrapper': missing __init__.py
 file, filename, etc = imp.find_module(subname, path)
Generating l10n.js with variation {'language': 'en'}
Generating l10n.js with variation {'language': 'fr'}
Generating main.js with variation {}
Generating icecreammain.css with variation {}
2015-07-24 11:17:32 [ERROR] - root : URL not found: icecream/images/expandme.gif
2015-07-24 11:17:32 [ERROR] - root : URL not found: icecream/images/expanded.gif


Une fois cela fait il ne nous reste plus qu'à lancer le serveur de test en faisant :
Code :
python manage.py runserver

Vous pouvez maintenant vous connecter sur http://localhost:8000 pour voir que votre Crème fonctionne. Mais, et je vais le répéter, ce serveur de développement n'est pas fait pour être utiliser dans un contexte de production. Par exemple, pour mettre en production avec Apache et mod_wsgi, vous pouvez suivre cet autre billet: https://www.cremecrm.com/forum/showthread.php?tid=110
  Répondre
#2
Bonjour,

Déjà merci pour le travail Smile !
Je m’intéresse à ce CRM.

Je me permets de poster car je rencontre certains problèmes en suivant ce tuto (surement dû à certaines lacunes sur linux et les outils utilisés)

Dans le bash de quel utilisateur dois je ajouter cette ligne ?

Code :
export WORKON_HOME=~/Envs

Puis je l'ajouter dans le bash de root ?

Je suppose qu'il faut également créer le répertoire.

La commande
Code :
mkvirtualenv creme
me donne l'erreur
Code :
bash: mkvirtualenv : commande introuvable

Merci d'avance pour les questions dont les réponses doivent être évidentes pour vous Smile
  Répondre
#3
Bonjour,

Concernant vos questions :
  • il faut ajouter la ligne dans le bashrc de l'utilisateur avec lequel vous installez Crème. Idéalement ça ne doit pas être root mais un utilisateur spécifiquement dédié à cela.
  • si vous avez le message "bash: mkvirtualenv : commande introuvable" cela indique que vous n'avez pas installé mkvirtualenv. Avez vous bien lancé les commandes d'installation ? ( "sudo pip install virtualenvwrapper" )

J'espère que cela vous aide.
  Répondre
#4
Bonjour,

Merci de votre retour.

Code :
root@cremeCRM:/home/administrateur# pip install virtualenvwrapper
Requirement already satisfied (use --upgrade to upgrade): virtualenvwrapper in /usr/local/lib/python2.7/dist-packages
Requirement already satisfied (use --upgrade to upgrade): virtualenv in /usr/local/lib/python2.7/dist-packages (from virtualenvwrapper)
Requirement already satisfied (use --upgrade to upgrade): virtualenv-clone in /usr/local/lib/python2.7/dist-packages (from virtualenvwrapper)
Requirement already satisfied (use --upgrade to upgrade): stevedore in /usr/local/lib/python2.7/dist-packages (from virtualenvwrapper)
Cleaning up...
root@cremeCRM:/home/administrateur# mkvirtualenv creme
bash: mkvirtualenv : commande introuvable
root@cremeCRM:/home/administrateur#

Je me suis mis en root histoire d’être sur.

Je suis sur une Debian 8 si ça peut aider
  Répondre
#5
En ce qui me concerne, j'installe le virtualenvwrapper disponible dans les paquets de ma distribution (il est bien disponible chez debian https://packages.debian.org/search?keyw ... ection=all ).
Donc "sudo apt-get install virtualenvwrapper"
  Répondre
#6
En effet il n’était pas installé malgré le

Code :
sudo pip install virtualenvwrapper

Mais malheureusement ça ne passe pas non plus après l'installation :

Code :
root@cremeCRM:~# apt-get install virtualenvwrapper
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
virtualenvwrapper est déjà la plus récente version disponible.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
root@cremeCRM:~# mkvirtualenv creme
bash: mkvirtualenv : commande introuvable

Je dois vraiment m'y prendre comme une bille ...
Merci en tout cas
  Répondre
#7
Chez moi non plus mkvirtualenv n'est pas disponible de base en étant root (variable d'environnement PATH différente pour éviter les bêtises).
Créez vous un utilisateur spécifique comme indiqué par Jmarmand, et lancez la commande mkvirtualenv en étant identifié comme tel.
  Répondre
#8
Merci, en effet ça marche mieux Big Grin) !

Du coup j'ai continué la procédure et je me heurte à l'erreur

Code :
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-gj5msM/pygraphviz

quand je lance
Code :
pip install -r creme/requirements.txt

Du coup j'ai testé en root ou avec mon autre user avec la même erreur.

J'ai vérifier et graphviz est bien installé

Code :
root@cremeCRM:~# apt-get install graphviz
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
graphviz est déjà la plus récente version disponible.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
root@cremeCRM:~# apt-get install graphviz-dev
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
graphviz-dev est déjà la plus récente version disponible.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.

Désolé d’être le boulet de la journée
  Répondre
#9
Citation :Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-gj5msM/pygraphviz

Et du coup vous avez regardé ce que dit ce fichier ?

Au pire, si c'est le seul paquet qui vous pose problème, vous pourriez toujours ne pas installer pygraphviz, et du coup commenter l'app 'creme.graphs' dans les settings avant de construire la BD ; cette app ne devrait pas trop vous manquer.
  Répondre
#10
En fait le répertoire complet se supprime en fin de commande donc non je n'ai rien pu voir.

Donc j'ai reprise d'un base saine.

Installe Debian 8 toute neuve.
J'ai donc installé les packet ci dessous en root (car mon compte nommé administrateur n'a pas les droit)

Code :
apt-get install mysql-server libmysqlclient-dev python-dev libxslt1-dev graphviz graphviz-dev graphviz libgraphviz-dev pkg-config python-pip python-virtualenv mercurial virtualenvwrapper  libjpeg-dev

En passant ça me règle le problème de pygraphviz

Ensuite j'ai modifier la variable d'environnement ci dessous du compte nommé administrateur

Code :
export WORKON_HOME=~/Envs
Je me suis mis sur le compte administrateur et lancé les commandes

Code :
mkvirtualenv creme
Code :
workon creme
Code :
hg clone https://bitbucket.org/hybird/creme_crm
J'ai pris la dernière version

Et enfin je passe cette commande

Code :
pip install -r creme/requirements.txt
Et ça me donne cette erreur :

Code :
Command "/home/administrateur/Envs/creme/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-wpbGRM/Pillow/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-Lck_it-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/administrateur/Envs/creme/include/site/python2.7/Pillow" failed with error code 1 in /tmp/pip-build-wpbGRM/Pillow/

Il se trouve que dans include, je n'ai pas de repertoire site

Code :
(creme) administrateur@cremeCRM:~/Envs/creme/include$ ls -al
total 8
drwxr-xr-x 2 administrateur administrateur 4096 mars  29 09:04 .
drwxr-xr-x 6 administrateur administrateur 4096 mars  29 09:04 ..
lrwxrwxrwx 1 administrateur administrateur   22 mars  29 09:04 python2.7 -> /usr/include/python2.7

J'vais y arriver !

J'ai encore pas tout compris ?

Merci à vous !
  Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)