我试图在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中找到。
尝试浏览服务器时,我没有收到任何错误。它什么都不做。但是,从终端运行我的脚本是有效的。
感谢您的帮助。
答案 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地址。