簡體   English   中英

嘗試將 Flask 應用程序部署到 Apache 時出現 404

[英]404 when trying to deploy Flask app to Apache

我正在嘗試將 Flask 應用程序部署到基於 Linux 的服務器,但沒有成功。 我已經查看了 stackoverflow 上的不同方法和條目,但似乎沒有任何效果。 為了更簡潔地測試它,我創建了一個嘗試在本地運行的簡單測試應用程序:

/var/www/test

測試.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index ():
        return "Hello World!"

if __name__ == '__main__':
        app.run()

測試.wsgi

from test import app as application

和一個空的__init__.py文件。

/etc/apache2/sites-available

測試.conf

<VirtualHost *>
    ServerName *Local IP address*

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

    <Directory /var/www/test>
        WSGIProcessGroup test
        WSGIApplicationGroup %{GLOBAL}
        Require all granted
    </Directory>
</VirtualHost>

test.conf 文件是通過a2ensite test.conf注冊的,並且libapache2-mod-wsgi是通過 apt 安裝在我的本地 Debian Buster 發行版上的,我正在(localhost)上進行測試。 Python2 和 3 分別與 Flask 一起安裝。 每個文件和test文件夾都由 www-data 擁有,組為 www-data。 當然,每次更改后我都會使用service apache2 restart啟動應用程序。

我可以在 localhost:5000 上使用python test.py成功運行應用程序,並打印“Hello World.”。

我在 Apache 錯誤日志中也沒有看到任何可疑之處,只是:

[Sun Oct 27 22:16:55.923721 2019] [mpm_event:notice] [pid 26336:tid 140548964586624] AH00489: Apache/2.4.38 (Debian) mod_wsgi/4.6.5 Python/2.7 configured -- resuming normal operations
[Sun Oct 27 22:16:55.923771 2019] [core:notice] [pid 26336:tid 140548964586624] AH00094: Command line: '/usr/sbin/apache2'

我錯過了什么? 為什么我會收到 404? 有什么方法可以查看應用程序是否正在運行或只是嘗試運行?

ServerName *Local IP address* <- 這個。 您不能在那里使用 IP,它必須是一個主機名(與您在您訪問的 URL 中使用的主機名匹配)。 如果您使用 IP 訪問您的服務器,它將默認使用第一個定義的虛擬主機,因為它不會匹配任何服務器名稱,這可能不是您剛剛定義的名稱。

因此,要么將主機名放在那里並在hosts文件中定義它,如果它是一個無法解析的名稱,或者編輯默認虛擬主機(虛擬主機按字母數字順序加載,這意味着除非test.conf是列出sites-available時的第一個條目 - sites-available ,它不是第一個,在使用IP訪問服務器時不會使用)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM