簡體   English   中英

帶EC2亞馬遜和httpd的燒瓶部署

[英]flask deploy with ec2 amazon and httpd

我想在Amazon EC2服務器中部署我的flask應用程序(在localhost上完美運行)

這是我的/etc/httpd/conf.d/wsgi.conf

LoadModule wsgi_module modules/mod_wsgi.so


<VirtualHost *:80>
    ServerName ec2-52-17-211-242.eu-west-1.compute.amazonaws.com/
    ServerAdmin  webmaster@dummy-host.example.com
    WSGIScriptAlias / /opt/i01/var/www/FlaskApp/flaskapp.wsgi
    <Directory /opt/i01/var/www/FlaskApp/FlaskApp/>
        Order allow,deny
        Allow from all
    </Directory>
    Alias /static /opt/i01/var/www/FlaskApp/FlaskApp/static
    <Directory /opt/i01/var/www/FlaskApp/FlaskApp/static/>
        Order allow,deny
        Allow from all
    </Directory>
    ErrorLog logs/i01.io-error_log
    CustomLog logs/i01.io-access_log common

</VirtualHost>

flaskapp.wsgi

import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/opt/i01/var/www/FlaskApp/")

from FlaskApp import app as application
application.secret_key = 'Add your secret key'

和我的__init__.py

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
    return "Hello, I love Digital Ocean!"
if __name__ == "__main__":
    app.run()

我有一個配置問題,但沒有找到

謝謝您的回答,我解決了我的問題,問題只是未定義的WSGIPythonPath

所以我剛剛添加了這一行,它工作了

WSGIPythonPath /opt/i01/var/www/FlaskApp/FlaskApp/venv/:/opt/i01/var/www/FlaskApp/FlaskApp/venv/lib/python2.7/site-packages

您的服務器名稱不應帶有斜杠(ServerName ec2-52-17-211-242.eu-west-1.compute.amazonaws.com/)。 如果您使用的是基於名稱的虛擬主機,則其末尾不得帶有斜線,因為您的瀏覽器請求將不會映射到該VirtualHost。

通常,使用mod_wsgi會將python-path設置為virtualenv的site-packages目錄(如果有的話)。

(但是,當您嘗試訪問該虛擬主機時,您需要顯示任何錯誤日志消息-或說沒有任何錯誤-並指出瀏覽器得到的響應。您應該能夠使用/ opt中的符號鏈接進行本地測試/ i01 / var / www /到您的真實目錄。我會在注釋中添加它,但我沒有因果關系。)

暫無
暫無

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

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