GNU/Linux >> Tutoriels Linux >  >> Cent OS

Installer Django Python Framework sur Rocky Linux 8 / CentOS 8

Django est un framework Web de haut niveau gratuit et open source utilisé pour développer des applications Web Python. Django est livré avec un ensemble d'outils qui vous aident à créer des applications Web sécurisées et évolutives. Son objectif principal est de faciliter la création d'applications complexes et de maintenir la structure interne.

Dans ce didacticiel, nous allons apprendre à installer Django et à configurer Nginx en tant que proxy inverse pour Django sur Rocky Linux 8 et CentOS 8.

Condition préalable

  • Serveur avec système d'exploitation CentOS 8.
  • Connectez-vous en tant qu'utilisateur root ou utilisateur avec les privilèges sudo

Installer les packages requis

Django est un framework basé sur Python, vous devez donc installer Python et PIP sur votre système. Pour pouvoir l'installer, exécutez la commande suivante :

dnf install python36 python3-pip -y 

Une fois les deux packages installés, passez à l'étape suivante.

Installer Django sur Rocky Linux 8

Vous pouvez installer Django avec la commande PIP comme indiqué ci-dessous :

pip3 install Django 

Après avoir installé Django, vérifiez la version de Django avec la commande suivante :

django-admin --version 

Vous verrez la version de Django dans la sortie suivante :

3.0.3 

au moment de la rédaction de cet article, la version de Django est la version 3.0.3

Créer un projet Django

À ce stade, Django a été installé avec succès. Il est maintenant temps de créer une application Django.

Vous pouvez créer des applications Django en utilisant la commande django-admin dans le répertoire /opt comme indiqué ci-dessous :

cd /opt
 django-admin startproject djangoproject 

Une fois le projet django créé, changez le répertoire en djangoproject et migrez les modifications avec la commande suivante :

cd djangoproject
 python3 manage.py migrate 

Vous obtiendrez le résultat suivant :

Opérations à effectuer :Appliquer toutes les migrations :admin, auth, contenttypes, sessionsExécution des migrations :Appliquer contenttypes.0001_initial... OK Appliquer auth.0001_initial... OK Appliquer admin.0001_initial... OK Appliquer admin.0002_logentry_remove_auto_add.. . OK Application admin.0003_logentry_add_action_flag_choices... OK Application contenttypes.0002_remove_content_type_name... OK Application auth.0002_alter_permission_name_max_length... OK Application auth.0003_alter_user_email_max_length... OK Application auth.0004_alter_user_username_opts... OK Application auth.0005_alter_user_username_opts... OK Application auth.0005_alter_user_username_opts... OK Application auth.0005_alter_user_email_max_length... Application auth.0006_require_contenttypes_0002... OK Application auth.0007_alter_validators_add_error_messages... OK Application auth.0008_alter_user_username_max_length... OK Application auth.0009_alter_user_last_name_max_length... OK Application auth.0010_alter_group_name_max_length... OK Application auth.001_up_proxy sessions... OK Application auth.001_up_proxy sessions... .0001_initial... D'accord 

Ensuite, vous devez créer un compte utilisateur administrateur pour gérer votre projet Django avec la commande suivante :

python3 manage.py createsuperuser 

Il vous sera demandé de fournir votre nom d'utilisateur, email et mot de passe. Vous pouvez le fournir selon votre choix comme indiqué ci-dessous :

Nom d'utilisateur (laissez vide pour utiliser 'root') :dadminAdresse e-mail :[email protected] Mot de passe :Mot de passe (encore) :Superutilisateur créé avec succès. 

Une fois cela fait, vous pouvez passer à l'étape suivante.

Démarrer l'application Django

Par défaut, les applications Django ne sont accessibles qu'à partir de l'hôte local uniquement. Pour que Django se connecte à Internet, vous devez autoriser Django pour les hôtes externes. Vous pouvez le faire en ajoutant l'IP de votre serveur dans IP settings.py:

nano /opt/djangoproject/djangoproject/settings.py 

Modifiez la ligne suivante :

ALLOWED_HOSTS =['ip_server_Anda'] 

Enregistrez et fermez le fichier. Ensuite, lancez l'application Django avec la commande suivante :

cd /opt/djangoproject
 python3 manage.py runserver 0.0.0.0:8000 

Vous verrez la sortie suivante :

Surveillance des modifications de fichiers avec StatReloaderExécution des vérifications du système...La vérification du système n'a identifié aucun problème (0 silencieux). http://0.0.0.0:8000/Quitter le serveur avec CONTROL-C. L'application Django est maintenant lancée et tourne sur le port 8000. 

