2013-06-30 14 views
5

Podążam za tutorialem pod numerem http://www.enigmeta.com/2012/08/16/starting-flask/, aby opracować i wdrożyć prostą aplikację kolb do Apache za pomocą mod_wsgi. Myślę, że zawęziłem go do luki w mojej konfiguracji Apache. Jeśli uruchomię plik helloflask.py z wiersza poleceń, działa poprawnie. Mogę uzyskać do niego dostęp przez wget z innej powłoki na localhost: 5000, i otrzymuję poprawną odpowiedź. Mam też inne hosty wirtualne (nie WSGI) i działa, więc wiem, że Apache działa i reaguje na inne wnioski na porcie 80.Witaj świecie - Flask/Apache/mod_wsgi - brak odpowiedzi z Apache

Mam następującą strukturę:

/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 config: /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> 

ja umożliwić vhosta, restart apache i uzyskać żadnej odpowiedzi z przeglądarki. "Serwer nie został znaleziony", więc nie ma odpowiedzi 500, nic. Brak wpisów w dziennikach dostępu/błędów (specyficznych dla tego hosta). I nie pojawia się następujący błąd w Apache nadrzędnym logowania za każdym razem I Restart:

[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 

Zastanawiam się, czy te dwa [ostrzec] linie wskazujące różne wersje Pythona to mój problem, ale nie wiem jak lub co zmodyfikować, aby to naprawić. Wszelkie sugestie są mile widziane.

Dzięki!

Odpowiedz

5

Co ip robi dla helloflask.mydomain.com? Spróbuj dodać

127.0.0.1 helloflask.mydomain.com helloflask 

do pliku hosts, i wskazując przeglądarkę internetową

http://helloflask.mydomain.com 
+0

To było to. Zabawne jest to, że gdy czekałem, aż ktoś odpowie na to pytanie, pomogłem innemu facetowi z problemem/etc/hosts. Jego było bardziej oczywiste - dostał błąd "nie ma trasy do hostii", ale mimo to ... Powinienem był to rozważyć. Nie sądziłem, że to był problem, ponieważ www.mydomain.com działało dobrze. Chyba muszę spojrzeć na DNS i subdomeny. Dzięki! – David

+0

To nie było tak dużo problemów z dns, jak problem z Apaczem. Ze względu na dyrektywę ServerName Apache szukał żądania przychodzącego na stronę helloflask.mydomain.com, ale domyślam się, że używasz tylko 127.0.0.1 lub localhost. –

Powiązane problemy