Centos7 部署Django项目
软件版本:Centos7 | Python3.6 | Django1.11.6
步骤:(在root用户操作下完成)
一、更新系统软件包
执行命令: yum update -y
二、 安装软件管理包和可能使用的依赖
1. 执行命令: yum -y groupinstall "Development tools"
2. 执行命令:
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
三、下载Pyhton3到 /usr/local 目录
1. 切换到 /usr/local 目录
2. 获取python3.6的压缩文件
执行命令: wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz
3. 解压python3.6
执行命令: tar -zxvf Python-3.6.6.tgz
4. 进入 python-3.6.6 的路径
执行命令: ls 查看目录 cd Python-3.6.6 进入目录
5. 编译安装python3到指定路径
A) 执行命令: ./configure --prefix=/usr/local/python3
注意:/usr/local/python3 路径可以自己指定,自己记着就行,下边要用到。
B)安装python3
a) 执行命令: make
b) 执行命令: make install
C) 安装完成之后,建立软链接,添加变量,方便在终端中直接使用python3
a)python3 的软连接
执行命令: ln -s/usr/local/python3/bin/python3.6/usr/bin/python3
b)pip3 的软连接
执行命令: ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3
c) 查看python和pip的版本
执行命令: python3和pip3 –V
四、虚拟环境里安装Django和uwsgi
1. 执行命令: pip3 install django==1.11.6 注意:如果用于生产的话,则需要指定安装和你项目相同的版本
执行命令:
ln -s /usr/local/python3/bin/django-admin /usr/local/bin/django-admin
2. 执行命令: pip3 install uwsgi
3. 给uwsgi建立软链接
执行命令: ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
五、切换到网站目录/home/wwwroot,创建Django项目
1. 执行命令: cd /home/wwwroot 切换目录
2. 执行命令: django-admin startproject mysite
3. 进入mysite,新建一个app应用,我这里取名叫blog
A) 执行命令: cd mysite 进入mysite目录
B) 执行命令: python3 manage.py startapp blog
4. 新建文件夹 static 和 templates ,分别用于存放静态文件和模板文件
A) 执行命令: mkdir static
B) 执行命令: mkdir templates
六、修改编辑Django项目文件
1. 编辑 mysite 里面的 settings.py 文件
A) 执行命令: cd mysite
B) 执行命令: vim settings.py
a) 在 INSTALLED_APPS 列表里添加'blog'的APP
b) 修改 ALLOWED_HOSTS =['※'] 可以让任何IP访问
c) ALLOWED_HOSTS 里添加模板路径 os.path.join(BASE_DIR, 'templates')
d) 在文件末尾添加 STATICFILES_DIRS = (os.path.join(BASE_DIR,'static'),)
e) 最后保存退出。按 Esc 键,输入 :wq 保存退出
七、启动项目
1. 执行命令: cd /home/wwwroot/mysite 切换到mysite目录
2. 执行命令: python3 manage.py runserver 可见项目正常启动了
八、Django正常运行之后,我们就开始配置一下uwsgi
在服务器上编写一个Python文件app.py:
def application(env, start_response):
start_response(‘200 OK‘, [(‘Content-Type‘,‘text/html‘)])
return [b"Hello World"]
在服务器上执行命令启动Web服务器:
uwsgi --http :9001 --wsgi-file app.py
或者
uwsgi --http :9001 --wsgi-file foobar.py --master --processes 4
PS: flask需要再加 --callable app
c. django 程序使用uwsgi
将开发好的django程序拷贝到服务器目录【同示例一】,即:/home/wwwroot ,执行命令启动:
uwsgi --http :9001 --chdir /home/wwwroot/ --wsgi-file mysite/wsgi.py --master --processes 4
九、安装 nginx 和配置 nginx.conf 文件
1. 执行命令: cd /home 进入home目录
2. 执行命令: wget http://nginx.org/download/nginx-1.13.7.tar.gz 下载NGINX 压缩包
3. 解压NGINX ,执行命令: tar -zxvf nginx-1.13.7.tar.gz
4. 依次执行以下命令:
a) 执行命令: cd nginx-1.13.7 进入nginx-1.13.7****文件夹
b) 执行命令: ./configure
c) 执行命令: make
d) 执行命令: make install
注意:nginx一般默认安装好的路径为/usr/local/nginx
5. 进入 /usr/local/nginx/conf 目录,打开nginx.conf文件
a) 执行命令: cd /usr/local/nginx/conf 进入目录
b) 执行命令: vim nginx.conf 在 server 里编辑以下内容:
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8997;
uwsgi_param UWSGI_SCRIPT mysite.wsgi;
uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite;
}
location /static/ {
alias /data/wwwroot/mysite/static/; #静态文件目录
}
要记得保存!
6. 执行命令: cd /usr/local/nginx/sbin 进入 /usr/local/nginx/sbin/ 目录
7. 执行命令: ./nginx -t (千万不要忘了那个 . )
8. 如果成功了,就执行命令: ./nginx
注意:终端没有任何提示就证明nginx启动成功。可以使用你的服务器地址查看,成功之后就会看到一个nginx欢迎页面。
启动uwsgi和nginx
uwsgi --ini /home/wwwroot/mysite.ini &
/etc/init.d/nginx start
十、访问项目的页面
1. 执行命令: cd /data/wwwroot/mysite/ 进入Django项目目录
2. 执行命令: uwsgi -x mysite.xml
3. 如果没有报错,那么:
A) 执行命令: cd /usr/local/nginx/sbin/ 进入目录
B) 执行命令: ./nginx -s reload 重启nginx
4. 然后在浏览器里输入IP就OK了!