在Apache 2.4

时间:2017-08-31 11:49:50

标签: python apache flask mod-wsgi rhel7

我试图在RHEL7 Apache 2.4服务器上取消我的Flask应用程序。 文件结构如下/var/www/html

/app
 app.wsgi
  /app
   app.py
   /templates
   /static

在我的/etc/httpd/conf/httpd.conf中,我有以下代码来设置我的项目:

    <VirtualHost *>
        ServerName 10.65.112.75:443
        WSGIDaemonProcess app user=apache group=apache threads=5 home=/var/www/html/app/app
        WSGIScriptAlias / /var/html/app/app.wsgi

<Directory /var/www/html/app/app/>
        WSGIProcessGroup app
        WSGIApplicationGroup %{GLOBAL}
        WSGIScriptReloading On
        Order deny,allow
        Require all granted
</Directory>
        Alias /static /var/www/html/app/app/static/
<Directory /var/www/html/app/app/static/>
        Order deny,allow
        Require all granted
</Directory>

我的app.wsgi包含以下内容:

#!/usr/bin/python
import sys
sys.path.insert(0, "/var/www/html/app/app/")
from app import app as application

项目本身的代码可以在我的github存储库here中找到。

尝试浏览服务器时,我没有收到任何错误。它什么都不做。但是,从终端运行我的脚本是有效的。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

有各种各样的事情是对的。

你有:

WSGIScriptAlias / /var/html/app/app.wsgi

虽然看起来应该是:

WSGIScriptAlias / /var/www/html/app/app.wsgi

<Directory /var/www/html/app/app/>

似乎应该是:

<Directory /var/www/html/app>

您的VirtualHost定义也看起来不对。你有:

<VirtualHost *>
    ServerName 10.65.112.75:443

如果您确实希望将其用于HTTPS连接,则缺少所有SSL指令来添加SSL证书。

ServerName通常也是完全限定的域名,而不是IP:PORT。端口号通常位于VirtualHost指令中。例如,对于HTTP,请使用:

<VirtualHost *:80>
    ServerName my.host.name

其中my.host.name是您在网址中使用的计算机的完整公用主机名,而不是IP地址。

相关问题