在Ubuntu 14.04 VPS上部署基本的Python 3.4 Flask应用

1 投票
1 回答
651 浏览
提问于 2025-04-18 17:20

我正在尝试把一个WSGI Flask应用程序部署到我的Ubuntu 14.04 Linode VPS上。

我按照基本的说明进行操作,但当我访问我的域名(http://davidystephenson.com)时,看到的却是默认的Apache页面。

这个应用程序放在 /var/www/davidystephenson 目录下。文件结构是:

|----davidystephenson
|--------davidystephenson
|------------static
|------------templates
|------------__init__.py
|--------davidystephenson.wsgi

文件 __init__.py 的内容是(请原谅行号):

import datetime
from flask import Flask

app = Flask(__name__)
@app.route('/')
def hello():
    return 'Hello.'
if __name__ == '__main__':
    app.run()

文件 davidystephenson.wsgi 的内容是:

#!/usr/bin/python3

from davidystephenson import app as application

我修改了 /etc/apache2/sites-available/davidystephenson.conf 文件,内容变成了:

<VirtualHost *>
    ServerName davidystephenson

    WSGIDaemonProcess davidystephenson user=www-data group=www-data threads=5
    WSGIScriptAlias / /var/www/davidystephenson/davidystephenson.wsgi

    <Directory /var/www/davidystephenson/davidystephenson>
        WSGIProcessGroup davidystephenson 
        WSGIApplicationGroup %{GLOBAL}
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

我已经运行了 sudo a2ensite davidystephensonsudo service apache2 restart。在这个过程中没有看到任何明显的错误或警告。我可能遗漏了什么呢?

1 个回答

2

ServerName应该是你用来访问网站的外部主机名。'davidystephenson'这个值看起来很不对劲。

VirtualHost通常还会指定接受连接的端口号,所以应该写成'*:80',而不是仅仅写'*'。

建议你去看看Apache的文档,了解如何设置命名虚拟主机。

撰写回答