À ce stade, l'application Django est maintenant opérationnelle sur le port 8000. Vous pouvez maintenant passer à l'étape suivante.

Configurer SELinux et le pare-feu sur Rocky Linux 8

Ensuite, vous devez autoriser les ports 8000 et 80 via firewalld. Vous pouvez les autoriser avec la commande suivante :

firewall-cmd --permanent --add-port=8000/tcp
 firewall-cmd --permanent --add-port=80/tcp
 firewall-cmd --reload 

Ensuite, configurez SELinux avec la commande suivante :

setsebool httpd_can_network_connect on -P 

Une fois cela fait, vous pouvez passer à l'étape suivante.

Accéder aux applications Django

Vous pouvez accéder à l'application Django en visitant l'URL http://your-server-ip:8000. Vous verrez la page suivante :

Vous pouvez également accéder à l'interface d'administration de Django en utilisant l'URL http://server-ip:8000/admin. Vous verrez la page suivante :

Indiquez le nom d'utilisateur et le mot de passe de l'administrateur et cliquez sur le bouton Se connecter dans . Vous verrez la page suivante :

Installer Nginx et Gunicorn sur Rocky Linux 8

Dans cette section, nous installerons Gunicorn pour créer et gérer les services Django, et Nginx pour servir les applications Django.

Tout d'abord, installez Nginx avec la commande suivante :

dnf install nginx -y 

Ensuite, installez Gunicorn en utilisant la commande PIP comme indiqué ci-dessous :

pip3 install gunicorn 

Une fois les deux packages installés, démarrez le service Nginx et autorisez-le à démarrer après le redémarrage du système avec la commande suivante :

systemctl start nginx
 systemctl enable nginx 

Ensuite, changez la propriété du répertoire /opt/djangoproject à Nginx comme indiqué ci-dessous :

chown -R nginx:nginx /opt/djangoproject 

Créer un service File Systemd pour Django

Ensuite, créez un fichier de service systemd pour gérer les services Django avec la commande suivante :

nano /etc/systemd/system/django.service 

Ajoutez la ligne suivante :

[Unit]Description=django daemonAfter=network.target[Service]User=nginxGroup=nginxWorkingDirectory=/opt/djangoprojectExecStart=/usr/local/bin/gunicorn --workers 3 --bind unix:/opt/djangoproject/ djangoproject.sock djangoproject.wsgi:application[Install]WantedBy=multi-user.target 

Enregistrez et fermez le fichier puis rechargez le démon systemd avec la commande suivante :

systemctl daemon-reload 

Ensuite, démarrez le service Django et activez-le après le redémarrage du système avec la commande suivante :

systemctl start django
 systemctl enable django 

Vous pouvez maintenant vérifier l'état du service Django avec la commande suivante :

systemctl status django 

