Django python framework – Instalaci贸n en Centos 8

Publica, haz cambios, lo quiero ya, seguro te suena conocido y es algo que agiliza Django Python Framework.

Si, hoy te hablare de como instalar en Centos 8 este django web server para tus proyectos web.

Requerimientos Django python framework

Los requerimientos son mínimos y son los siguientes:

  • Centos Linux 8
  • IP Fija (en este articulo usare la 192.168.5.101)
  • Cuenta root o con permisos de sudo

Para este Django Python Tutorial usaremos una instalación mínima de Centos 8.

OJO, si tienes un servidor Centos 7 disponible, también podrías actualizarlo a la versión 8.

En caso dado que no trabajes desde la cuenta root, usa sudo antes de cada comando.

Seguidamente deshabilitaremos SELinux, si, algunos dirán que es inseguro, no si tenemos cuidado.

Te muestro en vídeo como hacerlo:

SELinux en Centos 8. Como habilitarlo o deshabilitarlo.

Ahora comenzaremos a instalar paquetes, pero primero, verifiquemos actualizaciones de nuestro server Linux.

dnf update

Verifica que este totalmente actualizado tu servidor opensource.

Instalación de dependencias para Django Python Framework

Aunque podriamos trabajar con python 2, debes saber que ya esta llegando a su tiempo final.

Por lo cual usaremos django python 3 en este articulo paso a paso.

Instalamos dependencias necesarias junto a nginx, que sera nuestro servidor web.

dnf install python36 python3-pip nginx

Instalamos Django Python en Centos

Ya instalado python 3, instalamos el framework django en Centos 8.

pip3 install Django

Seguidamente verificamos la django python version instalada.

django-admin --version

En este articulo usaremos la versión 3.0.4.

Creamos un proyecto Django en Centos 8

Nuestros proyectos con Django los crearemos en la ruta /opt, haz los cambios para tu server.

cd /opt/
django-admin startproject djangoprueba
cd djangoprueba/

Con los anteriores comandos creamos un proyecto de nombre djangoprueba en /opt.

Seguidamente migramos cambios ejecutando.

python3 manage.py migrate

Tiempo para crearnos la cuenta de administrador del proyecto django python.

python3 manage.py createsuperuser

Configuramos proyecto Django Python 3

Por default nuestro nuevo proyecto django no permitirá conexiones, por lo que modificaremos su configuracion.

Estas modificaciones las haré con el editor vi (del cual hablo en este vídeo).

Pero si no estas familiarizado con el, puedes usar nano, del cual también tengo vídeo.

Solo agregaremos la ip de nuestro servidor Centos 8 dentro de apostrofes (comillas sencillas).

vi djangoprueba/settings.py
ALLOWED_HOSTS = ['192.168.5.101']

Probamos nuestro Django Web Server

Ya casi terminando, probaremos los cambios.

Para eso ejecutaremos de forma temporal, verificando primero que estemos en el raíz del proyecto.

pwd
/opt/djangoprueba
python3 manage.py runserver 0.0.0.0:8000 &

Agregamos reglas de firewall en Centos 8

Aunque ya estemos ejecutando el server Django, no podemos aun conectarnos por las reglas de firewall.

Agregaremos reglas para permitir trafico en los puertos:

  • 8000 tcp: Puerto de Django Python Framework
  • 80 tcp: Puerto http
firewall-cmd --permanent --add-port=8000/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload

-Abrimos un navegador en otro pc y probamos las siguientes dos URL’s:

  • http://192.168.5.101:8000/ :Pagina del proyecto
  • http://192.168.5.101:8000/admin/ :Entrada de administración del proyecto

Al probar la pagina de administración del proyecto ingresa con la cuenta de admin que creamos anteriormente.

Y así luce tu pagina de administración del proyecto web.

Configuramos gunicorn y nginx

Para el manejo de Django Web Server utilizaremos gunicorn.

Comenzamos instalándolo.

pip3 install gunicorn

Seguidamente activamos e iniciamos el servicio de nginx ademas de verificar su ejecución.

systemctl enable nginx
systemctl start nginx
systemctl status nginx

Damos permisos a nginx de forma recursiva en el árbol de directorios del proyecto.

chown -R nginx:nginx /opt/djangoprueba/

Creamos fichero systemd service para Django

Ahora crearemos un fichero para manejar el servicio via systemd de forma mas cómoda.

vi /etc/systemd/system/django.service
[Unit]
Description=django daemon
After=network.target

[Service]
User=nginx
Group=nginx
WorkingDirectory=/opt/djangoprueba
ExecStart=/usr/local/bin/gunicorn --workers 3 --bind unix:/opt/djangoprueba/djangoprueba.sock djangoprueba.wsgi:application

[Install]
WantedBy=multi-user.target

Ten cuidado de reemplazar las referencias al nombre del proyecto.

Ahora ya es tiempo de finalizar el django de pruebas que tenemos ejecutándose.

Para eso buscaremos con ps y “matamos” sus procesos (escribe sus números de procesos para el comando kill).

ps -ax|grep python3
kill -9 28451 28453

Activamos el servicio para que se ejecute cada vez que haga boot el servidor, lo iniciamos y verificamos.

systemctl enable django
systemctl start django
systemctl status django

Creamos configuracion de nginx para proyecto django

Nginx nos facilitara el manejo de nuestro proyecto Django.

Nos creamos un conf para nginx.

vi /etc/nginx/conf.d/django.conf
server {
listen 80;
server_name 192.168.5.101;

location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /opt/djangoprueba;
}

location / {
proxy_set_header Host $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/djangoprueba/djangoprueba.sock;
}
}

También en el anterior fichero debes reemplazar con tu nombre de proyecto.

Probamos la configuracion de nginx, debe decirnos que esta ok.

nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Reiniciamos el servicio de nginx y lo verificamos.

systemctl restart nginx
systemctl status nginx

Ahora ya estamos listos para acceder a la pagina del proyecto en el URL http://192.168.5.101

Y claro, si me quieres ver en directo instalándolo y configurándolo en vídeo, aquí debajo te lo comparto, no olvides suscribirte a mi canal.

Satisfech@ con el articulo, hazme una donación, no importa la cantidad, la intención es lo que vale, dale click a este botón

Comparte este articulo opensource en tus redes sociales (compartir es sexy) por medio de los botones de redes sociales para que otros lo conozcan y apoyes mi blog.

Ademas, no olvides escribirme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.