Form:Centos6.5 django项目apache部署,and it works!
环境说明
操作系统:CentOS 6.7 64-bit
安装基础环境
yum -y install gcc make wget
安装Python
安装Python
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.12.tgz
cd Python-2.7.12/
./configure --prefix=/usr/local/python CFLAGS=-fPIC
make && make install
cd ../
备注:不安装zlib-devel的话,在安装setuptools时会报错。不安装openssl-devel的话,在安装django时会报错。不加CFLAGS=-fPIC参数,安装mod_wsgi时会报错。
将Python加入环境变量
在/etc/profile文件末尾添加以下内容:
export PATH=/usr/local/python/bin:$PATH
然后使配置文件生效:
. /etc/profile
安装setuptools
wget https://pypi.python.org/packages/6b/dd/a7de8caeeffab76bacf56972b3f090c12e0ae6932245abbce706690a6436/setuptools-28.3.0.tar.gz
tar xzf setuptools-28.3.0.tar.gz
cd setuptools-28.3.0/
python setup.py install
cd ../
安装pip
wget https://pypi.python.org/packages/e7/a8/7556133689add8d1a54c0b14aeff0acb03c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz
tar xzf pip-8.1.2.tar.gz
cd pip-8.1.2/
python setup.py install
cd ../
安装Apache
安装apr
wget http://apache.fayea.com/apr/apr-1.5.2.tar.bz2
tar xjf apr-1.5.2.tar.bz2
cd apr-1.5.2/
./configure
make && make install
cd ../
安装apr-util
wget http://apache.fayea.com/apr/apr-util-1.5.4.tar.bz2
tar xjf apr-util-1.5.4.tar.bz2
cd apr-util-1.5.4/
./configure --with-apr=/usr/local/apr/
make && make install
cd ../
安装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
cd ../
备注:不安装gcc-c++的话会报错。
安装httpd
yum -y install perl
wget http://apache.fayea.com/httpd/httpd-2.4.25.tar.bz2
tar xjf httpd-2.4.25.tar.bz2
cd httpd-2.4.25.tar.bz2/
./configure --prefix=/usr/local/httpd --with-pcre=/usr/local/pcre
make && make install
cd ../
备注:不安装perl的话,安装mod_wsgi时会报错。
将Apache加入环境变量
在/etc/profile文件末尾添加以下内容:
export PATH=/usr/local/httpd/bin:$PATH
然后使配置文件生效:
. /etc/profile
安装mod_wsgi
wget https://pypi.python.org/packages/28/a7/de0dd1f4fae5b2ace921042071ae8563ce47dac475b332e288bc1d773e8d/mod_wsgi-4.5.7.tar.gz
tar xzf mod_wsgi-4.5.7.tar.gz
cd mod_wsgi-4.5.7/
./configure --with-apxs=/usr/local/httpd/bin/apxs --with-python=/usr/local/python/bin/python
make && make install
chmod 755 /usr/local/httpd/modules/mod_wsgi.so
cd ../
注意:安装是如果报错error while loading shared libraries:libpython2.7.so.1.0:,需要重新编译安装python并添加--enable-shared参数,安装完之后python可能无法使用,需要在/etc/ld.so.conf中加入新行/usr/local/lib,保存后,运行 /sbin/ldconfig,运行/sbin/ldconfig –v查看
安装Django
wget https://pypi.python.org/packages/8a/09/46f790104abca7eb93786139d3adde9366b1afd59a77b583a1f310dc8cbd/Django-1.10.2-py2.py3-none-any.whl
pip install Django-1.10.2-py2.py3-none-any.whl
安装MySQLdb(选做)
yum -y install mysql-devel
pip install MySQL-python
备注:因为我的Django程序用的是MySQL数据库,所以我需要安装这个包。
配置Django
将你开发好的Django程序上传到服务器,我这里上传到/wwwroot/目录,下面这个树形图就是我的Django程序的结构:
这里面有个文件特别关键,能否正常运行就看它了,它就是wsgi.py,下面是我的文件的内容,供读者参考:
import sys
sys.path.append('/wwwroot/OMMS')
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "OMMS.settings")
application = get_wsgi_application()
注意:前两句需要自己添加,如果没有这两句,你的程序就不能正常运行了,后面的是Django自动生成的。
配置Apache
启用虚拟主机配置文件
编辑/usr/local/httpd/conf/httpd.conf文件,
在一堆以LoadModule开头的段落下添加一行:
LoadModule wsgi_module modules/mod_wsgi.so
然后在末尾添加以下内容:
<VirtualHost *:80>
DocumentRoot "/wwwroot/OMMS/OMMS"
WSGIScriptAlias / "/wwwroot/OMMS/OMMS/wsgi.py"
<Directory "/wwwroot/OMMS/OMMS">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
注意:读者请根据自己的程序修改其中的路径。
启动Web服务并测试
通过以下命令启动Apache服务:
apachectl start
mark
运行了命令yum -y install gcc make 结果出来一些错误信息的提示!yum错误:Cannot retrieve repository metadata (repomd.xml) for rpmforge 原来是我的yum源地址该更新了!
解决方法如下:
代码如下:
cd /etc/yum.repos.d
vi rpmforge.repo
===>
baseurl=http://centos.ustc.edu.cn/centos/5/os/i386/
然后
yum clean all