Installation de Crème 1.3 sous linux
#1
Bonjour,

voici mon retour d'expérience sur l'installation de Crème 1.3, si vous avez des remarques n'hésitez pas.

Merci à ce forum et au magazine LinuxPratique

INSTALLATION CREME sur un UBUNTU 12.04.3

Tout est fait en root

Code :
apt-get install mysql-client mysql-server mysql-common python libmysqlclient-dev python-dev libxslt1-dev graphviz graphviz-dev python-setuptools python-pip texlive-full mercurial pkg-config openjdk-7-jre

pip install virtualenvwrapper

cd

mkdir Envs

Rajouter à fin du fichier .bashrc les lignes suivantes

Code :
vim .bashrc

–--------------------------------------------

#PARAM VIRTUALENV CREME

export WORKON_HOME=~/Envs
source /usr/local/bin/virtualenvwrapper.sh

–---------------------------------------------

source .bashrc

mkvirtualenv --no-site-packages crm

(crm)# hg clone https://bitbucket.org/hybird/creme_crm-1.3

(crm)# cd creme_crm-1.3/creme/

J'ai préféré faire toutes les installes qui sont dans le fichier requirements.txt une à une pour voir les erreurs.

Code :
(crm)# pip install Django==1.4.8

(crm)# pip install MySQL-python==1.2.3

(crm)# pip install Pillow==2.0.0

(crm)# pip install South==0.7.4

(crm)# pip install django-mediagenerator==1.10.4

(crm)# pip install gdata==2.0.15

(crm)# pip install lxml==2.3

(crm)# pip install pycrypto==2.3

(crm)# pip install pygraphviz==1.1

Si erreur sur pygraphviz faire les manips suivantes

Code :
vim creme_crm-1.3/creme/build/pygraphviz/setup.py

dé-commenter ligne 39 et 40

# Linux, generic UNIX
library_path='/usr/lib/graphviz'
include_path='/usr/include/graphviz'

Puis de nouveau

Code :
(crm)# pip install pygraphviz==1.1

(crm)# pip install pyparsing==1.5.5

(crm)# pip install python-dateutil==1.5

(crm)# pip install pytz

(crm)# pip install restkit==2.2.1

(crm)# pip install simplejson==2.1.3

(crm)# pip install --upgrade wsgiref==0.1.2

(crm)# pip install xlrd==0.9.2

(crm)# pip install xlwt==0.7.5

Il faut ensuite s'occuper de la base de données :

Code :
(crm)# mysql -u root -p

mysql> use mysql;

mysql> CREATE USER 'cremeuser'@'localhost' IDENTIFIED BY 'cremepasswd';

mysql> create database bdcremecrm;

mysql> GRANT ALL PRIVILEGES ON `bdcremecrm` . * TO 'cremeuser'@'localhost' WITH GRANT OPTION;

mysql> exit;

Créer le fichier suivant :

Code :
(crm)# cd /root/creme_crm-1.3/creme/
(crm)# vim local_settings.py

-----------------------------------

from os.path import dirname, join, abspath
CREME_ROOT = dirname(abspath(__file__))
DEBUG = False
DATABASES = {
        'default': {
                'ENGINE':   'django.db.backends.mysql',
                'NAME':     'bdcremecrm',
                'USER':     'cremeuser',
                'PASSWORD': 'cremepasswd',
                'HOST':     '',
                'PORT':     '',
                'OPTIONS':   {'init_command': 'SET storage_engine=INNODB' },
        },      
}

–------------------------------

Et lancez les commandes remplissages de la base de données :

Code :
(crm)# cd ..

(crm)# cp creme/local_settings.py .

(crm)# python manage.py syncdb

Would you like to create one now? (yes/no): yes
Username (leave blank to use 'root'):
E-mail address:
Error: That e-mail address is invalid.
E-mail address: root@localhost.fr

(crm)# python manage.py migrate --all

(crm)# python manage.py creme_populate

(crm)# python manage.py generatemedia

message d'erreur sur ERROR - URL not found: chantilly/images/expandme.gif

Mais OK

Code :
(crm)# python manage.py runserver

Test avec l'adresse http://127.0.0.1:8000

Si OK passer à l'étape suivante




Installation Apache2

Code :
apt-get install apache2-mpm-prefork libapache2-mod-wsgi

cd /etc/apache2

