将虚拟机里面的django项目部署到腾讯云服务器的centos系统里

腾讯云服务器安装好centos系统

一、前期准备

1.压缩虚拟机里的本地文件: tar -zcvf knowlege.tar ./knowledge
2.用邮件保存压缩包
3.在服务器里打开邮件,下载knowlege.tar
4.解压缩文件:tar -zxvf knowlege.tar
5.激活虚拟环境:source k_env/bin/activate
6.安装gcc和python3-vevel:

sudo yum install gcc
sudo yum install python3-devel 

7.在虚拟环境外面安装uwsgi:sudo pip3 install uwsgi -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
8.在虚拟环境里面安装uwsgi:pip3 install uwsgi -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
(可能不需要,后期看情况安装django: pip3 install django==2.1-i http://pypi.douban.com/simple --trusted-host pypi.douban.com)
9.给uwsgi建立软链接:sudo ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

二、项目配置修改

1.打开setting.py,将 ALLOWED_HOSTS = [] 修改为 ALLOWED_HOSTS = [’*’],允许所有IP访问。

三、解决跨域问题

1.安装django-cors-headers

pip3 install django-cors-headers==3.4 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

注意:检查适合的版本https://github.com/adamchainz/django-cors-headers/tree/3.5.0
2.配置项目settings.py文件

INSTALLED_APPS = [
    ...
    'corsheaders'...
 ] 
 
MIDDLEWARE_CLASSES = [
    ...
    'corsheaders.middleware.CorsMiddleware', # 注意顺序
    'django.middleware.common.CommonMiddleware', # 注意顺序
    ...
]
# 跨域增加忽略
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True

# 笔者注释了以下三行,否则报错
# CORS_ORIGIN_WHITELIST = [
#     '*'
# ]
 
CORS_ALLOW_METHODS =(
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
    'VIEW',
)
 
CORS_ALLOW_HEADERS = (
    'XMLHttpRequest',
    'X_FILENAME',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
)

注意,权限不够就加sudo在前面
这里会出错,原因是sqlite3版本太低,需要升级
https://yinleilei.blog.csdn.net/article/details/92218635
注意:检查sqlite3要检查外面版本(sqlite3 --version)和里面版本
用下面方法来检查python内部sqlite3的版本,可能是它的版本低

python
import sqlite3
sqlite3.sqlite_version
exit()

注意:要重新编译python

四、启动项目

在项目的根目录下输入代码python3 manage.py runserver 0.0.0.0:8000
成功

五、用云服务器的公网ip试一下

XXX.XXX.XXX.XXX:8000
成功

六、实现项目常驻后台运行

nohup python3 manage.py runserver 0.0.0.0:8000 &

你可能感兴趣的:(Python,Django,linux,python,django)