在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中if __name__ == "__main__"详细解释
Oct 21 Python
python查询mysql中文乱码问题
Nov 09 Python
Python的Django中将文件上传至七牛云存储的代码分享
Jun 03 Python
对pandas的dataframe绘图并保存的实现方法
Aug 05 Python
使用Python实现windows下的抓包与解析
Jan 15 Python
TensorFlow如何实现反向传播
Feb 06 Python
python存储16bit和32bit图像的实例
Dec 05 Python
Python.append()与Python.expand()用法详解
Dec 18 Python
3种适用于Python的疯狂秘密武器及原因解析
Apr 29 Python
Python SMTP发送电子邮件的示例
Sep 23 Python
python 开心网和豆瓣日记爬取的小爬虫
May 29 Python
Python中json.load()和json.loads()有哪些区别
Jun 07 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
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
2011/06/30 PHP
php更新mysql后获取影响的行数发生异常解决方法
2013/03/28 PHP
PHP使用内置函数生成图片的方法详解
2016/05/09 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
2016/05/12 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
2016/05/16 PHP
javascript之卸载鼠标事件的代码
2007/05/14 Javascript
用jquery实现下拉菜单效果的代码
2010/07/25 Javascript
js中关于new Object时传参的一些细节分析
2011/03/13 Javascript
javascript定时变换图片实例代码
2013/03/17 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
jquery实现不包含当前项的选择器实例
2015/06/25 Javascript
js中scrollTop()方法和scroll()方法用法示例
2016/10/03 Javascript
微信小程序 开发工具快捷键整理
2016/10/31 Javascript
javascript中this用法实例详解
2017/04/06 Javascript
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
微信小程序制作扭蛋机代码实例
2019/09/24 Javascript
js实现全选和全不选
2020/07/28 Javascript
OpenCV2从摄像头获取帧并写入视频文件的方法
2018/08/03 Python
Python3.6简单的操作Mysql数据库的三个实例
2018/10/17 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
2018/11/07 Python
python 实现创建文件夹和创建日志文件的方法
2019/07/07 Python
Windows平台Python编程必会模块之pywin32介绍
2019/10/01 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
python将unicode和str互相转化的实现
2020/05/11 Python
关于Kotlin中SAM转换的那些事
2020/09/15 Python
Python解析微信dat文件的方法
2020/11/30 Python
教师辞职报告范文
2014/01/20 职场文书
前厅部经理岗位职责范文
2014/02/04 职场文书
公司成本主管岗位责任制
2014/02/21 职场文书
服务承诺口号
2014/05/22 职场文书
环保志愿者活动总结
2014/06/27 职场文书
致青春观后感
2015/06/09 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书
mysql 索引合并的使用
2021/08/30 MySQL
Nginx 路由转发和反向代理location配置实现
2021/11/11 Servers
索尼ICF-36收音机评测
2022/04/30 无线电