在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中反射用法实例
Mar 27 Python
Python字符串替换实例分析
May 11 Python
使用Python脚本和ADB命令实现卸载App
Feb 10 Python
pygame加载中文名mp3文件出现error
Mar 31 Python
python针对excel的操作技巧
Mar 13 Python
Django实现文件上传和下载功能
Oct 06 Python
Python JSON编解码方式原理详解
Jan 20 Python
OpenCV实现机器人对物体进行移动跟随的方法实例
Nov 09 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
Jan 05 Python
通用的Django注册功能模块实现方法
Feb 05 Python
Django如何与Ajax交互
Apr 29 Python
python turtle绘图命令及案例
Nov 23 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
超外差式晶体管收音机的组装与统调
2021/03/01 无线电
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
2015/05/21 PHP
如何使用PHP对网站验证码进行破解
2015/09/17 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
2019/09/05 PHP
如何实现JS函数的重载
2006/09/22 Javascript
Prototype使用指南之dom.js
2007/01/10 Javascript
用js实现预览待上传的本地图片
2007/03/15 Javascript
JavaScript使用concat连接数组的方法
2015/04/06 Javascript
jQuery Dialog对话框事件用法实例分析
2016/05/10 Javascript
Javascript中arguments对象的详解与使用方法
2016/10/04 Javascript
SelecT下拉框选中和取值的解决方法
2016/11/22 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
JavaScript & jQuery完美判断图片是否加载完毕
2017/01/08 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
js获取json中key所对应的value值的简单方法
2020/06/17 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
JS 仿支付宝input文本输入框放大组件的实例
2017/11/14 Javascript
JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能分析
2019/03/06 Javascript
JavaScript中的null和undefined用法解析
2019/09/30 Javascript
python基础教程之元组操作使用详解
2014/03/25 Python
使用Python实现下载网易云音乐的高清MV
2015/03/16 Python
Python发送以整个文件夹的内容为附件的邮件的教程
2015/05/06 Python
python结合selenium获取XX省交通违章数据的实现思路及代码
2016/06/26 Python
Django 如何获取前端发送的头文件详解(推荐)
2017/08/15 Python
python字符串替换re.sub()实例解析
2020/02/09 Python
Python classmethod装饰器原理及用法解析
2020/10/17 Python
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
2016/12/30 HTML / CSS
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
美国和加拿大计算机和电子产品购物网站:TigerDirect.com
2019/09/13 全球购物
高三英语教学反思
2014/01/13 职场文书
公司年终奖分配方案
2014/06/16 职场文书
法定代表人身份证明书(含说明)
2014/10/02 职场文书
五一劳动节慰问信
2015/02/14 职场文书
Java实现多文件上传功能
2021/06/30 Java/Android
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android