【发布时间】:2015-08-10 12:44:03
【问题描述】:
我知道这个问题有一个关于 digitalocean 的文档,但由于某种原因它并没有真正起作用。
Ubuntu:14.04
HTTP 服务器: apache2
模块:wsgi
状态
按照整个教程并相应地编辑了文件以匹配我的烧瓶项目,问题是即使所有内容都根据文档部署,域或服务器 ip 也会显示任何响应。
代码
文件名:numiCloud.wsgi
#!/usr/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/numiCloud/")
from numiCloud import app as application
application.secret_key = 'Add your secret key'
文件名:/var/www/numiCloud/numiCloud/__init__.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def root():
return "Deployed!"
if __name__=="__main__':
app.run()
文件名:/etc/apache2/sites-available/numiCloud.conf
<VirtualHost *:80>
ServerName 183.83.199.118
WSGIDaemonProcess numiCloud user=devx136 threads=5
WSGIScriptAlias / /var/www/numiCloud/numicloud.wsgi
<Directory /var/www/numiCloud/>
WSGIProcessGroup numiCloud
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
文件名:/var/log/apache2/error.log
link
wsgi 模块已启用,apache 的虚拟主机也已启用,但我仍然没有看到我不希望它返回的文本。无论如何,该网站都会显示 404 not found 错误。
更新:好吧,似乎没有人知道解决方案..【问题讨论】:
-
你的烧瓶默认端口是什么,你不能在单个端口上提供超过 1 个。
-
默认端口是 5000,我可以保证该端口上没有其他任何东西,因为它正在部署到像 apache 这样的 http 服务器,我认为它不使用它的端口。
-
你应该去掉
if __name__ == "__main__": app.run(),因为它会创建一个本地wsgi服务器。查看此文档:flask.pocoo.org/docs/0.10/deploying/mod_wsgi -
@Leandro 文档说要么使用 if 块,要么将其完全移动到另一个文件中。
-
Apache 日志文件中是否有与此站点相关的内容。此外,如果您发布 Apache 站点文件可能会有所帮助,它可能配置错误。
标签: python apache ubuntu deployment flask