Django项目线上部署流程

一、安装Mysql

1、新建文件、配置仓库源

编辑创建mariadb.repo仓库文件
vi /etc/yum.repos.d/MariaDB.repo

2、添加repo仓库配置

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

3、yum下载

yum install MariaDB-server MariaDB-client -y

4、启动mysql

systemctl start mariadb(通过yum下载的,可以使用systemctl管理)

5、初始化mysql

mysql_secure_installation
mysql.png

6、登录mysql客户端

mysql -uroot -p

二、安装uwsgi

uwsgi的安装通过pip就可以安装

pip install -i  https://pypi.douban.com/simple  uwsgi

测试uwsgi安装是否成功方法 ----->通过uwsgi启动一个python web服务

1、准备一个test_uwsgi.py文件,写入代码:
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World,im uwsgi....."] # python3

2、通过命令启动这个文件
uwsgi --http :8000 --wsgi-file test_uwsgi.py

3、浏览器测试访问
http://167.179.88.178:8000/

测试uwsgi安装是否成功方法 ----->通过uwsgi启动一个Django项目

1、准备好Django项目

2、在Django项目目录下执行一下命令:
uwsgi --http :8000 --module projects_name.wsgi

3、浏览器测试访问
http://167.179.88.178:8000/

三、安装nginx

1、 nginx解决依赖关系
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y

2、切到opt目录,下载nginx安装包
cd /opt
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz

3、解压安装包
tar -zxvf nginx-1.12.0.tar.gz

4、切换进入nginx目录
cd nginx-1.12.0

5、配置,编译安装到指定目录/opt/nginx1-12/
./configure --prefix=/opt/nginx1-12/ #这里不会生成文件夹
make && make install

6、启动nginx,进入sbin目录,找到nginx启动命令
进入nginx主目录,所有东西都在这了:cd /opt/nginx1-12
进入可执行命令目录:cd sbin
nginx相关命令:
./nginx :启动
ps -ef |grep nginx :检查端口和进程
./nginx -s stop :关闭
./nginx -s reload :重启(启动nginx服务时)
./nginx -t :检测nginx.conf语法是否正确

四、uwsgi和nginx对应的配置项

1.创建uwsgi的配置文件 uwsgi.ini,文件放哪里都可以
按照一下相关配置对应配置好相关信息:

[uwsgi]
# Django项目目录
chdir=/www/my_projects/server_manager/
# 指定项目的application
module=server_manager.wsgi:application
# 指定sock的文件路径---对应的nginx通信端口
socket=127.0.0.1:8000
# 进程个数
workers=5
#pidfile=/root/tg/myproject/script/uwsgi.pid
# 指定IP端口
http=0.0.0.0:8080
# 指定静态文件
static-map=/static=/www/my_projects/server_manager/static
# 启动uwsgi的用户名和用户组
uid=root
gid=root
# 启用主进程
master=true
# 自动移除unix Socket和pid文件当服务停止的时候
vacuum=true
# 序列化接受的内容,如果可能的话
thunder-lock=true
# 启用线程
enable-threads=true
# 设置自中断时间
harakiri=30
# 设置缓冲
post-buffering=4096
# 设置日志目录
daemonize=/www/my_projects/uwsgi.log

2、测试uwsgi配置是否成功
uwsgi --http :8080 --module server_manager.wsgi
浏览器可以输入 http://167.179.88.178:8080 测试项目是否可以启动

3、创建存放Django静态文件的目录:
mkdir /opt/static/django

4、配置django项目settings.py文件

ALLOWED_HOSTS = ['*']

#收集静态文件的目录,静态文件内容都放这里了
STATIC_ROOT='/opt/static/django'
STATIC_URL = '/static/'
STATICFILES_DIRS=[
    os.path.join(BASE_DIR,"static"),
]
STATIC_ROOT 文件夹 是用来将所有STATICFILES_DIRS中所有文件夹中的文件,以及各app中static中的
文件都复制过来,把这些文件放到一起是为了用nginx等部署的时候更方便。

5、在Django项目下执行一下命令来收集静态文件:
python manage.py collectstatic

6、nginx配置
vi /opt/nginx1-12/conf/nginx.conf

server {
        listen       80;
        server_name  167.179.88.178;
        charset utf-8;
        access_log  /www/my_projects/logs/host.access.log;
        error_log  /www/my_projects/logs/host.error.log;

        location / {
            include  /opt/nginx1-12/conf/uwsgi_params;
            uwsgi_pass 127.0.0.1:8000;
            index  index.html index.htm;
        }
        location /static {
                alias /opt/static/django; # 静态文件绝对路径
        }

7、通过which uwsgi命令找到uwsgi可执行命令的绝对路径
/usr/bin/uwsgi

8、cd 到第一步创建的uwsgi.ini 文件的目录执行一下命令:
/usr/bin/uwsgi --ini uwsgi.ini
输出结果为一下内容:

[root@vultr my_projects]# /usr/bin/uwsgi --ini uwsgi.ini 
[uWSGI] getting INI configuration from uwsgi.ini
[uwsgi-static] added mapping for /static => /www/my_projects/server_manager/static
[root@vultr my_projects]# 

9、执行以下命令启动nginx服务:
/opt/nginx1-12/sbin/nginx

10、浏览器访问ip地址就可以看到部署好的项目了
http://167.179.88.178:80

附:服务器开启端口命令:
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

CentOS 7开放端口和关闭防火墙
https://www.jianshu.com/p/bad33004bb4f

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,688评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,559评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,749评论 0 226
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,581评论 0 191
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,741评论 3 271
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,684评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,122评论 2 292
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,847评论 0 182
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,441评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,939评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,333评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,783评论 2 236
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,275评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,830评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,444评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,553评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,618评论 2 249

推荐阅读更多精彩内容