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