WAMP安装wsgi

配置

  1. https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi 上下来合适版本的二进制文件下载。
  2. 安装此wheel文件
    pip install mod_wsgi-4.5.24+ap24vc14-cp36-cp36m-win_amd64.whl

    ,注意管理员权限。

  3. 安装完成后再python的Scripts目录下会有mod_wsgi-express.exe文件,运行./mod_wsgi-express.exe module-config, 会给出需要写到httpd.conf中的配置内容
    LoadFile "c:/program files (x86)/microsoft visual studio/shared/python36_64/python36.dll"
    LoadModule wsgi_module "c:/program files (x86)/microsoft visual studio/shared/python36_64/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
    WSGIPythonHome "c:/program files (x86)/microsoft visual studio/shared/python36_64"
    
  4. 将上面输出的配置项添加到httpd.conf的。取代别的配置指导说的
    LoadModule wsgi_module modules/mod_wsgi.so

    。然后在加上wsgialias即:

    LoadFile "c:/program files (x86)/microsoft visual studio/shared/python36_64/python36.dll"
    LoadModule wsgi_module "c:/program files (x86)/microsoft visual studio/shared/python36_64/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
    WSGIPythonHome "c:/program files (x86)/microsoft visual studio/shared/python36_64"
    
    <IfModule wsgi_module>
    WSGIScriptAlias /hellowsgi C:/wamp64/www/hellowsgi.wsgi
    AddType text/html .py
    </IfModule>
    

然后就可以开始我们的helloworld了。

helloworld示例

# -*- coding:utf-8 -*-
# Save AS C:/wamp64/www/hellowsgi.wsgi

def application(environ, start_response):
    status = '200 OK'
    output = b'Hello World!'

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]

if __name__ == '__main__':
    from wsgiref.simple_server import make_server
    httpd = make_server('', 8000, application)
    print "Serving on port 8000..."
 
    # Serve until process is killed
    httpd.serve_forever()

其他注意事项

  1. 为什么没有使用xampp而使用了wamp?
    答:现在的xampp没有win64版本,而我使用的python是64位版本的,只好使用64版本wamp了。
  2. 我刚下载的wampserver3.1.0_x64.exe咋没启动起来?
    答:我把wampmanager.confwampmanager.ini中的php从5.6.31改成7.1.9就可以了。wamp3.1.0携带了三个版本的php。
  3. wsgi要求byte string。
    如果不是,会有错误TypeError: sequence of byte string values expected, value of type str found\r

发表评论

电子邮件地址不会被公开。 必填项已用*标注