一、安装python

点击此处了解详情

二、安装django(Python3.8.2)

pip3 install pymysql && pip3 install pillow && pip3 install django==3.0.4 && pip3 install django-ckeditor

三、安装uwsgi

1、使用pip进行安装

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

2、创建软链接

ln -s /usr/local/python38/bin/uwsgi /usr/bin/uwsgi

3、测试uwsgi和django的契合

uwsgi

4、关闭防火墙和selinux

systemctl stop firewalld

setenforce

setenforce 0

如果在使用setenforce命令设置selinux状态的时候出现提示:setenforce: SELinux is disabled
说明selinux已经被彻底的关闭,需要重新开启selinux

vi /etc/selinux/config

更改为:SELINUX=1 ,重启linux,开启selinux

5、使用uwsgi的命令启动django

uwsgi --http 49.233.12.121:8000 --file /opt/QShop/wsgi.py --static-map=/static=static

–http ip端口

–file uwsgi文件位置 /opt/QShop/是django项目的路径

–static-map 静态文件路由

可在浏览器输入地址,打开项目
6、使用uwsgi脚本启动django

这个操作需要nginx的配合,所以需要安装nginx,但是准备工作可以先做

在/opt下创建script目录,在script目录下创建uwsgi.ini文件,内容为:

[uwsgi]
 
chdir=/opt/QShop
module=QShop.wsgi:application
socket=/opt/script/uwsgi.sock
workers=5
pidfile=/opt/script/uwsgi.pid
http=192.168.254.130:9000
static-map=/static=/opt/QShop/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
~                                   

上面代码的分别对应的是:

[uwsgi] 声明uwsgi

chdir #项目目录

module #指定项目的application,尤其注意的是这个!!!下面会提到

socket #指定sock的文件路径

workers #进程个数

pidfile #pid文件

http #指定IP端口

static-map #指定静态文件

uid #用户

gid #组

master #启用主进程

vacuum #自动移除unix Socket和pid文件当服务停止的时候

enable-threads #启用线程

thunder-lock #序列化接受的内容,如果可能的话

harakiri #设置自中断时间

post-buffering #设置缓冲

daemonize=/opt/script/uwsgi.log #设置日志目录

这个东西是wsgi!!!!这个文件是python创建的,就叫wsgi,而不要自己改成uwsgi!!!

四、安装nginx
1、下载nginx包

Wget http://nginx.org/download/nginx-1.12.2.tar.gz
2、解压包

tar -zxvf nginx-1.12.2.tar.gz
3、切入解压目录

cd nginx-1.12.2
4、编译安装

./configure \

出现了>,然后再按一下enter

make && make install
5、创建软链接

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
6、启动nginx测试

nginx

然后进网页,查看是否启动了

7、配置nginx访问uwsgi参照(nginx/conf/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;
 
 
        error_log /var/log/nginx/error.log error;
 
        location / {
                include uwsgi_params;
                uwsgi_connect_timeout 30;
                uwsgi_pass unix:/opt/script/uwsgi.sock;
        }
 
        error_page   500 502 503 504  /50x.html;
        location = /static/ {
                alias /opt/QShop/static;
                index index.html index.htm;
        }
    }
}

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;

    }

8、关闭nginx和uwsgi

pkill -9 uwsgi

pkill -9 nginx
9、先启动uwsgi然后启动nginx

uwsgi --ini /opt/script/uwsgi.ini

nginx

如果没有报错的话,应该已经完成了,可以根据设置好的地址,去浏览器访问

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