Site is under maintenance mode. Please wait few min!
Saltar al contenido

Cómo construir un mapa del sitio personalizado para tu sitio Gatsby.js

marzo 4, 2020

 

Introducción

Django es un framework web de gran alcance que puede ayudarle a conseguir su aplicación Python o sitio web fuera de la tierra rápidamente. Django incluye un servidor de desarrollo simplificado para probar su código a nivel local, pero para cualquier cosa, incluso ligeramente la producción relacionada, se requiere un servidor web más seguro y potente.

En esta guía, vamos a demostrar cómo instalar y configurar Django en un entorno virtual de Python en CentOS 7. Vamos a fijar entonces Apache frente a nuestra solicitud para que se pueda manejar peticiones de clientes directamente antes de pasar a las solicitudes que requieren una aplicación lógica para la aplicación Django. Lo haremos mediante el módulo de Apache mod_wsgi que puede comunicarse con Django sobre la especificación de interfaz WSGI.

Requisitos previos Objetivos y

Con el fin de completar esta guía, usted debe tener un CentOS frescas 7 instancia de servidor con un usuario no root con privilegios sudo configurados. Usted puede aprender cómo configurar esto mediante la ejecución thorugh nuestra guía de configuración inicial del servidor.

vamos a instalar Django dentro de un entorno virtual de Python. La instalación de Django en un entorno específico para su proyecto le permitirá a sus proyectos y sus requisitos para ser manipulados por separado.

Una vez que tenemos nuestra aplicación en funcionamiento, vamos a configurar Apache para interactuar con la aplicación de Django. Esto se hará con el módulo de Apache mod_wsgi, lo que puede traducirse peticiones HTTP en un formato de aplicación predecible definido por una especificación llamada WSGI. Puede encontrar más información sobre WSGI mediante la lectura de la sección vinculada en esta guía. get de

Let comenzó.

instalar paquetes desde los CentOS y EPEL Repos

Para comenzar el proceso, vamos a descargar e instalar todos los elementos que necesitamos de los repositorios de nuestra distribución. Esto incluirá el servidor web Apache, el módulo de interfaz utilizado para mod_wsgi con nuestra aplicación de Django, y PIP, el gestor de paquetes de Python que se puede utilizar para descargar nuestras herramientas Python-relacionados.

para obtener PIP, tendremos que habilitar el repositorio EPEL, que como algunos paquetes adicionales. Puede hacerlo fácilmente escribiendo:

sudo yum install epel-release

Con EPEL activado, podemos instalar los componentes que necesitamos escribiendo:

sudo yum install python-pip httpd mod_wsgi

configurar un pitón Entorno Virtual

Ahora que tenemos los componentes de los repositorios, podemos empezar a trabajar en proyecto de nuestra Django. El primer paso es la creación de un entorno virtual de Python para que nuestro proyecto Django será independiente de las herramientas del sistema y cualquier otro proyecto de Python podemos estar trabajando.

necesitamos instalar el comando virtualenv para crear estos ambientes. Podemos conseguir esto utilizando pip:

sudo pip install virtualenv

Con virtualenv instalado, podemos empezar a formar nuestro proyecto. Crear un directorio en el que desea guardar su proyecto y se mueven en el directorio:

mkdir ~/myproject
cd ~/myproject

Dentro del directorio del proyecto, crear un entorno virtual de Python escribiendo:

virtualenv myprojectenv

Esto creará un directorio llamado myprojectenv dentro de su directorio miproyecto. En el interior, se instalará una versión local de Python y una versión local del PIP. Podemos usar esto para instalar y configurar un entorno aislado Python para nuestro proyecto.

Antes de instalar Python requisitos de nuestro proyecto, tenemos que activar el entorno virtual. Puede hacerlo escribiendo:

source myprojectenv/bin/activate

su pronta debe cambiar para indicar que ahora está operando dentro de un entorno virtual de Python. Se verá algo como esto: (myprojectenv) user @ host: ~ / miproyecto $.

con su entorno virtual activa, instalar Django con la instancia local de pip escribiendo:

pip install django

Crear y configurar un nuevo Django Proyecto

Ahora que Django está instalado en nuestro entorno virtual, podemos crear los archivos reales del proyecto de Django.

Crear el proyecto Django

Como ya tenemos un directorio del proyecto, vamos a decirle a Django para instalar los archivos aquí. Se va a crear un segundo nivel de directorio con el código real, lo cual es normal, y colocar un script de gestión en este directorio. La clave para esto es el punto en el extremo que le dice a Django para crear los archivos en el directorio actual:

django-admin.py startproject myproject .

Ajuste el Proyecto Ajustes

Lo primero que debemos hacer con nuestros archivos de proyecto de nueva creación es ajustar la configuración. Abra el archivo de configuración con el editor de texto:

nano myproject/settings.py

Vamos a utilizar la base de datos SQLite por defecto en esta guía por razones de simplicidad, por lo que en realidad no necesitamos cambiar demasiado. Nos centraremos en la configuración del directorio de archivos estáticos, donde Django colocar los archivos estáticos para que el servidor web puede servir a éstos fácilmente.

En la parte inferior del archivo, vamos a añadir una línea para configurar este directorio. Django usa el ajuste STATIC_ROOT para determinar el directorio donde estos archivos deben ir. Vamos a utilizar un poco de Python para que lo utilice un directorio llamado “estática” en el directorio principal de nuestro proyecto:

STATIC_ROOT = os.path.join(BASE_DIR, "static/")

Guardar y cerrar el archivo cuando haya terminado.

completa configuración inicial del Proyecto

Ahora, podemos migrar el esquema de base de datos inicial a nuestra base de datos SQLite utilizando la secuencia de comandos de gestión:

cd ~/myproject
./manage.py makemigrations
./manage.py migrate

Crear un usuario administrativo para el proyecto escribiendo:

./manage.py createsuperuser

Usted tendrá que seleccionar un nombre de usuario, proporcionar una dirección de correo electrónico, y seleccione y confirme una contraseña.

Nos puede recopilar todo el contenido estático en la ubicación del directorio hemos configurado escribiendo:

./manage.py collectstatic

Tendrá que confirme la operación. Los archivos estáticos serán colocados en un directorio llamado estática dentro de su directorio del proyecto.

Por último, se puede probar el proyecto de poner en marcha el servidor de desarrollo de Django con este comando:

./manage.py runserver 0.0.0.0:8000

En su navegador web, visite nombre de dominio del servidor o la dirección IP seguido de: 8000:

http://server_domain_or_IP:8000

Debería ver el valor por defecto de Django página de índice:

Si append / admin hasta el final de la dirección URL en la barra de direcciones, se le pedirá el nombre de usuario administrativo y la contraseña que ha creado con el comando createsuperuser:

después de la autenticación, se puede acceder a la interfaz de administración de Django por defecto:

Cuando haya terminado de explorar, pulse CTRL-C en la ventana de terminal para apagar el servidor de desarrollo.

Estamos ahora se hace con Django, por el momento, por lo que podemos retirarse de nuestro entorno virtual escribiendo:

deactivate

Configurar Apache

Ahora que su proyecto de Django está trabajando, podemos configurar Apache como un front-end. Las conexiones de cliente que recibe serán traducidos al formato WSGI que las Espera aplicación Django usando la mod_wsgi módulo. Esto debería haber sido activada automáticamente después de la instalación anterior.

Para configurar el pase WSGI, tendremos que crear un nuevo archivo de configuración que define el paso WSGI. Crear y abrir un archivo con privilegios sudo dentro del directorio /etc/httpd/conf.d. Vamos a llamar a este archivo django.conf:

sudo nano /etc/httpd/conf.d/django.conf

Para empezar, vamos a configurar los archivos estáticos. Vamos a utilizar un alias para decirle a Apache para mapear todas las solicitudes que comienzan con / estática en el directorio “estática” dentro de nuestra carpeta del proyecto. Se recopilaron los activos estáticos allí antes. Vamos a establecer el alias y luego conceder acceso al directorio en cuestión con un bloque de directorio:

Alias /static /home/user/myproject/static

Require all granted

A continuación, vamos a conceder acceso al archivo wsgi.py dentro del segundo nivel del directorio del proyecto donde se almacena el código de Django. Para ello, vamos a utilizar una sección de directorio con un archivo dentro de la sección. Vamos a permitir el acceso al interior de esta construcción de archivos anidados:

Alias /static /home/user/myproject/static

Require all granted



Require all granted


