2017-07-18 201 views
0

我想在AWS EC2上部署flask應用程序。但是我遇到了500內部服務器錯誤如何在AWS EC2上部署flask應用程序 - 內部服務器錯誤?

首先,我已經安裝了apache webserver和mod_wsgi。

$ sudo apt-get update 
$ sudo apt-get install apache2 
$ sudo apt-get install libapache2-mod-wsgi 
$ sudo apt-get install libapache2-mod-wsgi-py2 

我已經安裝了pip3和燒瓶。

$ sudo apt-get install python3-pip 
$ sudo pip3 install flask 

這是flaskapp目錄下的flask.wsgi文件。

import sys 
sys.path.insert(0, '/var/www/html/flaskapp') 

from flaskapp import app as application 

我已經使mod_wsgi啓用。

WSGIDaemonProcess flaskapp threads=5 
WSGIScriptAlias//var/www/html/flaskapp/flaskapp.wsgi 

<Directory flaskapp> 
    WSGIProcessGroup flaskapp 
    WSGIApplicationGroup %{GLOBAL} 
    Order deny,allow 
    Allow from all 
</Directory> 

最後,我重新啓動apache2。

$ sudo apachectl restart 

當我去AWS EC2域,我得到了一個500內部服務器錯誤

The server encountered an internal error or misconfiguration and was unable to complete your request. 

Please contact the server administrator at [email protected] to inform them of the time this error occurred, and the actions you performed just before this error. 

More information about this error may be available in the server error log. 

我的flaskapp應該在python3上運行。

我不知道如何處理這個問題。

+0

你有沒有看你的Django應用程序日誌或Apache日誌,這或許是在'/無功/日誌/ apache'或'/無功/日誌/ httpd'? – birryree

+0

感謝您的回覆。 '/ var/log/apache2/error.log'中沒有任何內容。 '/ var/log'目錄中沒有httpd目錄。 –

+0

這可能表明問題來自'wsgi'模塊,並且由於Apache默認爲「警告」級日誌記錄,所以它會抑制日誌輸出。嘗試在你的'httpd.conf'中設置'LogLevel info'來在日誌中顯示更多的消息。 – birryree

回答

0

相似問題的類型是answered before

從答案引用:

的問題本質上是要安裝瓶,以及其他可能的所需的庫,在虛擬環境中,但蟒蛇(WSGI接口)與系統蟒蛇這確實運行沒有安裝這些額外的庫。

顯然,處理此問題的一種方法是使用site軟件包將site-packages從您的venv添加到執行的Python。這將在您的.wsgi文件中進行。

import site 

site.addsitedir('/path/to/your/venv/lib/pythonX.X/site-packages') 
+1

不建議直接添加「site-packages''目錄。請參閱關於如何使用虛擬環境的mod_wsgi文檔。 http://modwsgi.readthedocs.io/en/develop/user-guides/virtual-environments.html –

+0

感謝您的好閱讀@GrahamDumpleton –

相關問題