参考:http://webpy.org/cookbook/mod_wsgi-apache.zh-cn

一、yum方式安装:

1、yum install httpd

输入y后继续。

2、看到一下类似的返回,说明安装成功

3、由于linux Redhat默认将httpd作为系统服务,可以根据实际需要将httpd加入开机启动。

单独查看某一服务是否开机启动的命令 :chkconfig --list 服务名

单独开启某一服务的命令 ;chkconfig 服务名 on

单独关闭某一服务的命令;chkconfig 服务名 off

查看某一服务的状态:service httpd status

二、离线安装httpd

wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.33.tar.gz

tar -zxvf httpd-2.4.33.tar.gz

yum install pcre pcre-devel -y

以下省去几百字。

三、httpd常用配置:

1、配置httpd支持cgi

vim /etc/httpd/conf/httpd.conf

如果这一行被注释,去掉注释

LoadModule cgi_module modules/mod_cgi.so

设置好CGI目录:

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

配置如下:

<Directory "/var/www/cgi-bin/">

AllowOverride None

Options FollowSymLinks +ExecCGI

Order allow,deny

Allow from all

</Directory>

添加CGI扩展名:(去掉注释)

AddHandler cgi-script .cgi .py

2、配置httpd支持web.py

a、安装python

b、安装web.py

c、测试web.py是否成功安装,并且可以访问。

code.py内容如下所示:

import web urls = ( '/', 'index' ) class index: def GET(self): return "Hello, world!" if __name__ == "__main__": app = web.application(urls, globals()) app.run()

测试web.py是否安装成功。

python code.py 8080 &

看到以下结果测试通过:

d、配置httpd支持web.py

您可以使用您自己的项目名称替换’appname’。

您可以使用您自己的文件名称替换’code.py’。

/var/www/webpy-app 为包含您的code.py的文件夹目录路径。

/var/www/webpy-app/code.py 是您的python文件的完整路径。

安装mod_wsgi: yum install mod_wsgi(系统默认会关联python2.6)

确认mod_wsgi.so 是否位于这个目录/usr/lib64/httpd/modules/

vim /etc/httpd/conf/httpd.conf

在httpd.conf中配置Apache 加载 mod_wsgi模块和您的项目,在配置文件最后面加入如下脚本:

LoadModule wsgi_module modules/mod_wsgi.so

WSGIScriptAlias /appname /var/www/webpy-app/code.py/

Alias /appname/static /var/www/webpy-app/static/

AddType text/html .py

<Directory /var/www/webpy-app/>

Order deny,allow

Allow from all

</Directory>

演示文件code.py

import web

urls = (

'/.*', 'hello',

)

class hello:

def GET(self):

return "Hello, world."

application = web.application(urls, globals()).wsgifunc()

在您的浏览器地址栏中输入’ http://your_server_name/appname’ 来验证它是否可用。

#注意:经过测试,code.py无法导入当前目录的其他模块,可以临时放到python的site-packgs目录下。

#注意: mod_wsgi + sessions

如果您需要在mod_wsgi中使用sessions,您可以改变您的代码如下:

app = web.application(urls, globals())

curdir = os.path.dirname(__file__)

session = web.session.Session(app, web.session.DiskStore(curdir + '/' + 'sessions'),)

application = app.wsgifunc()

#mod_wsgi 性能: 有关mod_wsgi的性能,请参考mod_wsgi的维基页: http://code.google.com/p/modwsgi/wiki/PerformanceEstimates

最新文章

  1. 使用Visual Studio扩展插件Visual assist X给代码插入注释模板
  2. PHP中CURL方法curl_setopt()函数的一些参数
  3. Node 进阶:express 默认日志组件 morgan 从入门使用到源码剖析
  4. ROW_NUMBER
  5. iis8 默认不支持svc解决方法
  6. Log4Net(三)之记录日志到数据库
  7. 打开shpfile,mdb,sde工作空间
  8. nodejs错误:ld: library not found for -lgcc_s.10.5 clang: error: linker command failed with exit code 1 (use -v to see invocation)
  9. Oracle11g客户端for centos 5.5安装文档
  10. 解决IE无法解析json的方法
  11. boost::asio async_write也不能保证一次发完所有数据 一
  12. xml动态修改 dom4j修改
  13. 如何获取Azure Storage Blob的MD5值
  14. java web开发中遇到的问题及解决方案(个人学习日志,持续更新)
  15. JS——判断一个对象是否为空
  16. jsonp跨域实现单点登录,跨域传递用户信息以及保存cookie注意事项
  17. jQuery图片无缝轮播
  18. SQL: 某个时间段范围内,产品有价格,且求平均数
  19. HBase 开发环境搭建(Eclipse\MyEclipse + Maven)
  20. HTML-JS 循环 函数 递归

热门文章

  1. Tomcat 在 Linux 下的自动启动脚本
  2. LINUX下实现按秒执行计划任务
  3. 有关js的一些小问题
  4. 【Triangle 】cpp
  5. RSA进阶之低加密指数攻击
  6. Leetcode 516.最长回文子序列
  7. Notadd 2.0 全新 Node.js 版本~ (开发中) [从 PHP 到 node 的踩坑记]
  8. [oldboy-django][2深入django]老师管理 -- form表单如何生成多选框标签,多选框的默认值显示,以及多选框数据插入到数据库,多选框数据更改到数据库
  9. Spring框架配置beans.xml扩展
  10. linux系统web日志分析脚本