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.
Tabla de contenido
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:
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.
Blogger por ratos, motociclista apasionado, evangelizador opensource, youtuber y gamer para acabar con el stress.
Olvidaba también que me encanta el helado, ir al cine y el café !!