centos7.6+python3+apache2.4+django2.1.2网站部署总结
本次网站部署是使用了django2.1.2版本部署,由于centos自带的Python2.7不支持django2.0以上版本,故需要安全python3的环境。python3、apache的安装不做具体介绍,网上有很多方法,不做具体介绍,重点针对本次部署过程中遇到的几个问题进行记录。
1、python mysql数据库连接模块;
由于python3不支持使用python2的MySQLdb连接数据库,需要使用pymysql的模块来连接数据库,如果直接import pymysql模块,django程序启动的时候会报错提示没有pymysql模块。这里需要在站点的__init__.py的文件里面加入下面的内容:
import pymysql
pymysql.install_as_MySQLdb()
把pymysql当成MySQLdb来用。
2.安装mod_wsgi模块方法;
使用yum install mod_wsgi去安装apache mod_wsgi模块, 这样做其实最终mod模块会调用本地默认的python2的所有库文件, 无论你后面如何配置django入口文件, apache都不会使用我们配置的python3, 导致apache无法调用python3而报错.。正确的方法是使用python3的pip install mod_wsgi来安装模块,注意pip也分python2和python3,具体看你安装的时候的配置。如果已经通过yum安装过了,可以通过yum remove mod_wsgi移除到即可。
另外,通过pip安装模块的会出现gcc编译错误的问题,网上的说法是缺少了一些必要的编译环境包导致的,网上找了下解决方案,安装了下面的包以后就好了
yum -y install gcc python36-devel bzip2-devel sqlite-devel openssl-devel readline-devel xz-devel xz-devel tk-devel gdbm-devel python-devel
安装完成后通过mod_wsgi-express install-module获取到模块的文件
3.apache配置
编辑vi /etc/httpd/conf/httpd.conf,在文件末尾加mod_wsgi-express install-module获取到的信息;
虚拟主机配置
WSGIPythonHome "/usr" #这里设置的是python的标准库所在位置,这个是mod_wsgi-express install-module显示的路径,实际写到python3.6的目录会有问题不知道什么原因,这样配置就没问题;
Listen 8000
<VirtualHost *:8000>
ServerName django.example.com
Alias /static/ /var/www/django/static/ #静态文件路径
<Directory /var/www/django/static> #静态文件路径
Require all granted
</Directory>
<Directory /var/www/django/mysite> #站点路径
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess mysite python-path=/usr/lib/python3.6/site-packages:/usr/local/lib/python3.6/site-packages:/usr/local/lib64/python3.6/site-packages #python3的第三方库路径
WSGIScriptAlias / /var/www/django/mysite/wsgi.py #django项目的wsgi.py文件路径
centos7.6+python3+apache2.4+django2.1.2网站部署总结的更多相关文章
- 学以致用六---Centos7.2+python3.6.2+django2.1.1 --搭建一个网站
目的,创建django project,开始django web之旅 一.创建一个project 在opt目录下创建一个project [root@gxc opt]# django-amdin. ...
- 学以致用七---Centos7.2+python3.6.2+django2.1.1 --搭建一个网站(补充)
补充:上一节出现的报错提示 可在settings.py 里,改成 ‘*’ ,这样所有的主机都可以访问了. 打开网页 注意红色框出来的 hello 是和 urls.py里的hello对应 urls.p ...
- Python 3之Django2部署(centos7+nginx+python3+django2.0)
前置工具,系统为centos7.5,为了方便管理,可以安装宝塔免费版本 首先, yum install -y wget && wget -O install.sh http://dow ...
- Centos7 安装python3
Centos7 安装python3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #安装sqlite-devel yum -y ...
- Django:Python3.6.2+Django2.0配置MySQL
持续学习Django中... Django默认使用的数据库是python自带的SQLlite3,但SQLlite并不适用于大型的项目,因此我将数据库换成了MySQL,下面介绍下Django如何配置数据 ...
- centos7安装 python3.6,且保留2.7版本
CENTOS7安装PYTHON3.6 1. 安装python3.6可能使用的依赖# yum install openssl-devel bzip2-devel expat-devel gdbm-dev ...
- CentOS7 安装Python3,开发SocketIO 客户端
CentOS7安装Python3,开发SocketIO 客户端 参考:https://blog.csdn.net/lovefengruoqing/article/details/79284573 步骤 ...
- CentOS7上Python3.5安装
CentOS7上Python3.5安装 1.下载 https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz 2.上传到服务器 3. yum in ...
- CentOS7+ anaconda3 + Python-3.6 + tensorflow-cpu-1.5安装和配置
CentOS7+ anaconda3 + Python-3.6 + tensorflow-cpu-1.5安装和配置 ========================================== ...
随机推荐
- Linux 安装 Nvidia 驱动出现的黑屏各种问题和解决方式
之前因为想OBS支持h264-nvenc这个功能然后就编译ffmpeg,然后使用Github上面的一个编译项目),项目编译完成之后重启电脑,然后就进入不了系统的登录页面了,选择进入Linux系统之后就 ...
- 浪潮服务器装linux系统无法识别硬盘
先说无法识别硬盘的原因是没有安装和系统相对应的raid驱动. 公司需要两台Linux的物理服务器来部署业务系统. 客户给了两台浪潮的服务器. 1.先把linux系统刻录到u盘 2要先看一下raid卡的 ...
- 1076 Wifi密码 (15 分)C语言
下面是微博上流传的一张照片:"各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题答案:A-1:B-2:C-3:D-4:请同学们自己作答 ...
- kettle高级教程-自动同步
KETTLE4个工作中有用的复杂实例--2.两表数据比较,比较后自动同步(部门.单位数据同步) 二.两表数据比较核对,核对后自动同步至目标数据表 目标:比较t_bm表的数据和t_bm_target表的 ...
- 剑指Offer-60~68题
60. \(n\) 个骰子的点数 题目描述: 扔 \(n\) 个骰子,向上面的数字之和为 \(S\).给定 \(n\),请列出所有可能的 \(S\) 值及其相应的概率. 示例: 输入:n = 1 输出 ...
- JavaScript面向对象 实例与原型
JavaScript 面向对象 和 C# 不太一样,js 的对象是继承自原型的如下: 首先创建一个 js 实例 new function function f () {} 这个函数 会继承 Func ...
- 从Main读取appsetting
using System; using System.Configuration; using Newtonsoft.Json.Linq; using System.Net.Http; using S ...
- 洛谷p1502窗口的星星 扫描线
题目链接:https://www.luogu.org/problem/P1502 扫描线的板子题,把每个点看成矩形,存下边(x,y,y+h-1,li)和(x+w-1,y,y+h-1),在按横坐标扫线段 ...
- FreeRTOS独立看门狗检测任务执行状态
为了保证FreeRTOS的所有用户任务都在正常的运行,我们通过独立看门狗的形式来检测,一旦发现有某个任务长时间没有执行,看门狗就会将系统复位. 运行条件: 创建5个用户任务Task1,Task2,Ta ...
- restframework 解析器、渲染器、url控制组件
一.解析器 解析器的作用就是服务端接收客户端传过来的数据,把数据解析成自己可以处理的数据.本质就是对请求体中的数据进行解析. 1.分类 from rest_framework.parsers impo ...