在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的Django框架使用入门指引
Apr 15 Python
Django URL传递参数的方法总结
Aug 28 Python
基于Python Numpy的数组array和矩阵matrix详解
Apr 04 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
Jul 11 Python
Python实现的读取/更改/写入xml文件操作示例
Aug 30 Python
python单例模式获取IP代理的方法详解
Sep 13 Python
DRF跨域后端解决之django-cors-headers的使用
Jan 27 Python
pycharm创建scrapy项目教程及遇到的坑解析
Aug 15 Python
原来我一直安装 Python 库的姿势都不对呀
Nov 11 Python
Pytorch中的自动求梯度机制和Variable类实例
Feb 29 Python
python3使用diagrams绘制架构图的步骤
Apr 08 Python
python 利用 PIL 将数组值转成图片的实现
Apr 12 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
PHP5中MVC结构学习
2006/10/09 PHP
一棵php的类树(支持无限分类)
2006/10/09 PHP
thinkPHP的Html模板标签使用方法
2012/11/13 PHP
ThinkPHP模型详解
2015/07/27 PHP
php生成验证码,缩略图及水印图的类分享
2016/04/07 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
PHP如何实现跨域
2016/05/30 PHP
验证用户是否修改过页面的数据的实现方法
2008/09/26 Javascript
javascript创建数组之联合数组的使用方法示例
2013/12/26 Javascript
JavaScript生成随机数的4种自定义函数分享
2015/02/28 Javascript
js实现的页面矩阵图形变换特效
2016/01/26 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
angularjs中ng-attr的用法详解
2016/12/31 Javascript
element-ui 限制日期选择的方法(datepicker)
2018/05/16 Javascript
手把手教你使用TypeScript开发Node.js应用
2019/05/06 Javascript
详解Angular cli配置过程记录
2019/11/07 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
Python实现学生成绩管理系统
2020/04/05 Python
django中send_mail功能实现详解
2018/02/06 Python
浅谈PYTHON 关于文件的操作
2019/03/19 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
2020/02/11 Python
基于Python中random.sample()的替代方案
2020/05/23 Python
Python实现小黑屋游戏的完整实例
2021/01/06 Python
Html5中的桌面通知Notification的实现
2018/09/25 HTML / CSS
免费获得微软MCSD证书赶快行动吧!
2012/11/13 HTML / CSS
HTML5 LocalStorage 本地存储详细概括(多图)
2017/08/18 HTML / CSS
敏捷开发的主要原则都有哪些
2015/04/26 面试题
采购部主管岗位职责
2014/01/01 职场文书
银行服务明星推荐材料
2014/05/29 职场文书
有关环保的标语
2014/06/13 职场文书
法院授权委托书范文
2014/08/02 职场文书
树转促学习心得体会
2014/09/10 职场文书
教师作风整改措施思想汇报
2014/10/12 职场文书
入党自荐书范文
2015/03/05 职场文书
个人工作能力自我评价
2015/03/05 职场文书
《我要的是葫芦》教学反思
2016/02/18 职场文书