2013-06-30 29 views
5

Tôi đang làm theo hướng dẫn tại http://www.enigmeta.com/2012/08/16/starting-flask/ để phát triển và triển khai một ứng dụng bình đơn giản cho Apache bằng cách sử dụng mod_wsgi. Tôi nghĩ rằng tôi đã thu hẹp nó thành một lỗ hổng trong cấu hình Apache của tôi. Nếu tôi chạy helloflask.py từ dòng lệnh, nó hoạt động tốt. Tôi có thể truy cập nó thông qua wget từ một shell khác tại localhost: 5000, và tôi nhận được phản hồi chính xác. Tôi cũng có máy ảo khác (không wsgi) và chạy, vì vậy tôi biết Apache đang chạy và đáp ứng các yêu cầu khác trên cổng 80.Hello World - Flask/Apache/mod_wsgi - không có phản hồi từ Apache

Tôi có cấu trúc sau:

/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 

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

để kích hoạt các vhost, khởi động lại apache, và không nhận được phản hồi từ trình duyệt. "Không tìm thấy máy chủ", vì vậy không có phản hồi 500, không có gì. Không có mục nhập nào trong nhật ký truy cập/lỗi (cụ thể cho vhost này). Tôi nhận được như sau trong bao quát Apache lỗi đăng nhập mỗi khi tôi khởi động lại:

[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 

Tôi tự hỏi nếu hai [cảnh báo] dòng cho thấy phiên bản khác nhau của Python là vấn đề của tôi, nhưng tôi không biết làm thế nào hoặc những gì cần sửa đổi để sửa chữa nó. Mọi đề xuất đều được đánh giá cao.

Cảm ơn!

Trả lời

5

ip nào helloflask.mydomain.com trỏ đến? Thử thêm

127.0.0.1 helloflask.mydomain.com helloflask 

Để file host của bạn, và trỏ trình duyệt web của bạn tại

http://helloflask.mydomain.com 
+0

Đó là nó. Điều buồn cười là, trong khi tôi đang chờ ai đó trả lời câu hỏi này, tôi đã giúp một người khác gặp vấn đề/etc/hosts. Anh ta rõ ràng hơn - anh ta nhận được một lỗi "không có con đường để lưu trữ", nhưng vẫn .. Tôi đáng lẽ phải xem xét điều đó ở đây. Tôi không nghĩ rằng đó là một vấn đề bởi vì www.mydomain.com đã làm việc tốt. Đoán tôi cần phải nhìn vào DNS và tên miền phụ. Cảm ơn! – David

+0

Nó không phải là một vấn đề dns vì nó là một vấn đề Apache. Bởi vì chỉ thị ServerName, Apache đang tìm kiếm một yêu cầu đến cho helloflask.mydomain.com, nhưng tôi đoán bạn chỉ sử dụng 127.0.0.1 hoặc localhost. –