共计 2229 个字符,预计需要花费 6 分钟才能阅读完成。
Django 我的项目 Linux 近程部署记录
Django
我的项目部署。该项目名称为shop-search
,配置端口号为9000
,以下为配置过程记录。
<!– more –>
近程拷贝我的项目文件
scp -r ~/Source/Project/Python/shop-search root@122.51.xx.xx:/source/python/deployment/
近程账号登录
ssh akashi@122.51.xx.xx
留神:我的项目最终部署时最好不要应用 root
用户部署。root
权限过高,间接部署我的项目存在安全隐患。
留神:IP
地址已隐去局部:xx.xx
,参考时填写本人对应地址,以下相应隐去内容不再做提醒。
近程虚拟环境启动
在对应我的项目下启动虚拟环境:
pipenv shell | |
pipenv install |
同步、迁徙数据表
我的项目数据库之前曾经在近程创立实现,这里不再介绍,可应用 mysqldump
对数据进行疾速导入导出操作。
根本数据库操作命令:
# 登录 | |
mysql -uroot -pxxx | |
# 显示数据库列表 | |
show databases; | |
# 抉择并关上库 | |
use xxx; | |
# 显示表 | |
show tables; | |
# 建库 | |
create database 库名; | |
# 建表:use 库名;create table 表名 (字段设定列表);# 删库和删表: | |
drop database 库名; | |
drop table 表名; |
一些参考:
- mysqldump
- mongodb 迁徙 mysql
- Django 连贯 mysql
应用 Django
命令同步和迁徙数据库。
在迁徙过程中如果呈现报错 django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
是因为 2.x
当前 Django
版本兼容性导致。
起因参考文档.
目前比拟好的解决方案就是做一个版本坑骗,简略高效。在 apps
下对应作用目录中的 __init__.py
中增加:
import pymysql | |
pymysql.version_info = (1, 3, 13, "final", 0) | |
pymysql.install_as_MySQLdb() |
同时装置对应依赖:
pipenv install pymysql
进行同步迁徙数据表:
python manage.py makemigrations | |
python manage.py migrate |
uwsgi
我的项目启动
应用 uwsgi
对我的项目进行启动:
uwsgi --http-socket :9000 --plugin python --module shop-search.wsgi
若无报错,完结启动状态。配置后盾启动文件。
ini
文件配置
在我的项目根目录下新建配置文件 shop-search-uwsgi.ini
进行配置:
touch shop-search-uwsgi.ini | |
sudo vim shop-search-uwsgi.ini |
配置如下:
# 配置域 | |
[uwsgi] | |
# 工作目录 | |
chdir = /source/python/deployment/shop-search | |
# 模块 | |
module = shop-search.wsgi | |
# 申请端口 | |
http-socket = :9000 | |
# master | |
master = True | |
# 过程 | |
processes = 4 | |
# 线程 | |
threads = 1 | |
# 是否退出是清理相干内容 | |
vacuum = true |
配置 log 和 pid
新建日志文件和 pid
存储地位:
mkdir log && mkdir pid
在 shop-search-uwsgi.ini
中增加对应配置,用于后盾启动和进行。
# backend run uwsgi | |
daemonize = %(chdir)/log/uwsgi-9000.log | |
log-maxsize = 1024*1024*1024 | |
pidfile = %(chdir)/pid/uwsgi-9000.pid |
启动
sudo uwsgi --ini shop-search.ini
启动后可对后盾运行过程进行查看:
ps -aux | grep shop-search
留神:本我的项目依赖虚拟环境,需在虚拟环境中启动能力启动胜利,留神查看虚拟环境是否开启,如果是应用近程主机本地环境,则能够疏忽。
启动实现后退出虚拟环境:
exit
配置 Nginx
启动 nginx
sudo nginx
在对应 nginx
装置目录下批改配置文件 nginx.conf
以下是我的门路参考:
cd /etc/nginx | |
sudo vim nginx.conf |
在 http
下增加配置:
留神:在 60
多行左右,能够在 vim
下输出 :set nu
显示行数。
# Shop-Search Site Config | |
upstream shop-search {server 122.51.xx.xx:9000;} | |
server { | |
listen 80; | |
server_name search.akashi.xx; | |
charset utf-8; | |
access_log /var/log/nginx/nginx.log; | |
location / {proxy_pass http://shop-search;} | |
location /static {alias /source/python/deployment/shop-search/static;} | |
} |
配置实现,重启 nginx
:
sudo nginx -s reload
更多 nginx
配置,如加密部署、部署高可用服务等可参考我的另一篇文章:Python 利用 uWSGI + Nginx 部署.
至此,我的项目近程部署实现。