我不熟悉Flask(以及这些类型的应用程序框架),我正在尝试在VPS上设置它。如果有帮助的话,我正在Ubuntu 20.04上运行apache2
在this example之后,我成功地运行了“Hello world”应用程序。然后我试着让另一个例子运行起来,看看是否可以。除了指向不同文件的路径之外,代码和文件是相同的。甚至所有文件的权限都已向所有人开放(我知道,这是一种糟糕的做法,只是想让它正常工作)
据我所知,这个应用程序很奇怪,因为.py文件试图用此行处理“/”路径
@app.route("/")
尽管WSGIScriptAlias引用了“/testFlask”
WSGIScriptAlias /testFlask /home/user/ExampleFlask/ExampleFlask/my_flask_app.wsgi
但是它可以工作,如果我将.py文件中的那一行改为“/testFlask”而不是“/”,它也会返回404错误
为了便于参考,工作/etc/apache2/sites available/examplelask.conf文件包含:
<VirtualHost *:80>
# Add machine's IP address (use ifconfig command)
ServerName IP_ADDRESS_HERE
# Give an alias to to start your website url with
WSGIScriptAlias /testFlask /home/user/ExampleFlask/ExampleFlask/my_flask_app.wsgi
<Directory /home/user/ExampleFlask/ExampleFlask/>
# set permissions as per apache2.conf file
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
/home/user/examplelask/examplelask/my\u flask\u app.wsgi
#! /usr/bin/python3.6
import logging
import sys
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0, '/home/user/ExampleFlask/ExampleFlask')
from my_flask_app import app as application
application.secret_key = 'BOB'
/home/user/examplelask/examplelask/my\u flask\u app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello world!"
if __name__ == "__main__":
app.run()
第二个失败的应用程序是相同的,但将路径中的“ExampleFlask”替换为“NewFlask”,并使用不同的密钥。此外,以下行具有不同的别名
WSGIScriptAlias /newFlask /home/user/NewFlask/NewFlask/my_flask_app.wsgi
最后,如果这有帮助的话,可以使用ApacheCTL-S的输出 Apache在本地主机上运行(但仍在外部显示),而其他服务器在我的IP地址上运行
port 80 namevhost 127.0.0.1 (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost IP_ADDRESS (/etc/apache2/sites-enabled/ExampleFlask.conf:1)
port 80 namevhost IP_ADDRESS (/etc/apache2/sites-enabled/NewFlask.conf:1)
编辑:我忘了提及-404错误的错误日志中没有任何内容。当我重新启动服务器并尝试访问应用程序时所看到的一切-
[Thu Apr 01 17:35:14.234997 2021] [mpm_event:notice] [pid 613:tid 140596752829504] AH00489: Apache/2.4.41 (Ubuntu) mod_wsgi/4.6.8 Python/3.8 configured -- resuming normal operations
[Thu Apr 01 17:35:14.235014 2021] [core:notice] [pid 613:tid 140596752829504] AH00094: Command line: '/usr/sbin/apache2'
目前没有回答
相关问题 更多 >
编程相关推荐