cp sites-available/default sites-available/cremecrm

vim sites-available/cremecrm

--------------------------------

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /root/creme_crm-1.3/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /root/creme_crm-1.3/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    WSGIScriptAlias / /root/creme_crm-1.3/creme/django.wsgi
    <Directory /root/creme_crm-1.3/>
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /site_media /root/creme_crm-1.3/creme/media/
    Alias /static_media /root/creme_crm-1.3/creme/media/static

</VirtualHost>

-------------------------------

vim /root/creme_crm-1.3/creme/django.wsgi

--------------------------------
import os
import sys
import site

from os.path import dirname, join, abspath

osys = sys.path
new_sys = ['/root/Envs/crm/lib/python2.7/site-packages/',]
new_sys.extend (sys.path)
sys.path = new_sys

site.addsitedir('/root/Envs/crm/lib/python2.7/site-packages')
site.addsitedir('/root/creme_crm-1.3')

from os.path import dirname, join, abspath
CREME_ROOT = dirname(abspath(__file__))


sys.path.append(CREME_ROOT)


os.environ['DJANGO_SETTINGS_MODULE'] = 'creme.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

-----------------------

Commentez les 2 lignes suivantes

Code :
vim /root/creme_crm-1.3/creme/urls.py

-------------------------------------

#    (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
    #NB: in production, configure your web server to statically serve the files in the 'media/static/' dir (and so comment the following line)
#    (r'^static_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.GENERATED_MEDIA_DIR}),

--------------------------------------

Modifiez celle-ci

Code :
vim /root/creme_crm-1.3/creme/settings.py

---------------------------------

MEDIA_URL = 'http://127.0.0.1/site_media/'

---------------------------------

(crm)# cd /root/creme_crm-1.3/

(crm)# python manage.py generatemedia

a2dissite default

a2ensite cremecrm

service apache2 reload

attention au droit www-data:www-data sur cremecrm et Env
  Répondre
#2
Merci pour votre contribution et joyeux Noël !!
  Répondre
#3
Bonjour,

Merci pour ce tutoriel, qui m'a permis de réussir l'installation de la version 1.3 !
Bravo !
Et meilleurs voeux pour 2014 !

Pour la migration depuis la version 1.2, en suivant les indications du README, ça fonctionne sans problème.
Attention, il faut bien suivre le README qui est dans la distribution, car les instructions sur la page de bitbucket sont incomplètes (il manque la mise à jour des dates) :
Citation :And if you are upgrading from Creme 1.2:
- Run the following command:
>> python manage.py convert_naive_datetimes
- Clean all existing sessions, for example like this:
>> python manage.py shell
> from django.contrib.sessions.models import Session
> Session.objects.all().delete()
Bien penser à régler les locale car sinon ça bug. Cf. le début du tutoriel fait par martinlbb https://www.cremecrm.com/forum/showthrea...177#pid177
Citation :Fixer la variable d'environnement de la langue d' encodage utilisé par le serveur :
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
dpkg-reconfigure locales

export LANGUAGE=fr_FR.UTF-8
export LANG=fr_FR.UTF-8
export LC_ALL=fr_FR.UTF-8
locale-gen fr fr_FR.UTF-8
Attention, si message d’erreur à ce niveau, ça plantera à la fin

Personnellement, j'ai installé les packages d'un coup avec "pip install -r requirements.txt" et ça c'est bien passé...
Mais j'ai quand même un peu sué pour adapter le fichier de configuration d'Apache et django.wsgi à ma configuration...

Encore merci !
  Répondre
#4
Citation :Attention, il faut bien suivre le README qui est dans la distribution, car les instructions sur la page de bitbucket sont incomplètes (il manque la mise à jour des dates) :

N'importe quoi. Le README dans les sources EST celui affiché par bitbucket. https://bitbucket.org/hybird/creme_crm-1.3 parle bien de la mise à jour des dates lors de la migration 1.2 vers 1.3. Maintenant si vous lisez le README d'une autre version...
  Répondre
#5
Bonjour,

