在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序列之list和tuple常用方法以及注意事项
Jan 09 Python
Python实现在Linux系统下更改当前进程运行用户
Feb 04 Python
Python获取央视节目单的实现代码
Jul 25 Python
Python字符串处理实现单词反转
Jun 14 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
Jan 27 Python
Python使用random.shuffle()打乱列表顺序的方法
Nov 08 Python
python re正则匹配网页中图片url地址的方法
Dec 20 Python
python 自定义对象的打印方法
Jan 12 Python
TensorFlow MNIST手写数据集的实现方法
Feb 05 Python
Java多线程实现四种方式原理详解
Jun 02 Python
python如何使用代码运行助手
Jul 03 Python
Django项目在pycharm新建的步骤方法
Mar 02 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
PHP实现HTTP断点续传的方法
2015/06/17 PHP
php格式化json函数示例代码
2016/05/12 PHP
深入剖析浏览器退出之后php还会继续执行么
2016/05/17 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
PHP实现将标点符号正则替换为空格的方法
2017/08/09 PHP
js的写法基础分析
2011/01/17 Javascript
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
jquery ajax 如何向jsp提交表单数据
2015/08/23 Javascript
js获取当前日期时间及其它日期操作汇总
2016/03/08 Javascript
基于JQuery实现的跑马灯效果(文字无缝向上翻动)
2016/12/02 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
2017/01/19 Javascript
node跨域请求方法小结
2017/08/25 Javascript
node基于puppeteer模拟登录抓取页面的实现
2018/05/09 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
如何解决.vue文件url引用文件的问题
2019/01/18 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
Python中关于使用模块的基础知识
2015/05/24 Python
详解python调度框架APScheduler使用
2017/03/28 Python
Python实现的从右到左字符串替换方法示例
2018/07/06 Python
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
python如何实现视频转代码视频
2019/06/17 Python
python读文件的步骤
2019/10/08 Python
如何实现更换Jupyter Notebook内核Python版本
2020/05/18 Python
Selenium alert 弹窗处理的示例代码
2020/08/06 Python
python如何实现word批量转HTML
2020/09/30 Python
H5页面适配iPhoneX(就是那么简单)
2019/12/02 HTML / CSS
澳大利亚个性化儿童礼品网站:Bright Star Kids
2019/06/14 全球购物
介绍一下gcc特性
2012/01/20 面试题
青年志愿者活动总结
2014/04/26 职场文书
医院党建工作总结2015
2015/05/26 职场文书
《槐乡的孩子》教学反思
2016/02/20 职场文书
教育教学工作反思
2016/02/24 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL
小程序实现文字循环滚动动画
2021/06/14 Javascript
Nginx使用ngx_http_upstream_module实现负载均衡功能示例
2022/08/05 Servers