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安装和配置 ========================================== ...
随机推荐
- VC++取MD5算法记录下以后用得到(转)
这个是网上扒下来的 作者已经无法知道是谁了 MD5.h #ifndef MD5_H #define MD5_H #include <string> #include <fstream ...
- 洛谷$P3877\ [TJOI2010]$打扫房间 网络流
正解:网络流 解题报告: 传送门$QwQ$ 昂考虑把题目的约束条件详细化?就说每个格点能向四连通连边,问能否做到每个格点度数等于2? $umm$就先黑白染色建两排点呗,然后就$S$向左侧连流量为2的边 ...
- 1071 小赌怡情 (15分)C语言
常言道"小赌怡情".这是一个很简单的小游戏:首先由计算机给出第一个整数:然后玩家下注赌第二个整数将会比第一个数大还是小:玩家下注 t 个筹码后,计算机给出第二个数.若玩家猜对了,则 ...
- 曹工说Spring Boot源码(9)-- Spring解析xml文件,到底从中得到了什么(context命名空间上)
写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...
- 小白学Java:迭代器原来是这么回事
目录 小白学Java:迭代器原来是这么回事 迭代器概述 迭代器设计模式 Iterator定义的方法 迭代器:统一方式 Iterator的总结 小白学Java:迭代器原来是这么回事 前文传送门:Enum ...
- C++数值计算
1.序 (1)程序设计分两种: 1.结构化设计(面向过程)——分解算法为模块,将算法的步骤分解为模块. 2.面向对象程序设计——主要是“类”与“对象”. (2)进制的转换 1.二进制转十进制 整数部分 ...
- 类选择器练习:Google 案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 8.Java的特性和优势
简单性:可以说Java是C++语法的纯净版,没有头文件,没有指针运算,也不用分配内存. 面向对象:是一种程序设计技术,它将重点放在对象以及对象的接口上,模拟人的思维写程序,所以人去学习非常快.因此,J ...
- mysql本地连接远程连接不上
首先测试linux下的端口有没有开通 /etc/init.d/iptables status 查看3306端口没有开通 使用以下命令开通 /sbin/iptables -I INPUT -p tcp ...
- JSON解析值富文本
解析前端传递的JSON数据中可能如下 { "result": "<input value="Test" type="button&qu ...