虚拟机linux系统下django环境部署全命令

我们需要的软件有VMware、Xshell 5、Xftp 6
首先创建虚拟机
进入opt文件夹
使用Xftp 6导入python3.6.2安装包、nginx-1.12.2安装包
在项目文件夹,删除里面的__pycharm__的配置文件
之后就可以无脑在Xshell中依次复制粘贴命令了
如果需要安装包的版本不同,请自行修改,还有项目名称,ip地址,端口等不同也要自行修改
1、导入依赖包
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
2、解压python包
tar -Jxvf Python-3.6.2.tar.xz
3、切入安装路径,出箭头>回车
cd Python-3.6.2
./configure prefix=/usr/local/python3
4、编译安装
make && make install
5、创建软链接–》快捷方式
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

(可以先不弄)
以后我们运行python3的脚本需要编程 python3 *.py
安装python的扩展包
yum install python-devel

6、安装python安装包
pymysql
pillow
django2.1.5
django-ckeditor 富文本编辑器
pip3 install pymysql && pip3 install pillow && pip3 install django
2.1.5 &&pip3 install django-ckeditor

7、安装uwsgi
Python 的web项目,本身很难和Apache或者Nginx进行结合,为了让python web项目更加方便的被部署,开发出了uwsgi。
pip3 install uwsgi
8、创建软链接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

9、我们迁移我们的项目Qshop
复制我们的项目到虚拟机
(前边已经执行的不用执行)

10、关闭防火墙、selinux
systemctl stop firewalld
setenforce
11、用uwsgi模块,启动django
uwsgi --http 10.10.65.51:8000 --file Qshop/wsgi.py --static-map=/static=static

上面我们采用的是命令的方式使用uwsgi启动django,但是,不够完美。我们可以构造配置文件进行操作。

1、使用uwsgi的脚本启动django
在/opt下创建script目录
2、在script目录下创建uwsgi.ini
文件内容:自己改
[uwsgi]

chdir=/opt/OurBlog
module=OurBlog.wsgi:application
socket=/opt/script/uwsgi.sock
workers=5
pidfile=/opt/script/uwsgi.pid
http=10.10.10.110:9000
static-map=/static=/opt/OurBlog/static
uid=root
gid=root
master=true
vacuum=true
enable-threads=true
thunder-lock=true
harakiri=30
post-buffering=4096
daemonize=/opt/script/uwsgi.log

3、在script目录下执行如下语句会出现4个文件
uwsgi --ini uwsgi.ini
4、安装nginx
tar -zxvf nginx-1.12.2.tar.gz
cd 切入目录
./configure
回车
make && make install
5、创建软链接
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

6、启动测试
nginx

7、进入conf目录
cd /usr/local/nginx/conf

8、备份下配置文件
cp nginx.conf nginx.conf.bak

9、开始配置nginx访问uwsgi 参照(nginx.conf)

http {
include mime.types;
default_type application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"'; 日志的格式

#access_log  logs/access.log  main;

sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65;

#gzip  on;

server {
listen 80;
server_name Qshop; 项目服务的名称

    charset utf-8; 编码格式

    access_log  logs/host.access.log  main; 访问日志

    gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream;  访问内容的类型

    error_log /var/log/nginx/error.log error; 错误日志,默认没有,需要手动创建

    location / {
         include uwsgi_params; 加载uwsgi_params
         uwsgi_connect_timeout 30; 连接的超时时间 不要加冒号不要加冒号不要加冒号 
         uwsgi_pass unix:/opt/script/uwsgi.sock; uwsgi.sock通讯的文件地址
    }

    location = /static/{
        alias /opt/Qshop/static; 静态文件的目录
        index index.html index.htm;
    }

10、先启动uwsgi 然后启动nginx

10、杀死当前所有的nginx,uwsgi

pkill -9 uwsgi
pkill -9 nginx
去script下执行
uwsgi --ini uwsgi.ini
nginx
然后就可以去浏览器去查看你在虚拟机中的的项目了

你可能感兴趣的:(django)