在远程主机上使用flask virtualenv(非本地)

时间:2015-09-18 10:38:57

标签: apache debugging flask virtualenv wsgi

我有一个CentOS 7 WSGI支持Apache Httpd服务器(在VirtualBox机器上),它在端口80上http://www.myflask.com为我开发的Flask站点提供服务。

由于我无法在那里进行调试(即使我尽我所能),就像我在http://127.0.0.1:5000的virutalenv中设置的本地版本一样,我试图这样做:

  • 在VB服务器上设置virtualenv(安装了烧瓶),名为myflaskv(/ var / www / myflaskv)
  • 将myflask目录放入myflaskv(/ var / www / myflaskv / myflask)

我确实以下面的httpd.conf虚拟主机部分结束了:

    <VirtualHost *:80>

    DocumentRoot "/var/www/myflaskv/myflask"

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    <Directory "/var/www/myflaskv/myflask">
        Options Indexes FollowSymLinks MultiViews
        Order deny,allow
        Allow from all
    </Directory>

    WSGIScriptAlias / /var/www/myflaskv/myflask/index.wsgi

    ServerName www.myflask.com:80

</VirtualHost>

我可以加载页面http://www.myflask.com(即使启用了virtualenv)但是我无法加载页面http://www.myflask.com:5000,因为我想调试。

所以我尝试在端口5000上添加虚拟主机:

<VirtualHost *:5000>

    DocumentRoot "/var/www/myflaskv/myflask"

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    <Directory "/var/www/myflaskv/myflask">
        Options Indexes FollowSymLinks MultiViews
        Order deny,allow
        Allow from all
    </Directory>

    WSGIScriptAlias / /var/www/myflaskv/myflask/index.wsgi

    ServerName www.myflaskv.com:5000

</VirtualHost>

假设这样我可以加载http://www.myfaskv.com,而不是(ERR_CONNECTION_REFUSED)。

顺便说一下,我暂时停用ip-tables和se-linux。

那么有没有办法从浏览器加载远程主机的127.0.0.1:5000 ip地址? 或者有更好的方法在wsgi apache开发环境中调试flask?

2 个答案:

答案 0 :(得分:0)

如果您想从框外访问网址,则必须在0.0.0.0:5000运行服务器。

无法从正在运行它的框外访问网址http://127.0.0.1:5000

答案 1 :(得分:0)

当您使用wsgi访问您的应用程序时,错误消息和堆栈跟踪将写入Web服务器错误日志,默认情况下将写入/var/log/apache2/error.log。您不需要使用virtualenv Web服务器。只需将您需要的任何调试输出写入本地日志文件(如果您有要打印的调试输入),并在apache错误日志中查找堆栈跟踪。