Python3+Apache+Django+CentOS
使用django开发的项目上到正式环境的环境搭建,系统软件版本:
CentOS6.
setuptools-28.3..tar.gz
pip-8.1..tar.gz
Python-2.7..tgz
pcre-8.39.tar.bz2
mod_wsgi-4.5..tar.gz
httpd-2.4..tar.gz
apr-util-1.6..tar.gz
apr-1.6..tar.gz
(本来想放上阿里云的pypi镜像地址的,但是。。。。那个目录我实在是看不懂,有懂的同学麻烦告诉我一下吧)
为啥不用yum?
好问题,因为正式环境里的系统一般是最小化安装的,如果使用yum进行默认安装,各软件之间的调用的文件路径可能会不一样,使用源码安装可以指定组件的路径,提高部署成功的机率
1、安装python2.7
为啥不用自带的2.6,亲们请看这里,https://segmentfault.com/q/1010000007956173?_ea=1504132
yum -y install zlib-devel openssl-devel
wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz
tar xzf Python-2.7..tgz
cd Python-2.7./
./configure --prefix=/usr/local/python CFLAGS=-fPIC
make && make install
*不安装zlib-devel的话,在安装setuptools时会报错。不安装openssl-devel的话,在安装django时会报错。不加CFLAGS=-fPIC参数,安装mod_wsgi时会报错。
将python2.7加入环境变量
在/etc/profile文件末尾添加以下内容:
export PATH=/usr/local/python/bin:$PATH
然后使配置文件生效:
. /etc/profile
2、 安装setuptools
wget https://pypi.python.org/packages/6b/dd/a7de8caeeffab76bacf56972b3f090c12e0ae6932245abbce706690a6436/setuptools-28.3.0.tar.gz
tar xzf setuptools-28.3..tar.gz
cd setuptools-28.3./
python setup.py install
3、 安装pip
wget https://pypi.python.org/packages/e7/a8/7556133689add8d1a54c0b14aeff0acb03c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz
tar xzf pip-8.1..tar.gz
cd pip-8.1./
python setup.py install
4、安装apr
wget http://apache.fayea.com/apr/apr-1.5.2.tar.bz2
tar xjf apr-1.6.3.tar.bz2
cd apr-1.6.3/
./configure --prefix=/usr/local/apr make && make install
5、 安装apr-util
wget http://apache.fayea.com/apr/apr-util-1.5.4.tar.bz2
tar xjf apr-util-1.6.1.tar.bz2
cd apr-util-1.6.1/
./configure --with-apr=/usr/local/apr/
make && make install
cd ../
6、 安装pcre
复制代码
yum -y install gcc-c++
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.bz2
tar xjf pcre-8.39.tar.bz2
cd pcre-8.39/
./configure --prefix=/usr/local/pcre
make && make install
7、 安装httpd(apache)
# yum -y install perl
wget http://apache.fayea.com/httpd/httpd-2.4.23.tar.bz2
tar xjf httpd-2.4..tar.bz2
cd httpd-2.4./
./configure --prefix=/usr/local/httpd --with-pcre=/usr/local/pcre
make && make install
在/etc/profile文件末尾添加以下内容:
export PATH=/usr/local/httpd/bin:$PATH
然后使配置文件生效:
. /etc/profile
8、 安装mod_wsgi
wget https://pypi.python.org/packages/28/a7/de0dd1f4fae5b2ace921042071ae8563ce47dac475b332e288bc1d773e8d/mod_wsgi-4.5.7.tar.gz
tar xzf mod_wsgi-4.5..tar.gz
cd mod_wsgi-4.5./
./configure --with-apxs=/usr/local/httpd/bin/apxs --with-python=/usr/local/python/bin/python
make && make install
chmod /usr/local/httpd/modules/mod_wsgi.so(安装好之后应该是自动就将该文件改成755 的)
9、 安装Django
pip install django
10、安装mysql的开发包
yum -y install mysql-devel
11、配置Django,重点来了:新建一个目录或者使用httpd的默认目录,我这里的默认目录为/usr/local/httpd/htdocs/,如果不知道默认目录在哪,也可以查看配置文件里DocumentRoot那一行,看那里写的是什么
将你的项目整个放上来,放上来的结构应该是这样的
12、在你的项目里同名文件下应该会有一个wsgi.py的文件,在里添加
import sys
sys.path.append('/usr/local/httpd/htdocs/mysite0')
13、配置httpd(Apache)
配置Apache
启用虚拟主机配置文件
编辑/usr/local/httpd/conf/httpd.conf文件,找到下面这句并取消注释:
Include conf/extra/httpd-vhosts.conf
在一堆以LoadModule开头的段落下添加一行:
LoadModule wsgi_module modules/mod_wsgi.so
修改虚拟主机配置文件
编辑/usr/local/httpd/conf/extra/httpd-vhosts.conf文件,将原来的配置全部注释掉(已经注释过的就不用再注释了),然后在末尾添加以下内容:
复制代码
<VirtualHost *:80>
DocumentRoot "/usr/local/httpd/htdocs/mysite0/mysite0" Alias /static/ /usr/local/httpd/htdocs/mysite0/static/
<Directory "/usr/local/httpd/htdocs/mysite0/static">
Options FollowSymlinks
AllowOverride none
Require all granted
</Directory>
WSGIScriptAlias / "/usr/local/httpd/htdocs/mysite0/mysite0/wsgi.py" <Directory "/usr/local/httpd/htdocs/mysite0/mysite0">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
14、 启动你的django
apachectl start
碰到的问题:
页面报400:
将项目里settings.py里允许主机更改为ALLOWED_HOSTS = ["*"]
页面找不到静态文件(css,js....)
将先要看apache里的vhost.conf站点配置文件里static别名,注意斜杠,贝勒因为这个斜杠的问题也是尴尬了很久哇
其次看你的settings文件里配置是不是下面这个样子的
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
因为开发环境里的使用的python3.6,生产环境使用提2.7,所以在部署的时候也需要安装pymysql,并且在项目的同名目录里的__init__.py里添加如下代码:
import pymysql
pymysql.install_as_MySQLdb()
本文大部分是参阅了昨、夜星辰的文件,原文地址http://www.cnblogs.com/yestreenstars/p/5949037.html
Python3+Apache+Django+CentOS的更多相关文章
- window7配置python3.3 + django + apache24 + mod_wsgi
window7安装配置python3.3 + django + apache24 + mod_wsgi 1.下载版本的时候要对应 2.apache24 别放系统盘, 不然权限很麻烦 3.django ...
- Centos7 + Python3.6 + Django + virtualenv + gunicorn + supervisor 环境配置详解
跟着网上的教程走发现行不通阿!好多都是写个大概,而且每人的环境都是有些许差异的,比如说权限问题阿,等等都会造成安装的失败 说明:本教程在你已经拥有Centos7系统,已经安装好nginx服务器,已经安 ...
- windows下,python3安装django和mysql驱动
1.安装python3和django (1)Python 下载地址:https://www.python.org/downloads/ (2)Django 下载地址:https://www.djang ...
- Python3:Django根据models生成数据库表时报 __init__() missing 1 required positional argument: 'on_delete'
Python3:Django根据models生成数据库表时报 __init__() missing 1 required positional argument: 'on_delete' 一.分析 在 ...
- Python3:Django连接Mysql数据库时出错,'Did you install mysqlclient or MySQL-python?'
Python3:Django连接Mysql数据库时出错,'Did you install mysqlclient or MySQL-python?' 一.原因 因为Python版本问题,MySQLdb ...
- CentOS7.4 部署 Django + Python3 + Apache + Mod_wsgi
安装环境 Remote: CentOS 7.4 x64 (django.example.com) Python: Python3.6.5 Apache: Apache 2.4.6 Mod_wsgi: ...
- centos下运行python3.6+Django+mysql项目
文件准备: Django项目 myslq安装 关闭防火墙 用xshell拖拽到centos上 安装文件: 安装python3.6(3.7有问题) sh install_py36.sh 关闭防火墙 sh ...
- python web篇 Django centos 命令版
新建立一个虚拟环境,与其他python 包隔开互不影响 首先新建立一个目录,命名为xx, python3 下操作 $:python -m venv ll_env 注意在有多个Python环境下,使用 ...
- Windows Apache Django 配置
所有刚刚学习Django 都会在这里配置的时候遇到问题.这里我简单秒速一个傻瓜步骤,使得大家更容易上手. 一.环境准备 1.windows 32系统 至少是 XPSP3 版本,注意:apache2.X ...
随机推荐
- ROS6.16开始支持802.11ac了,扫盲下
Wi-Fi的5G频段与802.11AC背后那些事儿本文章来自某路由论坛,作者为张导,本人转载,原地址http://bbs.hiwifi.com/thread-9086-1-1.html 曾几何时,大家 ...
- laravel 做图片的缩略图 踩坑
系统需求 PHP >= 5.3 Fileinfo Extension GD Library (>=2.0) … or … Imagick PHP extension (>=6.5.7 ...
- css移除a标签及map、area(图片热区映射)点击过后的边框
默认a标签及其包含的html元素和map中的area(图片热区映射)在点击过后留有默认的蓝色边框,如下图 可以看到,蓝色的边框破坏了页面的整体美感,很多时候我们都是不需要的.通过设置相应的css可以去 ...
- C/C++程序内存情况
一个由C/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. 2.堆区(heap) — 一 ...
- python以下划线开头的变量名含义
Python核心风格:避免用下划线作为变量名的开始. 因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始.一般来讲,变量名_xxx被看作是“私有的 ...
- 第六章:Reminders实验:第二部分[Learn Android Studio 汉化教程]
Learn Android Studio 汉化教程 Reminders Lab: Part 2 This chapter covers capturing user input through the ...
- 广义线性模型(Generalized Linear Models)
在线性回归问题中,我们假设,而在分类问题中,我们假设,它们都是广义线性模型的例子,而广义线性模型就是把自变量的线性预测函数当作因变量的估计值.很多模型都是基于广义线性模型的,例如,传统的线性回归模型, ...
- linux rz 乱码
Linux shell rz和sz是终端下常用的文件传输命令,rz和sz通过shell被调用,其中rz用于从启用终端的系统上传文件到目标系统(终端登录的目标系统), 这里不过多介绍这些命令,只是记录一 ...
- mysql导出数据库数据及表结构
1,导出远程数据库数据到本地 mysql -A wj_sms -h192.168.1.105 -uroot -p4321 -ss -e "set NAMES 'utf8';SELECT * ...
- ffmpeg源码分析三:transcode_init函数 (转3)
原帖地址:http://blog.csdn.net/austinblog/article/details/25061945 transcode_init()函数是在转换前做准备工作的.下面看看其源代码 ...