Ich befolge das Tutorial um http://www.enigmeta.com/2012/08/16/starting-flask/ zu entwickeln und eine einfache Flask-App Apache mit mod_wsgi zu implementieren. Ich denke, ich habe es auf einen Fehler in meiner Apache-Konfiguration beschränkt. Wenn ich helloflask.py über die Befehlszeile ausführen, funktioniert es einwandfrei. Ich kann es über wget von einer anderen Shell auf localhost: 5000 zugreifen, und ich bekomme die richtige Antwort. Ich habe auch andere virtuelle Hosts (nicht wsgi) und läuft, damit ich weiß, Apache läuft und auf andere Anforderungen auf Port reagiert 80.Hallo Welt - Flask/Apache/mod_wsgi - keine Antwort von Apache
Ich habe die folgende 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>
I ermöglichen die vhost, Apache neu zu starten, und keine Antwort vom Browser erhalten. "Server nicht gefunden", also keine 500 Antwort, nichts. Keine Einträge in den Zugriffs-/Fehlerprotokollen (spezifisch für diesen vhost). Ich erhalte log die folgenden in dem übergeordneten Apache Fehler jedes Mal, wenn ich neu starten:
[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
Ich frage mich, wenn die beiden [warnen] Linien, die verschiedene Versionen von Python sind mein Problem, aber ich weiß nicht, wie oder was zu ändern, um es zu beheben. Irgendwelche Vorschläge werden geschätzt.
Danke!
das ist es. Die lustige Sache ist, während ich darauf wartete, dass jemand darauf antwortete, half ich einem anderen Typen mit einem/etc/hosts-Problem. Seine war mehr offensichtlich - er bekam einen "no route to host" Fehler, aber immer noch .. ich hätte das hier berücksichtigt. Ich glaube nicht, dass es ein Problem war, weil www.mydomain.com gut funktionierte. Ich denke, ich muss DNS und Subdomains betrachten. Vielen Dank! – David
Es war nicht so sehr ein DNS-Problem als ein Apache-Problem. Wegen der Anweisung ServerName suchte Apache nach einer Anfrage, die für helloflask.mydomain.com einging, aber ich nehme an, dass Sie nur 127.0.0.1 oder localhost verwendet haben. –