在Linux系统上部署Apache+Python+Django+MySQL环境


Posted in Python onDecember 24, 2015

Linux+apache+mysql+python+mod_python+Django
说明:系统rhel 5.3,默认安装httpd、mysql,没有安装的,请下载安装RPM包,删除/etc/httpd/modules/mod_python.so,如果有的话。
一、安装python

wget http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz
 tar xfz mod_python-2.7.11.tgz 
cd python-2.7.11

安装

./config --prefix=/usr/local/python/
make && make install
ln -s /usr/local/python/bin/python2.7 /usr/bin/
 ln -s /usr/local/python/bin/python/usr/bin/

二、安装setuptools

wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg#md5=fe1f997bc722265116870bc7919059ea

sh setuptools-0.6c11-py2.7.egg

ldconfig #让它生效

三、安装 mysqldb模块

wget http://cdnetworks-kr-2.dl.sourceforge.net/project/mysql-python/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz 
tar zxvf MySQL-python-1.2.3.tar.gz
cd MySQL-python
python2.7 setup.py build
# #ln -s /usr/local/python/bin/python2.7 /usr/bin/(注意建立连接)
python2.7 setup.py install ##安装

测试:

[root@localhost conf]# python2.7
Python 2.7.1 (r271:86832, Mar 21 2011, 10:13:38) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>>

没有提示说明是正确的。

四、安装mod_python

wget http://archive.apache.org/dist/httpd/modpython/mod_python-3.3.0b.tgz

 安装前安装apr-devel-1.2.7-11.el5_5.2.i386.rpm、apr-util-devel-1.2.7-7.SEL5_3.2.i386.rpm、httpd-devel-2.4.el5.centos.i386.rpm,因为要动态加入python模块,要不然找不到apxs

tar xvf mod_python-3.3.0b.tgz
cd mod_python-3.3.0b
./configure --with-apxs=/usr/sbin/apxs --with-python=/usr/local/python/bin/python ###(apache支持python)
make && make install

注意
  LoadModule python_module modules/mod_python.so这个不用添加,因为在/etc/httpd/conf.d/python.conf 已经配置好
7ervice httpd restart (重启下apache)
测试:

[root@localhost conf]# python
Python 2.7.1 (r271:86832, Mar 21 2011, 10:13:38) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mod_python
>>>

五、安装Django

wget http://www.djangoproject.com/download/1.2.5/tarball/
tar xfz Django-1.2.5.tar.gz
cd Django-1.2.5
python2.7 setup.py install

测试:

[root@localhost conf]# python
Python 2.7.1 (r271:86832, Mar 21 2011, 10:13:38) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>>

六、测试全部

mkdr /www
cd /www
./usr/local/python/bin/django-admin.py startproject mytest
mytest
python manage.py runserver 0.0.0.0:8000

效果如下:

在Linux系统上部署Apache+Python+Django+MySQL环境

PS:关于mod_python
mod_python是apache组织的一个项目,通过它,可以开发psp或cgi,mod_python功能强大,速度快,是非常优秀的web开发工具。
Mod_python起源于一个被称为Httpdapy(1997)的项目。很长时间以来, Httpdapy并没有被称作mod_python,因为Httpdapy不是专门用于Apache的。 Httpdapy被设计成跨平台的,实际上最初是为Netscape server写的(那个时候被称为Nsapy)(1997)
这个Httpdapy的README文件的摘要,很好的阐述了在HTTP server中嵌入Python所带来的挑战和解决方案。
Apache分阶段的处理请求(比方说:读取请求,解析header, 检查存取路径,等等)。这些阶段能被称为"处理器"(handler)的函数实现。传统上, "处理器"是由C语言编写,并编译成Apache的模块。Mod_python提供了一个通过Python写的Apache处理器的来扩展Apache功能的方法。关于Apache请求处理过程的详尽描述,请参阅 Apache API Notes, 也可以参阅 Mod_python - Integrating Python with Apache。
为了轻松地从CGI移植,一个标准的mod_python处理器提供了模拟的CGI环境,允许用户在不对代码做任何修改的情况下,使遗留的脚本运行在mod_python下(大多数情况)。
mod_python的一个最主要优点就是在性能上超越传统CGI。下面是一个非常粗略的测试。该测试是在一台运行Red Hat Linux 7.3的奔腾1.2G的机器上完成的。Ab 用来对4种脚本进行测试,所有的都是从标准cgi模块输入(因为这是一个典型Python cgi脚本开始的方式), 然后输出一个简单的单词"Hello!"。这个结果是基于10000次并发为1的请求。
Standard CGI: 23 requests/s
Mod_python cgihandler: 385 requests/s
Mod_python publisher: 476 requests/s
Mod_python handler: 1203 requests/s

