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!
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
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. –