本次网站部署是使用了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网站部署总结的更多相关文章

  1. 学以致用六---Centos7.2+python3.6.2+django2.1.1 --搭建一个网站

    目的,创建django project,开始django web之旅 一.创建一个project    在opt目录下创建一个project [root@gxc opt]# django-amdin. ...

  2. 学以致用七---Centos7.2+python3.6.2+django2.1.1 --搭建一个网站(补充)

    补充:上一节出现的报错提示 可在settings.py 里,改成 ‘*’  ,这样所有的主机都可以访问了. 打开网页 注意红色框出来的 hello 是和 urls.py里的hello对应 urls.p ...

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

    前置工具,系统为centos7.5,为了方便管理,可以安装宝塔免费版本 首先, yum install -y wget && wget -O install.sh http://dow ...

  4. 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 ...

  5. Django:Python3.6.2+Django2.0配置MySQL

    持续学习Django中... Django默认使用的数据库是python自带的SQLlite3,但SQLlite并不适用于大型的项目,因此我将数据库换成了MySQL,下面介绍下Django如何配置数据 ...

  6. centos7安装 python3.6,且保留2.7版本

    CENTOS7安装PYTHON3.6 1. 安装python3.6可能使用的依赖# yum install openssl-devel bzip2-devel expat-devel gdbm-dev ...

  7. CentOS7 安装Python3,开发SocketIO 客户端

    CentOS7安装Python3,开发SocketIO 客户端 参考:https://blog.csdn.net/lovefengruoqing/article/details/79284573 步骤 ...

  8. 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 ...

  9. CentOS7+ anaconda3 + Python-3.6 + tensorflow-cpu-1.5安装和配置

    CentOS7+ anaconda3 + Python-3.6 + tensorflow-cpu-1.5安装和配置 ========================================== ...

随机推荐

  1. java中发送http请求的方法

    package org.jeecgframework.test.demo; import java.io.BufferedReader; import java.io.FileOutputStream ...

  2. MementoPattern(备忘录模式)-----Java/.Net

    备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象.备忘录模式属于行为型模式.

  3. Go网络编程

    概述 网络协议 从应用的角度出发,协议可理解为"规则",是数据传输和数据的解释的规则.假设,A.B双方欲传输文件.规定: 第一次,传输文件名,接收方接收到文件名,应答OK给传输方: ...

  4. ElementUi 两个表格反选

    ElementUi 两个表格反选 1.先看看实现的图 表格内容显示 <el-row :gutter="20"> <el-col :span="16&qu ...

  5. docker+mysql 更改配置后重启不了的解决方案

    docker+mysql 更改配置后重启不了的解决方案 前提:在最近的项目中,决定将项目改造成数据库读写分离的架构,于是擅自更改生产环境的数据库的配置文件my.cnf,由于我是用docker进行部署的 ...

  6. Flink系列之Time和WaterMark

    当数据进入Flink的时候,数据需要带入相应的时间,根据相应的时间进行处理. 让咱们想象一个场景,有一个队列,分别带着指定的时间,那么处理的时候,需要根据相应的时间进行处理,比如:统计最近五分钟的访问 ...

  7. 2019牛客暑期多校第六场题解ABDJ

    A.Garbage Classification 传送门 题意:给你两个串,第一个串s由小写字母组成,第二个串t由dwh组成,长度为26,分别表示字母a到z代表的字符.现在要你判断: 如果字符串中‘h ...

  8. Scanner使用方法

    import java.util.Scanner; //导入包 public void main (String args[]){ Scanner a=new Scanner(System.in); ...

  9. rabbitmq系列(三)消息幂等性处理

    一.springboot整合rabbitmq 我们需要新建两个工程,一个作为生产者,另一个作为消费者.在pom.xml中添加amqp依赖: <dependency> <groupId ...

  10. dp - 求连续区间异或的最大值

    For an array b of length m we define the function f as f(b)={b[1]if m=1f(b[1]⊕b[2],b[2]⊕b[3],…,b[m−1 ...