【问题标题】:apache - wsgi - python - basic exampleapache - wsgi - python - 基本示例
【发布时间】:2017-01-23 19:15:00
【问题描述】:

所以我被建议使用 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 的想法中,一些澄清可能会有所帮助

【问题讨论】:

  • 使用FlaskBottle等Web框架构建网页。他们有内置的服务器,所以你在开始时不需要 Apache。
  • 您是否尝试过从浏览器访问 index.py?如果有,你会得到什么结果?
  • @furas:我故意不想使用任何网络框架
  • @John Gordon:index.py 有效
  • @furas:我想在开车之前先了解一下这辆车的工作原理 :)

标签: python apache mod-wsgi


【解决方案1】:

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

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

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

LoadModule wsgi_module modules/mod_wsgi.so

  • $ sudo a2enmod wsgi

  • $ sudo service apache2 重启

  • 使用您最喜欢的文本编辑器(在本例中为我的 Kate)将以下“spark.py”脚本放在 apache 的文档根文件夹(对我来说是 root/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/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
    <Directory /usr/lib/python3.7>
        Require all granted
    </Directory>

</VirtualHost>
  • $ sudo service restart apache
  • 浏览到 localhost(如果您设置在本地 apache 服务器上),您应该会看到所有编程历史中最著名的词,看到这些感觉很好:)

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

【讨论】:

    猜你喜欢
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    • 2013-11-13
    • 1970-01-01
    • 2016-12-23
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多