python3.6 django部署_Apache2+Django+Python3.6部署-

本文指导安装Apache2, mod_wsgi 4.6.5, Django2.1,以及安装过程中可能出现的问题及解决方法。

1,安装Apache2.4

我本机是Ubuntu16.04的系统,如果时CenterOS,使用yum安装就好了.

sudo apt install apache2 这个安装一般没有什么问题

2,源码编译安装Python3.6

源码地址:https://www.python.org/ftp/python/3.7.1/Python-3.6.9.tgz

编译安装相关命令如下:

tar -zxf Python-3.6.9.tgz

cd Python-3.6.9

./configure --prefix=/usr/local/python36 --enabled-shared --enable-loadable-sqlite-extensions

配置选项 --prefix指定安装目录,跟其他Python环境独立开来,也方便不用的时候删除;

--enable-shared 启用共享库,mod_wsgi需要Python开发库支持;

--enable-loadable-sqlite-extensions django默认使用sqlite数据库

make

sudo make install

3, 编译安装mod_wsgi4.6.5

下载地址: https://github.com/GrahamDumpleton/mod_wsgi/releases

编译安装过程,如有不详细的地方,请参考:https://modwsgi.readthedocs.io/en/develop/user-guides/installation-issues.html#

tar xvfz mod_wsgi-X.Y.tar.gz

./configure --with-apxs=/usr/bin/apxs \

--with-python=/usr/local/python36/bin/python3.6

配置选项--with-apxs 如果没有执行sudo apt install apache2-dev

--with-python 指定上面安装的Python路径

make

make install

安装完成可以看下:

4, Apache配置支持wsgi

sudo vim /etc/apache2/site-available/wsgi.conf

WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py

#WSGIPythonHome /path/to/venv

#WSGIPythonPath /path/to/mysite.com

# 使用 mod_wsgi 后台模式,"Daemon mode" 是运行 mod_wsgi 的推荐模式

WSGIDaemonProcess example.com python-home=/path/to/venv python-path=/path/to/mysite.com

WSGIProcessGroup example.com

Require all granted

# 提供文件服务

Alias /robots.txt /path/to/mysite.com/static/robots.txt

Alias /favicon.ico /path/to/mysite.com/static/favicon.ico

Alias /media/ /path/to/mysite.com/media/

Alias /static/ /path/to/mysite.com/static/

Require all granted

Require all granted

注意事项:

如果多个 Django 站点运行在同一 mod_wsgi 进程,它们会共用最先启动的站点配置。能通过以下修改改变行为:

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "{{ project_name }}.settings")

wsgi.py 中也这么改:

os.environ["DJANGO_SETTINGS_MODULE"] = "{{ project_name }}.settings"

上传文件名称包含非 ASCII 字符的文件时,若抛出 UnicodeEncodeError,确认 Apache 是否被正确配置,能接受非 ASCII 文件名:

export LANG='en_US.UTF-8'

export LC_ALL='en_US.UTF-8'

常见的配置文件路径是 /etc/apache2/envvars

5, 启用网站

启用配置/弃用

sudo a2ensite/a2dissite path/to/wsgi.conf

检查你的配置文件

apache2ctl configtest如果有问题,可以根据提示解决

sudo service apache2 start/restart

6, 最后

curl http://localhost/api 检查你的网站,也可以在浏览器打开相应的地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551684.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python中文文本分析_python使用snownlp进行中文文本处理以及分词和情感分析 - pytorch中文网...

SnowNLP: 一个简单的中文文本处理库 SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且…

php异步方案,php 伪异步执行实现方法

需求描述:客户端访问php文件,php需要做某个耗时的操作。例如:访问远程接口数据 而客户端不需耗时操作的结果只期望快速得到输出.php本身是不支持异步操作的,可以用子进程的方式模拟异步操作执行,但实现起来比较复杂而且…

python原理与架构_Python:爬虫原理和网页构造

入门网络数据爬取,也就是Python爬虫现实中我们使用浏览器访问网页时,网络是怎么运转的,做了什么呢?首先,必须了解网络连接基本过程原理,然后,再进入爬虫原理了解就好理解的多了。1、网络连接原理…

flutter打包的app有多大_前端大势所趋---Flutter 这篇文章会让你行动起来

Flutter和原生APP的性能对比前言自从今年google IO大会推出flutter跨平台开发框架以来,flutter在各个技术论坛里被吵得如日中天。flutter团队直言flutter可以帮助开发者轻松实现恒定60fps的性能体验。我们知道flutter跨平台的原理是采用dart语言预编译的方式直接编译…

用java创建窗口程序,创建窗口的应用程序

创建窗口的应用程序通过前面的基础知识的学习,已经对ctypes库的基本功能学会了使用,为了加强这种知识训练,以及运用刚学习的知识的快乐,我们来创建一个稍稍复杂一点的应用程序。这个应用程序是所有后面应用程序的基础,…

python前端代码_python前端HTML

