Python 3之Django2部署(centos7+nginx+python3+django2.0)

前置工具,系统为centos7.5,为了方便管理,能够安装宝塔免费版本php

首先,html

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.shpython

正常干净系统会顺利完成安装,使用过程是感受本身记下配置和更新的过程,相似版本更新或者冲突的先别急着百度,容易形成冲突。nginx

宝塔6.6版本是依赖python2.7的,因此python能够升级到最后版本,例如2.7.15,不要用python3代替2,这样会致使宝塔冲突。web

第一,Python3安装sql

在Centos7 系统中,自带的有python2环境
安装相关包
命令:yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
在python官网下载python3源码
    下载源码
    命令:wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
    解压源码
    命令:tar -xvJf Python-3.7.1.tar.xz  
编译安装python3
   进入解压包中
    命令:cd Python-3.7.1
    设置安装路径
    命令:./configure prefix=/usr/local/python3
    执行编译安装
    命令: make && make install
设置python3命令软链接
    设置python3软链接
    命令:ln -s /usr/local/python3/bin/python3 /usr/bin/python3
    设置pip3环境变量
    命令:ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3django

到此Python3运行环境安装和配置完,关键:必须带3,这样整个系统不会影响到宝塔,python3,pip3等centos

第二,安装supervisorbash

这块能够安装后挂载不一样的服务。例如Python网站,core网站,php网站。微信

 yum install supervisor

安装完毕后,会生成 

/ect/supervisor/supervisord.conf

编辑,能够用winscp打开,也能够直接用vi命令

编辑关键部分。

[inet_http_server] ; inet (TCP) server disabled by default
port=*:9001 ; (ip_address:port specifier, *:port for all iface)
;username=user ; (default is no username (open server))
;password=123 ; (default is no password (open server))

 

这里是supervisor的管理界面,设置*:9001表明能够在外网访问,固然也能够指定IP

[unix_http_server]
file=/tmp/supervisor.sock ; (the path to the socket file)
chmod=0766 ; socket file mode (default 0700)
;chown=nobody:nogroup ; socket file uid:gid owner
;username=user ; (default is no username (open server))
;password=123 ; (default is no password (open server))

 

这里主要chmod设置为0766打开对应的权限

 拉到最下

[include]
files = conf.d/*.conf

配置一下网站独立的conf,用*.conf表明里面的因此文件。

我建了个pydjangoweb.conf的配置,内容以下

[program:PyDjangoWeb]

command=python3 /website/py.django.web/manage.py runserver  0.0.0.0:8090 ; 运行程序的命令

autorestart=true ; 程序意外退出是否自动重启

stderr_logfile=/var/log/pydjango.err.log ; 错误日志文件

stdout_logfile=/var/log/pydjango.out.log ; 输出日志文件

python3是运行程序 /website/py.django...是网站部署的路径,0.0.0.0:8090是端口并设置为外网能够访问.这个留意一点,每行结束需有空格隔开 ;

修改完成后这行

supervisorctl reload让配置生效。

3、设置supervisor为开机启动


/usr/lib/systemd/system/下,新建supervisor.service文件。

[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service nss-user-lookup.target

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf

[Install]
WantedBy=multi-user.target

systemctl enable supervisord

设置启动supervisor

验证是否开机启动:

systemctl is-enabled supervisord

4、配置nginx

具体不详细说,用了宝塔,能够直接编辑配置文件。

#这段是core2.1的
server {
    listen 80;
    server_name quce.lttgx.top; 
    location / {
        proxy_pass http://localhost:5000; 
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
    }
#这段是django2.1的
  server {
    listen 80;
    server_name py.django.web; 
    location / {
        proxy_pass http://localhost:8090; 
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
    }

配置完成后nginx需从新加载

cd usr/local/nginx/sbin

./nginx -s reload 

也能够用宝塔的界面操做。

5、具体代码须要注意点

urlpatterns = [# Examples:
    url(r'^$', app.views.home, name='home'), url(r'^contact$', app.views.contact, name='contact'), url(r'^about$', app.views.about, name='about'), url(r'^login/$', views.LoginView.as_view(template_name= 'app/login.html', authentication_form= app.forms.BootstrapAuthenticationForm, extra_context= { 'title': 'Log in', 'year': datetime.now().year, }), name='login'), url(r'^logout$', views.LogoutView.as_view(next_page='/'), name='logout')

urls.py文件,django2.0后,login,logout方法已取消,能够用views.LoginView.as_view去配置模版页和方法。

settings.py文件

ALLOWED_HOSTS = ['*'] //原来空白的需加上'*',容许在外网访问

补充:

如django运行出错,能够先独立运行  

进入网站路径,运行: python3 manage.py runserver  0.0.0.0:8090

若有错误,看缺什么包没安装,例如须要安装pip3 install django

 

supervisor管理界面,其中包括django项目,tastetest是.net core2.1的微信项目

相关文章
相关标签/搜索