Python 相关文章推荐
python笔记(2)
Oct 24 Python
python实现获取序列中最小的几个元素
Sep 25 Python
在VS Code上搭建Python开发环境的方法
Apr 06 Python
Python 判断文件或目录是否存在的实例代码
Jul 19 Python
Python生成器generator用法示例
Aug 10 Python
python数据结构学习之实现线性表的顺序
Sep 28 Python
python使用epoll实现服务端的方法
Oct 16 Python
对python打乱数据集中X,y标签对的方法详解
Dec 14 Python
基于Python在MacOS上安装robotframework-ride
Dec 28 Python
Numpy一维线性插值函数的用法
Apr 22 Python
Python实现异步IO的示例
Nov 05 Python
Python 利用argparse模块实现脚本命令行参数解析
Dec 28 Python
在Mac OS上使用mod_wsgi连接Python与Apache服务器
Dec 24 #Python
在Mac OS上搭建Python的开发环境
Dec 24 #Python
详解Python字符串对象的实现
Dec 24 #Python
浅谈Python单向链表的实现
Dec 24 #Python
Python使用面向对象方式创建线程实现12306售票系统
Dec 24 #Python
安装ElasticSearch搜索工具并配置Python驱动的方法
Dec 22 #Python
Python生成随机验证码的两种方法
Dec 22 #Python
You might like
ThinkPHP 3.2 版本升级了哪些内容
2015/03/05 PHP
PHP防止刷新重复提交页面的示例代码
2015/11/11 PHP
php简单复制文件的方法
2016/05/09 PHP
PHP的openssl加密扩展使用小结(推荐)
2016/07/18 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
2010/03/08 Javascript
JS实现图片预加载无需等待
2012/12/21 Javascript
基于js disabled="false"不起作用的解决办法
2013/06/26 Javascript
对new functionName()定义一个函数的理解
2014/05/22 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
JavaScript数组的栈方法与队列方法详解
2016/05/26 Javascript
纯js和css完成贪吃蛇小游戏demo
2016/09/01 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
js实现input密码框显示/隐藏功能
2020/09/10 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
2019/05/10 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
Vue+Element自定义纵向表格表头教程
2020/10/26 Javascript
[05:31]DOTA2英雄梦之声_第04期_光之守卫
2014/06/23 DOTA
Python基于matplotlib实现绘制三维图形功能示例
2018/01/18 Python
Python管理Windows服务小脚本
2018/03/12 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
对Pytorch中Tensor的各种池化操作解析
2020/01/03 Python
python下载卫星云图合成gif的方法示例
2020/02/18 Python
解决Python spyder显示不全df列和行的问题
2020/04/20 Python
python中关于数据类型的学习笔记
2020/07/19 Python
python3代码中实现加法重载的实例
2020/12/03 Python
matplotlib之属性组合包(cycler)的使用
2021/02/24 Python
高分子材料个人求职信范文
2013/09/25 职场文书
医药个人求职信范文
2014/01/29 职场文书
美容院营销方案
2014/03/05 职场文书
房屋授权无偿使用证明
2014/11/29 职场文书
六一儿童节致辞
2015/07/31 职场文书
2019年12月24日平安夜祝福语集锦
2019/12/24 职场文书
用Python创建简易网站图文教程
2021/06/11 Python
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers