Recientemente Tencent nube permanecen 5 yuanes al mes para alquilar nombre de dominio del servidor de la nube + años, pensando proyecto de Django será desplegado en el servidor de la nube, el violín desde hace mucho tiempo, hemos sido capaces de lograr un entorno de nube sección de configuración.
directorio
Instalar la base de datos MySQL
Django mysql configuración del proyecto
Compruebe inicio local en el proyecto de Django servidor de la nube
instalación python3
CentOS 7.6 viene con una versión de Python 2.7.5,
[root@VM_0_3_centos ~]# python -V
Python 2.7.5
Primero instale python3,
[root@VM_0_3_centos ~]# yum install python3
Ver la versión python3
[root@VM_0_3_centos ~]# python3 -V
Python 3.6.8
Establecer la conexión (similar al sistema de ventanas de acceso directo) para conectar el pitón a python3, primero compruebe la conexión suave existente en el pitón
[root@VM_0_3_centos ~]# ll /bin/python*
lrwxrwxrwx 1 root root 7 Nov 5 23:09 /bin/python -> python2
lrwxrwxrwx 1 root root 9 Nov 5 23:09 /bin/python2 -> python2.7
-rwxr-xr-x 1 root root 7216 Aug 7 2019 /bin/python2.7
lrwxrwxrwx 1 root root 9 Apr 7 10:07 /bin/python3 -> python3.6
-rwxr-xr-x 2 root root 11408 Aug 8 2019 /bin/python3.6
-rwxr-xr-x 2 root root 11408 Aug 8 2019 /bin/python3.6m
Eliminar la conexión pitón suave original y establecer la conexión con python3.6
[root@VM_0_3_centos ~]# rm /bin/python
rm: remove symbolic link ‘/bin/python’? y
[root@VM_0_3_centos ~]# ln -s /bin/python3.6 /bin/python
Compruebe de nuevo se pueden encontrar en pitón suave se ha conectado a python3.6
[root@VM_0_3_centos ~]# ll /bin/python
lrwxrwxrwx 1 root root 14 Apr 7 10:17 /bin/python -> /bin/python3.6
El mismo método se puede proporcionar al conector flexible PIP3 pip
[root@VM_0_3_centos ~]# ln -s /bin/pip3 /bin/pip
[root@VM_0_3_centos ~]# ll /bin/pip
lrwxrwxrwx 1 root root 9 Apr 7 10:33 /bin/pip -> /bin/pip3
yum configuración
Después de instalar y configurar python3 conexiones flexibles, se encontró con la primera fosa se encontró yum no se puede utilizar
[root@VM_0_3_centos ~]# yum
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
Yum utilizado originalmente por versión predeterminada de python2.7, después de cambiar la conexión pitón suave resultante yum utilizando la versión python3.6, y por lo tanto a la parte posterior cambio a través de vi editor, el método específico en los primeros Llanuras fila después de algún pitón añaden "2", a continuación, guardar y salir
#!/usr/bin/python2
import sys
try:
import yum
except ImportError:
print >> sys.stderr, """\
...
...
...
Mientras tanto Archivo "/ usr / libexec / urlgrabber-ext-down" también es necesario modificar el mismo
#! /usr/bin/python2
# A very simple external downloader
# Copyright 2011-2012 Zdenek Pavlas
...
...
...
Instalar la base de datos MySQL
yum para paquetes de software descargar e instalar desde el repositorio, vista de la biblioteca de software existente
[root@VM_0_3_centos ~]# ll /etc/yum.repos.d/
total 8
-rw-r--r-- 1 root root 614 Apr 7 13:27 CentOS-Base.repo
-rw-r--r-- 1 root root 230 Apr 7 13:27 CentOS-Epel.repo
En primer lugar, tenemos que añadir MySQL Yum Repositorio (se puede ver el tutorial del sitio web oficial )
[root@VM_0_3_centos ~]# rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
Ver biblioteca de software nuevo, se encontró más de dos
[root@VM_0_3_centos ~]# ll /etc/yum.repos.d/
total 16
-rw-r--r-- 1 root root 614 Apr 7 13:45 CentOS-Base.repo
-rw-r--r-- 1 root root 230 Apr 7 13:45 CentOS-Epel.repo
-rw-r--r-- 1 root root 2076 Apr 25 2019 mysql-community.repo
-rw-r--r-- 1 root root 2108 Apr 25 2019 mysql-community-source.repo
Al mismo tiempo, a través rpm -qa ... Ver todos los paquetes relacionados con MySQL se ha instalado, los resultados muestran que sólo hay una
[root@VM_0_3_centos HelloWorld]# rpm -qa mysql*
mysql80-community-release-el7-3.noarch
Ahora se puede instalar a través de yum install mysql-comunidad-servidor, el comando no solo servidor MySQL instalada debe también instalar paquetes adicionales
[root@VM_0_3_centos ~]# yum install mysql-community-server
Después de la instalación, el uso rpm -qa MySQL * Ver, encontraron cinco paquetes cada nueva instalación
[root@VM_0_3_centos ~]# rpm -qa mysql*
mysql80-community-release-el7-3.noarch
mysql-community-libs-8.0.19-1.el7.x86_64
mysql-community-libs-compat-8.0.19-1.el7.x86_64
mysql-community-common-8.0.19-1.el7.x86_64
mysql-community-client-8.0.19-1.el7.x86_64
mysql-community-server-8.0.19-1.el7.x86_64
mysql abierto
[root@VM_0_3_centos HelloWorld]# systemctl start mysqld.service
Después de la contraseña inicial será generado en mysqld.log un usuario root
[root@VM_0_3_centos ~]# cat /var/log/mysqld.log | grep password
2020-04-07T07:00:22.584068Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: IbHxyweP/2cx
Aterrizaje MySQL, introduzca la contraseña correspondiente
[root@VM_0_3_centos ~]# mysql -uroot -p
Durante otras operaciones, lo que sugiere la necesidad de cambiar la contraseña
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
Siga las instrucciones para realizar cambios, Tianwan3 '!' Representan la contraseña modificada
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Tianwan3!';
Query OK, 0 rows affected (0.01 sec)
Nuevo proyecto HelloWorld, Django base de datos reservada para copia de seguridad.
mysql> CTEATE DATABASE HelloWorld;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CTEATE DATABASE HelloWorld' at line 1
mysql> CREATE DATABASE HelloWorld;
Query OK, 1 row affected (0.02 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| HelloWorld |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
Nuevo proyecto de Django
En primer lugar pip instalar Django
[root@VM_0_3_centos ~]# pip install django
A continuación, entra en el directorio / home, el nuevo proyecto HelloWorld
[root@VM_0_3_centos ~]# cd /home/
[root@VM_0_3_centos home]# django-admin startproject HelloWorld
Introduzca la estructura vista de árbol del proyecto (sin árbol, primero puede instalar yum instalación árbol)
[root@VM_0_3_centos home]# tree
.
`-- HelloWorld
|-- HelloWorld
| |-- asgi.py
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| `-- wsgi.py
`-- manage.py
2 directories, 6 files
cd para el proyecto HelloWorld, introduzca pitón inicio de ejecución del servidor manange.py
[root@VM_0_3_centos HelloWorld]# python manage.py runserver
...
...
...
django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).
Los resultados muestran que el error debido a una versión más baja SQLite (SQLite es una base de datos ligera Django proyecto utilizado por defecto), CentOS 7.6 está incorporado SQLite 3.7.17
[root@VM_0_3_centos HelloWorld]# rpm -qa sqlite*
sqlite-3.7.17-8.el7.x86_64
Una solución puede ser comentada en el archivo correspondiente Código voluntad "/usr/local/lib64/python3.6/site-packages/django/db/backends/sqlite3/base.py"
...
...
...
#def check_sqlite_version():
# if Database.sqlite_version_info < (3, 8, 3):
# raise ImproperlyConfigured('SQLite 3.8.3 or later is required (found %s).' % Database.sqlite_version)
#check_sqlite_version()
...
...
...
Introduzca python manage.py runserver de nuevo, el lanzamiento con éxito!
[root@VM_0_3_centos HelloWorld]# python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
April 07, 2020 - 06:48:35
Django version 3.0.5, using settings 'HelloWorld.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Django mysql configuración del proyecto
En primer lugar es necesario instalar bibliotecas de terceros pymysql
[root@VM_0_3_centos HelloWorld]# pip install pymysql
Importación pymysql HelloWorld en un subdirectorio del proyecto en __init__.py
import pymysql
pymysql.install_as_MySQLdb()
Modificar la base de datos en un subdirectorio HelloWorld en settings.py, los ajustes iniciales son los siguientes:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
Modificado como sigue:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'HelloWorld',
'USER': 'root',
'PASSWORD': 'Tianwan3!',
'PORT': '3306',
'HOST': '',
}
}
Comienza el proyecto, el error, los errores pueden ser encontrados en cuestión es similar a la versión anterior del problema sqlite
[root@VM_0_3_centos HelloWorld]# python manage.py runserver
...
...
...
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
/usr/local/lib64/python3.6/site-packages/django/db/backends/mysql/base.py archivo abierto, comente dos líneas por debajo
#if version < (1, 3, 13):
# raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
Comenzó de nuevo, el éxito!
[root@VM_0_3_centos HelloWorld]# python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, ses
sions.
Run 'python manage.py migrate' to apply them.
April 07, 2020 - 07:33:01
Django version 3.0.5, using settings 'HelloWorld.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Compruebe inicio local en el proyecto de Django servidor de la nube
Iniciar el proyecto en el servidor de la nube
[root@VM_0_3_centos HelloWorld]# python manage.py runserver 0.0.0.0:8000
de entrada del navegador de Internet (servidor de la nube pública IP + número de puerto) 62.234.83.169:8000, está dando los resultados .234.83.169 impulsó a '62 'a allowed_hosts
servidor de la nube utilizando los vi l Abiertas subdirectorios HelloWorld del proyecto en el settings.py, se añade la ip
ALLOWED_HOSTS = ['62.234.83.169']
proyecto de servidor de la nube se pone en marcha de nuevo, la actualización del navegador de Internet, el éxito!