Dans cet article de blog, nous allons vous montrer comment installer le CMS Django sur un VPS Ubuntu avec MariaDB, Nginx et Gunicorn .
Django CMS est un système de gestion de contenu open source basé sur le framework Web Django. Certaines des fonctionnalités principales incluent :basé sur des plugins, jolies URL, gestion des autorisations, applications, édition frontale, analyses, blog ..etc.
La commande suivante installera tous les packages nécessaires
apt-get updateapt-get install -y python-software-properties python python-dev
Installez la dernière version de Nginx
add-apt-repository ppa:nginx/stableapt-get update &&sudo apt-get install nginx
Installez MariaDB et créez une base de données.
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943dbadd-apt-repository 'deb http://ftp.osuosl.org/pub/mariadb/repo/5.5 /ubuntu precise main'apt-get updateecho -e "Package :*\nPin :origin ftp.osuosl.org\nPin-Priority :1000" | tee /etc/apt/preferences.d/mariadbapt-get install mariadb-server libmariadbclient-dev
mysql -uroot -pMariaDB [(aucun)]> CRÉER UNE BASE DE DONNÉES dcms;MariaDB [(aucun)]> ACCORDER TOUS LES PRIVILÈGES SUR dcms.* À 'dcmsuser'@'localhost' IDENTIFIÉ PAR 'pa33W0rd';MariaDB [(aucun )]> PRIVILÈGES FLUSH ; MariaDB [(aucun)]> \q
Installer pip
curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python-
Créer un environnement virtuel à l'aide de pip
sudo pip install --upgrade virtualenvmkdir -p ~/.virtualenvs/djangocmsvirtualenv ~/.virtualenvs/djangocmssource ~/.virtualenvs/djangocms/bin/activate
Créez un fichier requirements.txt avec le contenu suivant
# Bare minimumdjango-cms==2.4.1#Ces dépendances sont introduites par django-cms, mais si vous souhaitez verrouiller leur version, spécifiez-lesDjango==1.5.1django-classy-tags==0.4South ==0.8.1html5lib==1.0b1django-mptt==0.5.2django-sekizai==0.7six==1.3.0mysql-python==1.2.5#Packages optionnels recommandésPillow==2.0.0django-filer==0.9. 4cmsplugin-filer==0.9.5django-reversion==1.7
Installer Django CMS
pip install --upgrade --download-cache=~/.pip-cache -r requirements.txt
Créez votre projet Django CMS
mkdir ~/projectscd ~/projectsdjango-admin.py startproject monnouveauprojet
Ouvrez le fichier ~/projects/mynewproject/mynewproject/settings.py et ajoutez ce qui suit en haut du fichier :
# -*- codage :utf-8 -*-import osgettext =lambda s :sPROJECT_PATH =os.path.split(os.path.abspath(os.path.dirname(__file__)))[0]Ajoutez les détails de votre base de données :
BASES DE DONNEES ={ 'default' :{ 'MOTEUR' :'django.db.backends.mysql', 'NOM' :'dcms', 'UTILISATEUR' :'dcms', 'MOT DE PASSE' :'pa33W0rd', ' HÔTE' :'', 'PORT' :'', }}Ajoutez les applications suivantes aux INSTALLED_APPS.
'django.contrib.admin',INSTALLED_APPS =( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib .messages', 'django.contrib.staticfiles', 'django.contrib.admin', 'django.contrib.admindocs', 'cms', 'mptt', 'menus', 'south', 'sekizai')Ajoutez les lignes suivantes à la liste MIDDLEWARE_CLASSES.
MIDDLEWARE_CLASSES =( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', # Décommentez la ligne suivante pour une protection simple contre le détournement de clic :# 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'cms.middleware.page.CurrentPageMiddleware', 'cms.middleware.user. CurrentUserMiddleware', 'cms.middleware.toolbar.ToolbarMiddleware', 'cms.middleware.language.LanguageCookieMiddleware',)Ajoutez ce qui suit à la fin du fichier :
TEMPLATE_CONTEXT_PROCESSORS =( 'django.contrib.auth.context_processors.auth', 'django.core.context_processors.i18n', 'django.core.context_processors.request', 'django.core.context_processors.media', 'django .core.context_processors.static', 'cms.context_processors.media', 'sekizai.context_processors.sekizai',)Remplacez les directives STATIC_ROOT et MEDIA_ROOT par :
STATIC_ROOT =os.path.join(PROJECT_PATH, "static")STATIC_URL ="/static/"MEDIA_ROOT =os.path.join(PROJECT_PATH, "media")MEDIA_URL ="/media/"Modifiez la directive TEMPLATE_DIRS :
TEMPLATE_DIRS =( # La documentation indique qu'il devrait s'agir d'un chemin absolu :PROJECT_PATH en est précisément un. # La vie est merveilleuse ! os.path.join(PROJECT_PATH, "templates"),)Ajoutez au moins un modèle à CMS_TEMPLATES
CMS_TEMPLATES =( ('template_1.html', 'Template One'), ('template_2.html', 'Template Two'),)Limiter à l'anglais
LANGUAGES =[ ('en', 'English'),]Enfin, enregistrez le fichier settings.py.
Définir les itinéraires pour notre projet
Ouvrez le fichier mynewproject/mynewproject/urls.py et remplacez le contenu par ce qui suit
from django.conf.urls.defaults import *from django.conf.urls.i18n import i18n_patternsfrom django.contrib import adminfrom django.conf import settingsadmin.autodiscover()urlpatterns =patterns('', url(r'^admin /', include(admin.site.urls)), url(r'^', include('cms.urls')),)if settings.DEBUG :urlpatterns =patterns('', url(r'^media/ (?P.*)$', 'django.views.static.serve', {'document_root' :settings.MEDIA_ROOT, 'show_indexes' :True}), url(r'', include('django. contrib.staticfiles.urls')),) + urlpatterns Créer des modèles
Créer un nouveau répertoire de modèles
mkdir ~/projects/mynewproject/templatesOuvrez votre éditeur préféré et créez les fichiers suivants :
base.html
{% load cms_tags sekizai_tags %} {% render_block "css" %} {% cms_toolbar %} {% placeholder base_content %} {% block base_content %}{% endblock %} {% render_block "js" %}template_1.html
{% extend "base.html" %}{% load cms_tags %}{% block base_content %} {% placeholder template_1_content %}{% endblock %}template_2.html
{% extend "base.html" %}{% load cms_tags %}{% block base_content %} {% placeholder template_2_content %}{% endblock %}Initialiser la base de données et créer un nouveau superutilisateur
python manage.py syncdb --allpython manage.py migrate --fakeVérifiez si tout est correctement configuré
python manage.py cms vérificationSi vous voyez "L'installation est correcte", cela signifie que tout est correctement configuré.
Collecter des fichiers statiques
cd ~/projects/mynewproject./manage.py collectstaticInstaller et configurer gunicorn
pip install gunicorncréez un nouveau fichier de configuration (~/.virtualenvs/djangocms/gunicorn_config.py) comme suit
commande ='~/.virtualenvs/djangocms/bin/gunicorn'pythonpath ='~/projects/mynewproject'bind ='127.0.0.1:8011'workers =3user =personneDémarrez le gunicorn avec la commande suivante :
cd ~/projects/monnouveauprojet &&gunicorn -c ~/.virtualenvs/djangocms/gunicorn_config.py monnouveauprojet.wsgiConfigurer Nginx
Créer un nouvel hôte virtuel nginx
vim /etc/nginx/sites-available/votre_domaine.comserveur { écouter 80 ; nom_serveur votre_domaine.com ; emplacement /static/ { alias //projects/mynewproject/static/ ; } emplacement / { serveur proxy_pass_header ; proxy_set_header Hôte $http_host ; proxy_redirect désactivé ; proxy_set_header X-Real-IP $remote_addr ; proxy_set_header X-Scheme $scheme ; proxy_connect_timeout 10 ; proxy_read_timeout 10 ; proxy_pass http://localhost:8011/; } }ln -s /etc/nginx/sites-available/your_domain.com /etc/nginx/sites-enabled/your_domain.com/etc/init.d/nginx restart C'est ça. Ouvrez maintenant votre navigateur et accédez à votre domaine.
Pour plus d'informations sur le CMS Django, rendez-vous sur :http://docs.django-cms.org/
Bien sûr, vous n'avez rien à faire si vous utilisez l'un de nos services d'hébergement VPS Linux, auquel cas vous pouvez simplement demander à nos administrateurs Linux experts de l'installer pour vous. Ils sont disponibles 24h/24 et 7j/7 et prendront immédiatement en charge votre demande.
PS . Si vous avez aimé cet article, partagez-le avec vos amis sur les réseaux sociaux en utilisant les boutons à gauche ou laissez simplement une réponse ci-dessous. Merci.