首页 文章

apache - wsgi - python - 基本示例

提问于
浏览 829
2

所以我被建议使用 wsgi 而不是cgi,所以我尝试使用以下设置为 basic example 设置它,而不使用Django:

specs:

  • 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中

Questions:

  • 如何使此功能吐出结果

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

  • 我需要介绍什么apache指令才能运行脚本

  • 那么'application'功能在哪里?

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

1 回答

  • 2

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

    最有用 info derived from 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

    • 使用您最喜欢的文本编辑器(在本例中为Kate为我),在apache的文档根文件夹(对我来说是root / var / www / html)中的'spark.py'脚本之后放置

    $ 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(输出)))]
    start_response(status,response_headers)
    返回[输出]

    • 将WSGI脚本别名指令添加到etc / apache2 / sites-available / 000-default.conf
    $ sudo kate etc/apache2/sites-available/000-default.conf
    

    <VirtualHost *:80>
    #lots和很多评论
    一些实际指令
    比如DocumentRoot / var / www / html

    #更多评论
    更多指令

    #并在最后一路
    #The ACTUAL DIRECTIVE
    WSGIScriptAlias / /var/www/html/spark.py

    </虚拟主机>

    • $ sudo service restart apache

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

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

相关问题