在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爬虫之爬虫编写全记录
Nov 06 Python
在Python中操作字符串之replace()方法的使用
May 19 Python
Java Web开发过程中登陆模块的验证码的实现方式总结
May 25 Python
python实现决策树分类算法
Dec 21 Python
Python实现的根据文件名查找数据文件功能示例
May 02 Python
python登录WeChat 实现自动回复实例详解
May 28 Python
python关于矩阵重复赋值覆盖问题的解决方法
Jul 19 Python
python写程序统计词频的方法
Jul 29 Python
Django集成celery发送异步邮件实例
Dec 17 Python
python爬虫添加请求头代码实例
Dec 28 Python
python如何实现复制目录到指定目录
Feb 13 Python
Django自定义全局403、404、500错误页面的示例代码
Mar 08 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
基于文本的搜索
2006/10/09 PHP
PHP函数utf8转gb2312编码
2006/12/21 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
2012/07/17 Javascript
jquery实现滑动特效代码
2015/08/10 Javascript
10个JavaScript中易犯小错误
2016/02/14 Javascript
JavaScript中的闭包
2016/02/24 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
js实现上传图片预览方法
2016/10/25 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
基于js 本地存储(详解)
2017/08/16 Javascript
jQuery使用zTree插件实现可拖拽的树示例
2017/09/23 jQuery
react-native 圆弧拖动进度条实现的示例代码
2018/04/12 Javascript
基于Node.js搭建hexo博客过程详解
2019/06/25 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
2019/09/14 Javascript
vue 自定义右键样式的实例代码
2019/11/06 Javascript
Vue实现简易计算器
2020/02/25 Javascript
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
vue中使用router全局守卫实现页面拦截的示例
2020/10/23 Javascript
深入了解Vue动态组件和异步组件
2021/01/26 Vue.js
用实例分析Python中method的参数传递过程
2015/04/02 Python
python 添加用户设置密码并发邮件给root用户
2016/07/25 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
2019/01/08 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
Python字典底层实现原理详解
2019/12/18 Python
基于python使用tibco ems代码实例
2019/12/20 Python
python实现五子棋游戏(pygame版)
2020/01/19 Python
使用python自动追踪你的快递(物流推送邮箱)
2020/03/17 Python
python爬取抖音视频的实例分析
2021/01/19 Python
python urllib和urllib3知识点总结
2021/02/08 Python
乔迁之喜主持词
2014/03/27 职场文书
社区春季防火方案
2014/06/02 职场文书
药剂专业求职信
2014/06/20 职场文书
签证工作证明模板
2015/06/15 职场文书