Python 3之Django2部署(centos7+nginx+python3+django2.0)
前置工具,系统为centos7.5,为了方便管理,可以安装宝塔免费版本
首先,
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
正常干净系统会顺利完成安装,使用过程是感觉自己记下配置和更新的过程,类似版本更新或者冲突的先别急着百度,容易造成冲突。
宝塔6.6版本是依赖python2.7的,所以python可以升级到最后版本,例如2.7.15,不要用python3代替2,这样会导致宝塔冲突。
第一,Python3安装
在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/pip3
到此Python3运行环境安装和配置完,关键:必须带3,这样整个系统不会影响到宝塔,python3,pip3等
第二,安装supervisor
这块可以安装后挂载不同的服务。例如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让配置生效。
三、设置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
四、配置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
也可以用宝塔的界面操作。
五、具体代码需要注意点
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的微信项目
Python 3之Django2部署(centos7+nginx+python3+django2.0)的更多相关文章
- centos7+nginx 1.9.0+php-fpm+phpstorm+xdebug+vmware开发环境搭建
1.php-fpm yum install php-fpm 默认配置在本地9000端口监听 service php-fpm restart启动 2.nginx 1.9.0 需先安装gcc zlib o ...
- .Net Core 部署 CentOs7+Nginx
先爆图 由于是初学者,部署出来这个界面也不容易,此前第一步弄了个这个出来 动态的没问题,然后静态资源死活就是不出来,弄了两个小时没有结果,带着遗憾睡了个觉 试验1: server { listen ; ...
- 阿里云 centos7 django + uWSGI+Nginx + python3 部署攻略
centos7+nginx+python3+django+uwsgi配置Django 项目部署 1.租的服务器(选择centos)的话,需要在阿里云后台控制台开放几个端口,克隆一下已开放的端口,t ...
- 腾讯云下的CentOS7 安装最新版Python3.7.0
第一步下载Python3.7.0 刚开始我是在windows上下载之后 传到FTP服务器上的 后来发现使用以下命令可以更快捷地下载到服务器 * wget https://www.python.org ...
- 基于centos7+nginx+uwsgi+python3+django2.0部署Django项目
0.序言 本文讲解如何基于centos7+nginx+uwsgi+python3+django2.0把windows上的本地项目部署到云服务器上. 本文服务器上的django项目和虚拟环境的路径将建立 ...
- centos7+python3.6+nginx+uwsgi+django2的搭建笔记
公司需上线一套python编写的代码,需要给搭建一套环境 ,本次采用centos7+python3.6+nginx+uwsgi2+django2+mysql5.7的方式来进行搭建 写在部署前 在线上 ...
- Django Linux环境下部署CentOS7+Python3+Django+uWSGI+Nginx(含Nginx返回400问题处理、防火墙管理)
本文将介绍如何在Linux系统上部署Django web项目,本次部署基于下面的架构: CentOS7+ Python3.5 + Django1.11 + uWSGI + Nginx 亲测可行!!按照 ...
- centos7.6+python3+apache2.4+django2.1.2网站部署总结
本次网站部署是使用了django2.1.2版本部署,由于centos自带的Python2.7不支持django2.0以上版本,故需要安全python3的环境.python3.apache的安装不做具体 ...
- python3.8.0 Django 开发后端接口api 部署到 Linux Centos7上
经历了两天的时候终于把本地使用python3 django开发的接口API部署到服务器上了,还是记录一下,以免之后忘记,哈哈 注意一点,就是,centos7是基于python2的,我这边默认的是pyt ...
随机推荐
- rt-thread平台 动态装载实现原理
原理分析: a.在链接脚本link.lds里定义了专门存放动态符号表的段RTMSymTab. b.内核对外提供可延时绑定的接口在rtm.h中通过RTM_EXPORT将一对对符号+地址构成的表存放到RT ...
- php_screw安装,使用
安装步骤:1. 下载源码:wget http://nchc.dl.sourceforge.net/project/php-screw/php-screw/1.5/php_screw-1.5.tar.g ...
- 屏蔽F12审查元素,禁止使用右键菜单
一.屏蔽F12审查元素 <script type="text/javascript"> document.onkeydown = function() { ) { al ...
- Java核心-多线程-并发控制器-CountDownLatch倒数闩
1.基本概念 CountDownLatch,中文名倒数闩,jdk并发工具包中一个并发控制器,它抽象了一个常见的多线程并发场景,开发人员使用它可以写出同时兼顾线程安全性与高效率的代码. 2.抽象模型 相 ...
- VMware与Centos系统安装
Linux介绍 1. Linux Linux和windows一样都是操作系统,Linux是开源的.免费的.自由传播的类Unix操作系统软件. 是一个基于POSIX和UNIX的多用户.多任务.支持多线程 ...
- 洛谷题解 CF777A 【Shell Game】
同步题解 题目翻译(可能有童鞋没读懂题面上的翻译) 给你三张牌0,1,2. 最初选一张,然后依次进行n次交换,交换规则为:中间一张和左边的一张,中间一张和右边一张,中间一张和左边一张...... 最后 ...
- SQL中的排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介
排名函数是Sql Server2005新增的功能,下面简单介绍一下他们各自的用法和区别. 在使用排名函数的时候需要注意以下三点: 1.排名函数必须有 OVER 子句. 2.排名函数必须有包含 ORDE ...
- [python,2019-02-15] 最短回文串
给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串.找到并返回可以用这种方式转换的最短回文串. 示例 1: 输入: "aacecaaa" 输出: "aaa ...
- spring boot 接口返回值去掉为null的字段
现在项目都是前后端分离的,返回的数据都是使用json,但有些接口的返回值存在 null或者"",这种字段不仅影响理解,还浪费带宽,需要统一做一下处理,不返回空字段,或者把NULL转 ...
- 【C语言基础】什么是数据类型?
基本数据类型 整数 整型 — — int ---- 4 字节 短整型 — — short int ---- 2 字节 长整型 — — long int ---- 8 字节 ...