apache - wsgi - python - 基本示例

时间:2017-01-23 19:15:00

标签: python apache mod-wsgi

所以我被建议使用 wsgi 而不是cgi,因此我尝试使用基本示例的以下设置进行设置,而不使用Django:

规格:

  • linux Kubuntu,apache 2.4,python 3.5
  • apache正在运行,mod_wsgi已安装并已启用
  • 网站文件位于root / var / www / html /中,我有sudo访问此文件夹
  • python 3.5路径是usr / bin / env python3
  • python脚本:“index.py,最简单的脚本,已经可执行
  • python可执行文件位于root / var / www / scripts

问题:

  • 如何使此功能吐出结果

  • 这个wsgi脚本的处理是什么?我没有必要,我也不想要任何wsgi扩展

  • 我需要介绍什么样的apache指令才能运行脚本
  • 那么'应用'功能在哪里?

在这个wsgi想法中真的输了,一些澄清可能会有所帮助

1 个答案:

答案 0 :(得分:2)

所以让我们从我所知道和想要的东西开始,使用简约方法:

最有用的信息来自 shellhacks.commodwsgi.readthedocs.io

  • here下载最新的mod-wsgi模块包并解压缩
  • $ ./configure --with-python = / usr / local / bin / python3.5
  • $ make
  • $ sudo make install
  • $ cd etc / apache2 / mods-available /
  • $ sudo kate wsgi.load
  

LoadModule wsgi_module modules / mod_wsgi.so

  • $ sudo a2enmod wsgi
  • $ sudo service apache2 restart

  • 跟随' spark.py' apache的文档根文件夹中的脚本(对我来说是root / var / www / html)使用你最喜欢的文本编辑器(在这种情况下是Kate对我来说)

     $ kate /var/www/html/spark.py
    
    def application(environ, start_response):
        status = '200 OK'
        output = b'Hello World!\n'
        response_headers = [('Content-type', 'text/plain'),
                    ('Content-Length', str(len(output)))]
        start_response(status, response_headers)
        return [output]
    
  • 将WSGI脚本别名指令添加到etc / apache2 / sites-available / 000-default.conf

    $ sudo kate etc/apache2/sites-available/000-default.conf
    
    <VirtualHost *:80>
        #lots and lots of comments
        some actual directives
        like DocumentRoot /var/www/html
    
        # more comments
        more directives
    
        # and all the way at the end
        # THE ACTUAL DIRECTIVE
        WSGIScriptAlias / /var/www/html/spark.py
    
    </VirtualHost>
    
  • $ sudo service restart apache

  • 浏览到localhost(如果你在本地apache服务器上设置),你应该看到所有编程历史中最着名的单词,man看到它们感觉很好:)。

要做的事情:创建应用,将脚本指向,...