Merci pour ce commentaire.
Effectivement, le problème vient de l'endroit où l'on clique sur "sources". Quand on clique sur "sources" en haut de cette page on arrive sur une page de bitbucket sur laquelle on peut lire les instructions suivantes :
Citation :Creme is a free/open-source Customer Relationship Management software developped by Hybird (http://www.hybird.org).

Creme is coded in Python, and uses the Django web framework (http://www.djangoproject.com/) and
the JQuery javascript library (http://jquery.com/).

You can find more information on Creme on its official web site: http://cremecrm.com/


DEPENDENCIES:
- Core
- Python 2.6
- Django 1.4
- Django-mediagenerator 1.10
- South 0.7
- pytz
- Java >= 1.4 (only needed to build the compressed version of CSS and JavaScript files at installation time)

- Optional
- creme.creme_core:
- xlrd (to import contacts and organisations from xls files)
- xlwt (to export contacts and organisations as xls files)

- creme.billing:
- pdflatex (if you want PDF export)

-creme.graphs:
- pygraphviz (seems unavailable on windows)

- creme.activesync:
- Pillow 2.0.0
- restkit 2.2.1
- pycrypto 2.3

- creme.crudity:
- lcab (if you want Infopath forms exports and your server doesn't run on Windows)

RECOMMENDATIONS:
It's recommended to use a database engine that supports transactions.


INSTALL:
You have to know how to install a Django application.

Upgrade notice : if you already have a Creme installation, upgrade the version one by one
(eg: do not try to upgrade from 1.1 to 1.3, upgrade to 1.2 and then 1.3).

See the creme/settings.py and set your parameters (or put them in a new file called creme/local_settings.py instead).
When you have chosen the creme apps you want (by commenting the unwanted ones), and configured the DB parameters
run the following commands in the root directory:
>> python manage.py syncdb
[if it is the initial installation, you are asked if you want to create a new user ; you should create one]

>> python manage.py migrate
>> python manage.py generatemedia
[Do not worry about 'URL not found' messages]
>> python manage.py creme_populate

And if you are upgrading from Creme 1.3:
- Clean all existing sessions, for example like this:
>> python manage.py shell
> from django.contrib.sessions.models import Session
> Session.objects.all().delete()

Ça ressemble bien à l'installation de la version 1.3...

Effectivement si on remonte dans l'arborescence de Bitbucket, on arrive sur la version 1.3 et ses instructions.
Le problème vient donc du fait que le lien "sources" sur le forum renvoie vers la version de développement et pas la version stable en cours (alors que le lien sur le site est différencié).
Je pense que d'autres que moi pourraient commettre la même confusion. Et oublier la mise à jour des dates...
  Répondre
#6
Citation :Ça ressemble bien à l'installation de la version 1.3...

Forcément, l'installation de la version N+1 ressemblera souvent celle de de la version N ; si on change tout à chaque fois je pense que les utilisateurs vont hurler, à raison.

Code :
And if you are upgrading from Creme 1.3:

Cette ligne prouve bien que l'on parle de la version qui suit 1.3 (mais c'est subtile).

Citation :Le problème vient donc du fait que le lien "sources" sur le forum renvoie vers la version de développement et pas la version stable en cours
En effet je vais en parler à l'administrateur du forum.
  Répondre
#7
Bonjour,

Je tiens tout d'abord à remercier les développeurs pour leur travail. En parcourant la version de démo, j'ai l'impression d'avoir enfin trouvé un CRM répondant à mes besoins ! Et j'en ai essayé un bon nombre et même les payants ne répondaient pas à mes attentes !

J'ai décidé de me lancer dans l'installation de la version 1.4 sur un serveur dédié.
J'ai suivi ce tutoriel pas à pas sans rencontrer d'erreur, à part à l'étape runserver ou je n'ai pu tester en local car c'est un serveur distant.

Mais maintenant que j'ai terminé l'installation, je suis confronté à une erreur 403 Forbidden...

J'ai bien mis les droits en read sur le dossier Envs et creme_crm-1.4 et pour l'utilisateur www-data.

Voici mes paramètres virtualhost apache :
Code :
WSGIScriptAlias / /root/creme_crm-1.4/creme/django.wsgi
<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /root/creme_crm-1.4
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /root/creme_crm-1.4/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>

    <Directory /root/creme_crm-1.4/>
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
       LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /site_media /root/creme_crm-1.4/creme/media/
    Alias /static_media /root/creme_crm-1.4/creme/media/static

</VirtualHost>

Voici le log apache :
Citation :[Mon May 19 12:14:43 2014] [notice] caught SIGTERM, shutting down
[Mon May 19 12:14:44 2014] [warn] mod_wsgi: Compiled for Python/2.7.2+.
[Mon May 19 12:14:44 2014] [warn] mod_wsgi: Runtime using Python/2.7.3.
[Mon May 19 12:14:44 2014] [notice] Apache/2.2.22 (Ubuntu) mod_wsgi/3.3 Python/2.7.3 configured -- resuming normal operations
[Mon May 19 12:14:46 2014] [error] [client *.*.*.*] (13)Permission denied: access to / denied

Dans le log, on a comme l'impression qu'on tente d'accéder à la racine du serveur "/" et non pas au dossier de creme.

Merci d'avance !
  Répondre
#8
Bonjour et merci de l'attention que vous portez à Crème.

Concernant votre problème plusieurs points :
- l'endroit où se trouve les sources de Crème doit être accessible par l'utilisateur utilisé par votre apache (qui est la plupart du temps l'utilisateur www-data)
- vous avez déposé les sources de crème dans un sous répertoire de /root qui est le répertoire du root (et normalement accessible qu'à celui-ci).

Je vous conseille de déplacer votre crème dans un sous répertoire de /www (qui est le répertoire communément utilisé pour stocker les sites web) et de vérifier ensuite que l'utilisateur www-data y a bien accès.

Cela devrait mieux fonctionner après cela.
  Répondre
#9
Merci de votre réponse rapide.

En effet, je me doutais que l'emplacement n'était pas forcement idéal, mais le tutoriel indiquant cela, je me suis dit que cela devrait tout de même fonctionner.

J'ai donc copié le répertoire de crème dans un sous dossier de /var/www et même si ce n'est pas nécessaire, mais dans le doute, j'ai aussi copié le répertoire Envs...

J'ai également mis a jours mon virtualhost avec la nouvelle arborescence. L'erreur s'est maintenant transformée en erreur 500.

Voici le log Apache :
Code :
[Mon May 19 18:13:17 2014] [notice] Apache/2.2.22 (Ubuntu) mod_wsgi/3.3 Python/2.7.3 configured -- resuming normal operations
[Mon May 19 18:13:28 2014] [error] [client *.*.173.223] mod_wsgi (pid=717): Exception occurred processing WSGI script '/var/www/creme/django.wsgi'.
[Mon May 19 18:13:28 2014] [error] [client *.*.173.223] Traceback (most recent call last):
[Mon May 19 18:13:28 2014] [error] [client *.*.173.223]   File "/var/www/Envs/crm/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 219, in __call__
[Mon May 19 18:13:28 2014] [error] [client *.*.173.223]     self.load_middleware()
[Mon May 19 18:13:28 2014] [error] [client *.*.173.223]   File "/var/www/Envs/crm/lib/python2.7/site-packages/django/core/handlers/base.py", line 39, in load_middleware
[Mon May 19 18:13:28 2014] [error] [client *.*.173.223]     for middleware_path in settings.MIDDLEWARE_CLASSES:
[Mon May 19 18:13:28 2014] [error] [client *.*.173.223]   File "/var/www/Envs/crm/lib/python2.7/site-packages/django/utils/functional.py", line 184, in inner
[Mon May 19 18:13:28 2014] [error] [client *.*.173.223]     self._setup()
[Mon May 19 18:13:28 2014] [error] [client *.*.173.223]   File "/var/www/Envs/crm/lib/python2.7/site-packages/django/conf/__init__.py", line 42, in _setup
[Mon May 19 18:13:28 2014] [error] [client *.*.173.223]     self._wrapped = Settings(settings_module)
[Mon May 19 18:13:28 2014] [error] [client *.*.173.223]   File "/var/www/Envs/crm/lib/python2.7/site-packages/django/conf/__init__.py", line 95, in __init__
[Mon May 19 18:13:28 2014] [error] [client *.*.173.223]     raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
[Mon May 19 18:13:28 2014] [error] [client *.*.173.223] ImportError: Could not import settings 'creme.settings' (Is it on sys.path?): No module named creme.settings

Une fois de plus, merci d'avance de votre aide ! Je compte beaucoup sur votre CRM !
  Répondre
#10
Bonsoir,

ici cela vient à priori d'une erreur dans votre django.wsgi. Il doit manquer une information dans le fichier.

Pouvez vous me le copier coller ici ?
  Répondre


Atteindre :


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