• httpd安装和配置(cgi、wsgi)


    参考: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

    如果您喜欢我,可以通过微信请我喝果汁。

    如果有疑问,可以留言或者发邮件给我 lhh_nj@163.com
  • 相关阅读:
    python-web自动化环境安装
    python-单元测试优化,加入日志
    小谢第17问:三目运算符嵌套使用方法
    小谢第16问:1到6000的正整数正则表达式怎么写?
    小谢第15问:5到60的正整数正则表达式怎么写?
    小谢第14问:多个if语句和else if有什么区别?
    小谢第13问:输入框绑定回车enter事件自动刷新页面
    小谢第12问:初始化页面的时候子组件为什么不渲染?
    小谢第11问:vue中,子组件获取的值怎么传给父组件
    小谢第10问:前端JS下载文件、表格
  • 原文地址:https://www.cnblogs.com/lihuanhuan/p/10612140.html
Copyright © 2020-2023  润新知