apache-wsgi-python-basic示例

apache-wsgi-python-basic示例,python,apache,mod-wsgi,Python,Apache,Mod Wsgi,因此,我被建议使用wsgi而不是cgi,因此我尝试在不使用Django的情况下为基本示例设置以下设置: 规格: linux Kubuntu、apache 2.4、python 3.5 apache正在运行,安装并启用了mod_wsgi 网站文件位于root/var/www/html/,我有权访问此文件夹 python 3.5的路径是usr/bin/env python3 python脚本:“index.py,最简单的脚本,已经成为可执行脚本 python可执行文件位于root/var/www/

因此,我被建议使用wsgi而不是cgi,因此我尝试在不使用Django的情况下为基本示例设置以下设置:

规格:

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

  • 我如何让这个函数吐出它的结果

  • 这个wsgi脚本有什么用?我不需要它,我也不想要任何wsgi扩展

  • 运行脚本需要引入什么apache指令
  • 那么,“应用程序”功能在哪里

在这个wsgi想法中,一些澄清可能会有所帮助,所以让我们从我所知道和想要的开始,使用最低限度的方法:

最有用的信息来源于

  • $sudo apt get安装python3 distutils
  • $sudo apt get安装apache2 dev
  • 从下载最新的mod wsgi模块包并解压缩
  • $./configure--with python=/usr/local/bin/python3.5
  • $make
  • $sudo make安装
  • $cd etc/apache2/mods可用/
  • $SUDO_EDITOR=kate sudoedit wsgi.load
LoadModule wsgi_modules/mod_wsgi.so

  • $sudo a2enmod wsgi

  • $sudo服务apache2重新启动

  • 使用您最喜欢的文本编辑器(在本例中是Kate for me)将以下“spark.py”脚本放在apache的文档根文件夹中(对我来说是root/var/www/html)

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

    $ sudo kate etc/apache2/sites-available/000-default.conf
    

#很多很多评论
一些实际指令
比如DocumentRoot/var/www/html
#更多评论
更多指令
#一直到最后
#实际指令
WSGIScriptAlias//var/www/html/spark.py
要求所有授权
  • $sudo服务重启apache
  • 浏览到localhost(如果您是在本地apache服务器上设置的),您应该会看到所有编程历史中最著名的词,看到这些词感觉好吗:)

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

使用
Flask
Flask
,等等。Web框架和构建网页。他们有内置服务器,所以您一开始就不需要Apache。您是否尝试过从浏览器访问index.py?如果是,您会得到什么结果?@furas:我故意不想使用任何Webframework@John-Gordon:index.pyworks@furas:我想在开车前先了解一下汽车的工作原理:)
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]
$ 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>