2013-06-30 23 views
5

Mod_wsgi'yi kullanarak Apache'ye basit bir flask uygulaması geliştirmek ve dağıtmak için http://www.enigmeta.com/2012/08/16/starting-flask/ adresindeki eğiticiyi takip ediyorum. Sanırım Apache konfigürasyonumdaki bir bozukluğa daralttım. Komut satırından helloflask.py dosyasını çalıştırırsam, iyi çalışır. Localhost: 5000'de başka bir kabuktan wget ile erişebilirim ve doğru yanıtı alırım. Ayrıca diğer sanal konakları (non WSGI) ve çalışıyor var, bu yüzden Apache çalıştıran ve bağlantı noktasında diğer isteklere yanıt olduğunu 80.Merhaba Dünya - Flask/Apache/mod_wsgi - Apache'den yanıt yok

aşağıdaki yapıya sahiptir:

/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 konfigürasyon: /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> 

Ben, sankonu etkinleştirmek apache yeniden başlatın ve tarayıcıdan hiçbir yanıt almak. "Sunucu bulunamadı", yani 500 yanıt yok, hiçbir şey. Erişim/hata kayıtlarında giriş yok (bu sanal alana özgü). Ben her yeniden başlattığınızda oturum kapsayıcı Apache hata aşağıdaki alabilirim: Bu iki Sorunum sensin Python farklı sürümlerini gösteren çizgiler [uyarmak] eğer

[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 

merak ediyorum, ama nasıl olduğunu bilmiyorum veya düzeltmek için ne değiştirilmelidir. Herhangi bir öneri takdir edilir.

Teşekkürler!

cevap

5

helloflask.mydomain.com hangi ip noktasını işaret eder? hosts dosyanıza için

127.0.0.1 helloflask.mydomain.com helloflask 

ekleyerek ve en öyleydi

http://helloflask.mydomain.com 
+0

adresinden web tarayıcısını deneyin. Komik olan, birisinin buna cevap vermesini beklerken,/etc/hosts sorunu olan başka bir adama yardım ettim. Onun daha açıktı - o "ev sahibi bir rota" hatası alıyordu, ama yine de .. Bunu burada düşünmeliydim. Bir sorun olduğunu düşünmedim çünkü www.mydomain.com iyi çalışıyordu. Sanırım DNS ve alt alanlara bakmam lazım. Teşekkürler! – David

+0

Bir Apache sorunu olduğu kadar bir dns sorunu değildi. ServerName yönergesinden dolayı Apache, helloflask.mydomain.com için gelen bir istek arıyordu, ancak sanırım 127.0.0.1 veya localhost kullanıyordunuz. –