2013-06-30 165 views
5

我按照教程http://www.enigmeta.com/2012/08/16/starting-flask/開發並使用mod_wsgi將簡單的應用程序部署到Apache。我想我已經把它縮小到了我的Apache配置中的一個缺陷。如果我從命令行運行helloflask.py,它工作正常。我可以通過localhost:5000的另一個shell中的wget來訪問它,並且我得到正確的響應。我也有其他的虛擬主機(非WSGI)運行起來,所以我知道Apache正在運行,響應其他請求在端口80Hello World - Flask/Apache/mod_wsgi - Apache沒有響應

我有以下結構:

/sites/helloflask.mydomain.com 
    /helloflask 
     application.wsgi 
     helloflask.py 
     (rest of env from virtualenv) 
    /log 
     access.log 
     error.log 

helloflask.py:

from flask import Flask 
app = Flask(__name__) 

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

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

application.wsgi:

import os, sys, logging 
logging.basicConfig(stream=sys.stderr) 

PROJECT_DIR = '/sites/helloflask.mydomain.com/helloflask' 

activate_this = os.path.join(PROJECT_DIR, 'bin', 'activate_this.py') 
execfile(activate_this, dict(__file__=activate_this)) 
sys.path.append(PROJECT_DIR) 

from helloflask import app as application 

Apache的配置: /etc/apache2/sites-available/helloflask.mydomain.com

<VirtualHost *:80> 
    ServerName helloflask.mydomain.com 

    WSGIDaemonProcess helloflask user=myuser group=myuser threads=5 
    WSGIScriptAlias//sites/helloflask.mydomain.com/helloflask/application.wsgi 

    <Directory /sites/helloflask.mydomain.com/helloflask> 
    WSGIProcessGroup helloflask 
    WSGIApplicationGroup %{GLOBAL} 
    Order deny,allow 
    Allow from all 
    </Directory> 
    LogLevel warn 
    ErrorLog /sites/helloflask.mydomain.com/log/error.log 
    CustomLog /sites/helloflask.mydomain.com/log/access.log combined 
</VirtualHost> 

啓用虛擬主機,重啓apache,並沒有得到來自瀏覽器的響應。 「服務器沒有找到」,所以沒有500響應,什麼都沒有。訪問/錯誤日誌中沒有條目(特定於此虛擬主機)。我得到的總體Apache的錯誤下面我每次重啓時登錄:

[Sat Jun 29 20:07:58 2013] [notice] caught SIGTERM, shutting down 
[Sat Jun 29 20:07:59 2013] [warn] mod_wsgi: Compiled for Python/2.7.2+. 
[Sat Jun 29 20:07:59 2013] [warn] mod_wsgi: Runtime using Python/2.7.3. 
[Sat Jun 29 20:07:59 2013] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.6 with Suhosin-Patch mod_wsgi/3.3 Python/2.7.3 configured -- resuming normal operations 

我想知道如果這兩個[提醒]表示不同版本的Python的線是我的問題,但我不知道如何或者修改什麼來修復它。任何建議表示讚賞。

謝謝!

回答

5

helloflask.mydomain.com指向哪個ip?嘗試添加

127.0.0.1 helloflask.mydomain.com helloflask 

到您的主機文件,並在

http://helloflask.mydomain.com 
+0

這是它指向你的網頁瀏覽器。有趣的是,當我等待有人回覆這個問題時,我幫助了另一個有/ etc/hosts問題的人。他更明顯 - 他得到了「無路可歸」的錯誤,但仍然......我應該在這裏考慮。我不認爲這是一個問題,因爲www.mydomain.com工作正常。猜猜我需要看看DNS和子域名。謝謝! – David

+0

這不是一個dns問題,因爲它是一個Apache問題。由於ServerName指令,Apache正在尋找進入helloflask.mydomain.com的請求,但我猜測你只是使用127.0.0.1或localhost。 –