超文本标记语言(Hypertext Markup Language, HTML)是一种用于创建网页的标记语言,不是一种编程语言,没有逻辑的HTML基础文档结构#声明为HTML5文档#是文档的开始标记和结束的标记,lang设置浏览器语言#定义了网页标题,在浏览器标题栏显示,charset声明编码,否则会出现乱码网页标题…

python爬取b站排行榜_实时爬取B站排行榜并保存为表格——每周一个爬虫小教程系列...

从这周开始,每周来一个爬虫小教程,希望对你们有所帮助,这次的目标是B站排行榜至于爬取什么内容,目前感觉就把序号,名称以及评分爬取下来吧(因为我是边写教程边写代码的) 这次需要用到的知识&…

java7优化,让Eclipse在10秒内启动的7个优化提速技巧

大约一个月前,我发表了一篇博客,其中介绍了对Eclipse的爱与恨。 有些人问我如何给Eclipse提速,这篇文章就来讨论这个问题。顺带提一下,这篇文章不是比较IDE,所以不要说你讨厌某个IDE而选择另外一个。这篇文章只是关注如…

python四位的千位百位十位_输入一个四位正整数,使用字符串切片方法,计算出这个数的个位 十位 百位 千位?...

展开全部#includeint main(){ char s[5],s1[9]"千百十62616964757a686964616fe59b9ee7ad9431333433653938个";int i;printf("输入一个四位数:");scanf("%s",s);for(i3;i>-1;i--)printf("%c%c位数:%c\n",s1[ii],s1[ii1],…

css 垂直居中_html中div使用CSS实现水平/垂直居中的多种方式

CSS中的居中,在工作中,会经常遇到。它可以分为水平居中和垂直居中,以下是几种实现居中的方式。以下例子中,涉及到的CSS属性值。.parent-frame { width: 200px; height: 200px; border: 1px solid red; } .child-frame { width…

python同时输出两个数组_python中实现将多个print输出合成一个数组

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

matlab如何实现降维,matlab怎么把矩阵降维

1. matlab如何对一个矩阵 求导而且不降维gradient计算数值梯度。函数F(x,y,。)在(x0,y0,。)的梯度就是函数在该点的导数,通常在数学上记作▽F(x0,y0,。)或gradF(x0,y0,。)。梯度是一个向量, 它的方向是函数在一点变化率…

python线程等待_python3 中 Event.wait 多线程等待

原博文 2018-04-26 20:45 − event.wait(time) 等待 time 时间后,执行下一步。或者在调用 event.set() 后立即执行下一步。 event.clear() 清除信号 event.set() 设置信号 event.isSet() 判断是否设置信号 要求: 定义一个按钮,等待 3... 相关推荐 2019-1…

php表白情话,朋友圈唯美表白短句情话 适合发朋友圈的情话

1、一个人经历了所有的苦难,也不要指望能和谁在一起;我曾经真诚的尝试过,但是结果我不想说。2、只要你愿意,只要我有,整个世界都是你的,而你只能是我的。3、只要你愿意,当你失落失意的时候&…

高德地图看各省分界线_深度解读|高德宣布高精地图“百元时代”背后的商业逻辑是什么...

车展前夕,高德的一次媒体沟通会,或许将为国内自动驾驶的发展带来深远影响。4月11日,高德地图在北京举行“高精宣言”媒体沟通会,表示将对高精地图服务进行升级,并以成本价格提供标准化高精地图,与合作伙伴分…

js获取ip地址_(原创)Node.JS实战31:大名鼎鼎的Express!

Express (http://expressjs.com)是Node.JS中一个简洁、灵活、强大的Web应用框架, 它提供了一系列强大特性,可以帮助我们快速创建各种Web 应用,也可用来编写各种的Web工具。Express博大精深,本文在此只做简单…

pythonpath manager_python 路径操作工具 pathlib,比 os 模块好用太多

在 python 当中,如果你想控制路径,基本上绕不开 os.path。我希望看完这篇文章以后,熟练使用 python 的你能立刻开始使用 pathlib 模块,一刻也不要耽误。pathlib 相对于 os.path 有以下优势:pathlib 导入更加清晰&#…

mysql跳过安全_Navicat连接MySQL数据库

前言:在使用Gin架构搭建博客的时候,需要设计数据库,以及连接数据库.命令端口操控效率实在是太低且不好管理,这个时候使用Navicat就能轻松高效的使用数据库了.步骤:下载安装Navicat,Mysql配置Mysql及其账号密码 Navicat连接Mysql1.下载安装Navicat,MysqlNavicat官网下载地址:…

python深入和扩展_加速方案 — Python扩展模块

原标题:加速方案 — Python扩展模块ctypes(一)— 初识这章我们介绍Python的扩展名之ctypes,教大家认识ctypes。喜欢Python的读者们可以加Python学习交流群:579817333 让我们共同进步!很多初学Python的新手,总是嘴边挂着…

java 切面_实用|AOP切面编程手段大汇总

点击上方"欧学长的架构成长之路" 关注我前言首先说一下什么是AOP?AOP就是面向切面编程,它是一个思想,通过切面,我们可以将那些反复出现的代码抽取出来,放在一个地方统一处理,提高代码的复用性。A…