Después de esto está configurado, estamos listos para construir la parte del archivo que realmente maneja el pase WSGI. Vamos a utilizar el modo demonio para ejecutar el proceso WSGI, que es la configuración recomendada. Podemos usar la directiva WSGIDaemonProcess instalar esto.

Esta directiva tiene un nombre arbitrario para el proceso. Vamos a utilizar miproyecto a permanecer constante. Posteriormente, hemos creado la ruta de Python en Apache puede encontrar todos los componentes que puedan ser necesarios. Ya que utilizamos un entorno virtual, tendremos que configurar dos componentes de la ruta. El primero es el directorio principal de nuestro proyecto, donde los archivos de proyecto se pueden encontrar. La segunda es la ruta / pythonx.x / site-packages lib dentro de nuestra carpeta del entorno virtual (donde las X se sustituyen por los componentes número de versión de Python). De esta manera, Apache puede encontrar toda la otra código Python necesario para ejecutar nuestro proyecto.

Después, tenemos que especificar el grupo de procesos. Esto debe apuntar al mismo nombre que elegimos para la directiva WSGIDaemonProcess (miproyecto en nuestro caso). Por último, tenemos que establecer el alias de secuencia de comandos para que Apache pasará solicitudes para el dominio raíz en el fichero de wsgi.py:

Alias /static /home/user/myproject/static

Require all granted



Require all granted

WSGIDaemonProcess myproject python-path=/home/user/myproject:/home/user/myproject/myprojectenv/lib/python2.7/site-packages
WSGIProcessGroup myproject
WSGIScriptAlias / /home/user/myproject/myproject/wsgi.py

Cuando haya terminado de realizar estos cambios, guardar y cerrar el archivo.

Embalaje para arriba de algunos permisos Problemas

continuación, tenemos que fijar unos conjuntos de permisos para que el servicio de Apache puede acceder a nuestros archivos. Por defecto, CentOS cerraduras abajo del directorio de cada usuario muy restrictiva. Para evitar esto, añadiremos el usuario apache al grupo de nuestro propio usuario. Esto nos permitirá abrir los permisos sólo lo suficiente para que pueda llegar a los archivos correspondientes.

Añadir el usuario apache a su grupo con el siguiente comando. Sustituir su propio nombre de usuario para el usuario en el comando:

sudo usermod -a -G user apache

Ahora, podemos dar a nuestro grupo de usuarios permisos de ejecución en nuestro directorio personal. Esto permitirá que el proceso de Apache para entrar y acceder a contenidos dentro:

chmod 710 /home/user

Esto le dará la capacidad de Apache para entrar en nuestro directorio personal.

Si está utilizando la base de datos SQLite, que es el valor por defecto utilizado en este artículo, es necesario permitir el acceso proceso de Apache para el archivo de base de datos en sí.

Para ello, el primer paso es cambiar los permisos para que el propietario del grupo de la base de datos puede leer y escribir. El archivo de base de datos se llama db.sqlite3 por defecto y debe estar ubicado en el directorio del proyecto de base:

chmod 664 ~/myproject/db.sqlite3

Después, tenemos que dar al grupo Apache se ejecuta bajo, el Apache Group, propiedad del grupo del archivo:

sudo chown :apache ~/myproject/db.sqlite3

En para poder escribir en el fichero, también tenemos que dar a la propiedad del grupo Apache en el directorio principal de la base de datos:

sudo chown :apache ~/myproject

Una vez que estos pasos se realizan, ya está listo para iniciar el servicio de Apache. Para ello, escriba:

sudo systemctl start httpd

Ahora debería ser capaz de acceder a su sitio Django, vaya a nombre de dominio del servidor o la dirección IP sin especificar un puerto. El sitio regular y la interfaz de administración deben funcionar como se espera.

Si todo funciona como se espera, puede activar el servicio de Apache para que se inicie automáticamente durante el arranque:

sudo systemctl enable httpd

Conclusión

En esta guía, hemos creado un proyecto Django en su propio entorno virtual. Hemos configurado Apache con mod_wsgi a solicitudes de cliente de la manija y la interfaz con la aplicación de Django.

Django facilita la creación de proyectos y aplicaciones simples, proporcionando muchas de las piezas comunes, lo que le permite centrarse en los elementos únicos. Mediante el aprovechamiento de la cadena de herramientas general que se describe en este artículo, puede servir fácilmente las aplicaciones que se crean a partir de un único servidor.