Vous verrez la sortie suivante :

 ? django.service - django daemon Chargé :chargé (/etc/systemd/system/django.service ; désactivé ; préréglage fournisseur :désactivé) Actif :actif (en cours d'exécution) depuis le lundi 2020-03-02 22:27:51 UTC ; il y a 3min 32s PID principal :960 (django) Tâches :4 (limite :25028) Mémoire :95,2 Mo CGroup :/system.slice/django.service ??960 /usr/bin/python3.6 /usr/local/bin/ gunicorn --workers 3 --bind unix:/opt/djangoproject/djangoproject.sock djangoproject.wsgi:a> ??964 /usr/bin/python3.6 /usr/local/bin/gunicorn --workers 3 --bind unix:/opt/djangoproject/djangoproject.sock djangoproject.wsgi:a> ??965 /usr/bin/python3.6 /usr/local/bin/gunicorn --workers 3 --bind unix:/opt/djangoproject/djangoproject .sock djangoproject.wsgi:a> ??966 /usr/bin/python3.6 /usr/local/bin/gunicorn --workers 3 --bind unix:/opt/djangoproject/djangoproject.sock djangoproject.wsgi:a> 02 mars 22:27:51 centos8 systemd[1] :Démon django démarré. Démarrage de django 20.0.4Mar 02 22:27:52 centos8 django[960] :[2020-03-02 22:27:52 -0500] [960] [INFO] En écoute :unix :/opt/djangoproject/djangoproject.sock (960)2 mars 22:27 :52 centos8 django[960] :[2020-03-02 22:27:52 -0500] [960] [INFO] Utilisation du travailleur :syncMar 02 22:27:52 centos8 django[960] :[2020-03-02 22 :27:52 -0500] [964] [INFO] Booter worker avec pid :964Mar 02 22:27:52 centos8 django[960] :[2020-03-02 22:27:52 -0500] [965] [INFO ] Booter worker avec pid :965Mar 02 22:27:52 centos8 django[960] :[2020-03-02 22:27:52 -0500] [966] [INFO] Booter worker avec pid :966h pid :966  

Configurer Nginx pour Django

Ensuite, configurez Nginx en tant que proxy inverse pour Django. Pour ce faire, créez un nouveau fichier de configuration Nginx avec la commande suivante :

nano /etc/nginx/conf.d/django.conf 

Ajoutez la ligne suivante :

serveur { écoute 80 ; server_name your-server-ip location =https://cdn.linuxid.net/favicon.ico?x87109 { access_log off; log_not_found désactivé ; } emplacement /statique/ { root /opt/djangoproject ; } emplacement / { proxy_set_header Hôte $http_host ; proxy_set_header X-Real-IP $remote_addr ; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ; proxy_set_header X-Forwarded-Proto $scheme ; proxy_pass http://unix:/opt/djangoproject/djangoproject.sock ; }} 

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, testez nginx pour toute erreur de syntaxe avec la commande suivante :

nginx -t 

S'il n'y a pas d'erreurs, la sortie suivante apparaît :

nginx :la syntaxe du fichier de configuration /etc/nginx/nginx.conf est oknginx :le test du fichier de configuration /etc/nginx/nginx.conf est réussi 

Ensuite, redémarrez le service Nginx pour mettre en œuvre les modifications :

systemctl start nginx 

Vous pouvez également vérifier Nginx avec la commande suivante :

systemctl status nginx 

Vous obtiendrez le résultat suivant :

 ? nginx.service - Le serveur HTTP et proxy inverse de nginx Chargé :chargé (/usr/lib/systemd/system/nginx.service ; désactivé ; préréglage du fournisseur :désactivé) Actif :actif (en cours d'exécution) depuis le lundi 2020-03-02 22 :28h13 HNE ; 4min 14s ago Processus :984 ExecStart=/usr/sbin/nginx (code=sorti, statut=0/SUCCESS) Processus :982 ExecStartPre=/usr/sbin/nginx -t (code=sorti, status=0/SUCCESS) Processus :980 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) PID principal :985 (nginx) Tâches :3 (limite :25028) Mémoire :5,5 M CGroup :/system.slice/nginx.service ??985 nginx :processus principal /usr/sbin/nginx ??986 nginx :processus de travail ??987 nginx :processus de travail Mar 02 22:28:12 centos8 systemd[1] :Démarrage de nginx HTTP et serveur proxy inverse...Mar 02 22:28:12 centos8 nginx[982] :nginx :la syntaxe du fichier de configuration /etc/nginx/nginx.conf est correcteMar 02 22:28:12 centos8 nginx[982] :nginx :le test du fichier de configuration /etc/nginx/nginx.conf est réussiMar 02 22:28:13 centos8 systemd[1] :Démarrage Le serveur HTTP et proxy inverse de nginx. 

Vous pouvez désormais accéder aux applications Django en utilisant l'URL http://server_IP_address.

Conclusion

Dans ce guide, nous avons appris à installer Django sur Rocky Linux 8 et CentOS 8. Nous avons également appris à utiliser Gunicorn pour créer et gérer des services Django et configurer Nginx en tant que proxy inverse pour servir les applications Django.


Cent OS
  1. Comment installer PostgreSQL sur CentOS 8 / Rocky Linux 8 / RHEL 8

  2. Comment installer Mysql 8 sur Rocky Linux/Centos 8

  3. Comment installer et configurer Redis 6 sur Rocky Linux/Centos 8

  4. Comment installer Java 17 sur Rocky Linux 8/Centos 8

  5. Comment installer Erlang sur Rocky Linux/Alma Linux/CentOS 8

Comment installer Python 3.9 sur Rocky Linux 8

Comment installer VirtualBox sur Rocky Linux 8 / CentOS 8 / RHEL 8

Comment installer Apache Maven sur Rocky Linux / CentOS 8

Comment installer Spotify sur CentOS 8 / Rocky Linux

Comment installer Rabbitmq dans Rocky Linux/Alma Linux/Centos 8

Comment installer Python 3.9 sur Rocky Linux