Python 使用Raspberry Pi通过Flask在Apache服务器上设置网页

Python 使用Raspberry Pi通过Flask在Apache服务器上设置网页,python,apache,flask,http-post,wsgi,Python,Apache,Flask,Http Post,Wsgi,我一直在努力使用Flask进行web开发。我正在开发一种遥控宠物喂食器。我想创建一个网站,以流式视频从摄像机在Pi和分发食物与按钮在这个网站上 项目文件夹:/var/www/PetFeeder Python脚本:/var/www/PetFeeder/PetFeeder.py *我的python脚本调用其他脚本(用于摄影机等),这些脚本再次位于“PetFeeder”文件夹下。当我通过终端运行这个脚本时,它开始发布我的HTML和按钮等。效果很好。但是,它仅位于端口:5000上Pi的IP地址上。无

我一直在努力使用Flask进行web开发。我正在开发一种遥控宠物喂食器。我想创建一个网站,以流式视频从摄像机在Pi和分发食物与按钮在这个网站上

  • 项目文件夹:
    /var/www/PetFeeder

  • Python脚本:
    /var/www/PetFeeder/PetFeeder.py

*我的python脚本调用其他脚本(用于摄影机等),这些脚本再次位于“PetFeeder”文件夹下。当我通过终端运行这个脚本时,它开始发布我的HTML和按钮等。效果很好。但是,它仅位于端口
:5000上Pi的IP地址上。无法从本地网络外部访问

  • 我的网页的Html文件:
    /var/www/PetFeeder/templates/index.Html

  • WSGI文件:
    /var/www/PetFeeder/PetFeeder.WSGI

  • Conf.file:
    /etc/apache2/sites available/my.PetFeeder.Conf

  • /etc/hosts中的127.0.0.1已在前面写为“localhost”的文件中。所以,我把它改成了我的宠物喂食器

  • /var/www/PetFeeder/PetFeeder.wsgi的内容:

    import sys
    sys.path.append('/var/www/PetFeeder')
    from PetFeeder import app as application
    
  • /etc/apache2/sites available/my.PetFeeder.conf的内容:

    <virtualhost *:80>
          ServerName my.PetFeeder
          WSGIDaemonProcess PetFeeder user=www-data group=www-data threads=5 home=/var/www/PetFeeder/
          WSGIScriptAlias / /var/www/PetFeeder/PetFeeder.wsgi
          <directory /var/www/PetFeeder>
              WSGIProcessGroup PetFeeder
              WSGIApplicationGroup %{GLOBAL}
              WSGIScriptReloading On
              Order deny,allow
              Allow from all
          </directory>
    </virtualhost>
    
    
    ServerName my.PetFeeder
    WSGIDaemonProcess-PetFeeder-user=www-data-group=www-data-threads=5-home=/var/www/PetFeeder/
    WSGIScriptAlias//var/www/PetFeeder/PetFeeder.wsgi
    WSGIProcessGroup PetFeeder
    WSGIApplicationGroup%{GLOBAL}
    WSGIScript正在重新加载
    命令拒绝,允许
    通融
    
*a2ensite my.PetFeeder returns'站点。。已启用'

*apache2重新启动成功返回[确定]重新启动apache2

*此外,当我在我的网络浏览器上访问树莓的IP_时,我会看到“它能工作!”Apache的主页

但是,我无法从任何可能的地址访问PetFeeder页面。我试着跟着,不知道还有没有其他人。如果有人能帮助我,我会非常高兴。谢谢你

  • http://my.PetFeeder/
  • 树莓/my.PetFeeder的IP
  • 树莓的IP:80

在您的PI:curl localhost/-H“Host:my.PetFeeder”@Joshua上本地尝试此命令。终端上返回的某种html代码。这意味着什么?这就像终端上的web浏览器一样,请求该URL上的页面。如果你检查HTML,它是你的PetFeeder应用程序吗?@Joshua不,实际上它是Apache主页。你知道为什么Apache页面正在运行而不是我的网页吗?也许你定义了一个默认的virtualhost,它正在覆盖你的配置?选中/etc/apache2/sites enabled并删除除您的petfeeder之外的所有链接。在您的PI:curl localhost/-H“Host:my.petfeeder”@Joshua上本地尝试此命令。终端上返回的某种html代码。这意味着什么?这就像终端上的web浏览器一样,请求该URL上的页面。如果你检查HTML,它是你的PetFeeder应用程序吗?@Joshua不,实际上它是Apache主页。你知道为什么Apache页面正在运行而不是我的网页吗?也许你定义了一个默认的virtualhost,它正在覆盖你的配置?选中/etc/apache2/sites enabled并删除除您的petfeeder之外的所有链接。