2013-07-09 31 views
25

Tôi cố gắng để làm theo các bước trong hướng dẫn này: http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.htmlnội Server Error với Django và uWSGI

Trước khi tôi thậm chí có đến phần nginx Tôi cố gắng để đảm bảo rằng uWSGI hoạt động chính xác

thư mục của tôi cấu trúc thư mục là ngân hàng dữ liệu srv/www/miền/projectdatabank/

dự án chứa tập tin manage.py tôi

tập tin wsgi.py của tôi trông như thế này:

import os 
import sys 
from django.core.wsgi import get_wsgi_application 
application = get_wsgi_application() 

bạn có cần phải xem settings.py của mình không?

tôi nhận được lỗi sau khi tôi chỉ bản thân mình cho trình duyệt:

-- no python application found, check your startup logs for errors --- [pid: 10165|app: -1|req: -1/1] 66.56.35.151() {38 vars in 681 bytes} [Tue Jul 9 18:19:46 2013] GET /admin/ => generated 21 bytes in 0 msecs (HTTP/1.1 500) 1 headers in 57 bytes (0 switches on core 0) --- no python application found, check your startup logs for errors --- [pid: 10165|app: -1|req: -1/2] 66.56.35.151() {36 vars in 638 bytes} [Tue Jul 9 18:19:49 2013] GET/=> generated 21 bytes in 0 msecs (HTTP/1.1 500) 1 headers in 57 bytes (0 switches on core 0)

Bây giờ khi tôi kiểm tra uWGI tôi đăng nhập nó chỉ là tương tự như trên.

Trả lời

34

tôi đã giải quyết này

trong dòng lệnh ban đầu của tôi đã không bao gồm đường dẫn đầy đủ đến wsgi.py tệp để chạy uWSGI

uwsgi --http :8000 --chdir /srv/www/databankinfo.com/projectdatabank/ --wsgi-file wsgi.py 

đến số

này
uwsgi --http :8000 --chdir /srv/www/databankinfo.com/projectdatabank/ --wsgi-file full/path/wsgi.py 

và nó làm việc

9

Kiểm tra bài đăng trên blog của tôi về việc triển khai Django phía sau uwsgi http://blog.johannesklug.de/2012/11/27/deploying-django-behind-nginx-with-uwsgi-and-virtualenv/. Tôi đã tạo một Ini-File để thiết lập uwsgi, trỏ đến ứng dụng có thể gọi với tham số module=project.wsgi:application.

Toàn tập đọc một cái gì đó như thế này:

(env)[[email protected] ~]$ cat uwsgi.ini 
[uwsgi] 
# path to where you put your project code 
chdir=/home/project/project 

# python path to the wsgi module, check if you have one 
module=project.wsgi:application 

# this switch tells uwsgi to spawn a master process, 
# that will dynamically spawn new child processes for 
# server requests 
master=True 
# uwsgi stores the pid of your master process here 
pidfile=/home/project/master.pid 
vacuum=True 
# path to your virtual environment 
home=/home/project/env/ 
# path to log file 
daemonize=/home/project/log 
# this is where you need to point nginx to, 
# if you chose to put this in project home make 
# sure the home dir is readable and executable by 
# nginx 
socket=/tmp/uwsgi.sock 

### SEE UPDATE NOTICE FOR THIS ONE 
env = DJANGO_SETTINGS_MODULE=project.settings 

Xin lưu ý rằng tôi đang sử dụng virtualenv.

Bạn cũng có thể thiếu các dòng

import os 

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings") 

trong wsgi.py bạn

25

Đối với những người khác gỡ lỗi này giống nhau, có một khả năng khác: một ngoại lệ được ném bởi uwsgi.py của bạn. Để kiểm tra điều này, mở một django shell trong ứng dụng của bạn trực tiếp với python manage.py shell và nhập uwsgi.py của bạn (sử dụng cùng một đường dẫn như trong uwsgi.ini) của bạn.

+0

Vui lòng không tạo thói quen mở lại các câu hỏi hai tuổi đã có câu trả lời được chấp nhận tốt. –

+18

@AlexVanLiew hoàn toàn thích hợp để thêm nhiều thông tin hơn vào các sự cố gỡ lỗi. Các câu trả lời hiện có chỉ giải quyết một lỗi có thể xảy ra (đường dẫn). Bạn là ai để đánh giá những gì mọi người nên đóng góp cho SO? –

+0

Thông báo lỗi * được * ném bởi uwsgi, đó là "không tìm thấy ứng dụng python". Lý do duy nhất sẽ bị ném là nếu trên thực tế, không tìm thấy ứng dụng python nào. Khá nhiều lý do duy nhất cho điều đó là đường dẫn sai. Tôi khá chắc chắn rằng nếu 'uwsgi.py' ném một lỗi khi thực thi uwsgi sẽ hiển thị thông báo lỗi thay vì nói rằng nó không tìm thấy gì cả; đó là những gì mod_wsgi làm và cả hai đều có mục đích tương tự.Tôi chỉ không cảm thấy điều này thêm đủ để đảm bảo mở lại câu hỏi hai tuổi, đó là tất cả. –

Các vấn đề liên quan