2017-01-23 42 views
1

所以我建议使用WSGI代替CGI,所以我试图用下面的设置将其设置为一个基本的例子,没有Django的:阿帕奇 - WSGI - 蟒蛇 - 基本的例子

规格:

  • Linux的Kubuntu的,阿帕奇2.4,蟒蛇3.5
  • apache的运行过程中,mod_wsgi的安装并启用
  • 网站文件在root/var/www/html /下,我有sudo访问这个文件夹
  • python 3.5路径是usr/bin/env python3
  • python脚本:“index.py,最简单的脚本,已经取得了可执行
  • 蟒蛇可执行生活根在/ var/WWW /脚本

问题:

  • 如何使这个功能吐出它的结果

  • 这个wsgi脚本有什么问题?我不需要任何wsgi扩展

  • 我需要引入什么apache指令来运行脚本
  • 那么'应用程序'功能在哪里?

真的失去了在这个WSGI想法,一些澄清可能有助于

+0

使用'Flask','Bottle'等Web框架和建立网页。他们有内置的服务器,所以你在开始时不需要Apache。 – furas

+0

您是否尝试过从浏览器访问index.py?如果是这样,你会得到什么结果? –

+0

@furas:我故意不想使用任何Web框架 – hewi

回答

0

让我们与我所知道的,并希望开始使用简约方法:

最有用信息从shellhacks.com衍生和modwsgi.readthedocs.io

  • 从下载最新的mod-wsgi模块包并提取
  • $的./configure --with-蟒蛇=在/ usr/local/bin目录/ python3.5
  • $使
  • $ sudo的使安装
  • $ CD等/ apache2的/ MODS的可用/
  • $ sudo的凯特wsgi.load

的LoadModule wsgi_module模块/ mod_wsgi.so

  • $ sudo的a2enmod WSGI
  • $ sudo的服务的Apache2重启

  • 地方下面“火花。PY”在Apache中的文档根目录文件夹中的脚本使用文本编辑器(在这种情况下是凯特对我来说)(这是根本的/ var/www/html等我)

    $ 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的/网站可用/ 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的服务重启Apache

  • 浏览到本地主机(如果你设置了本地Apache服务器上),你应该看到在所有的编程历史上最有名的话,人感觉不错,看看这些: )

可以做的事:创建应用程序,指向脚本的是,...