参考: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/"
配置如下:
AllowOverride None
Options FollowSymLinks +ExecCGI
Order allow,deny
Allow from all
添加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
Order deny,allow
Allow from all
演示文件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