![](/img/trans.png)
[英]How to deploy Python Flask app to Apache (Httpd) running on Amazon Linux EC2 instance
[英]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.