أخطاء WSGIServer عندما تحاول تشغيل التطبيق جانغو

StackOverflow https://stackoverflow.com/questions/800584

  •  03-07-2019
  •  | 
  •  

سؤال

أولا، وهنا مخطوطتي:

#!/usr/bin/python
import sys, os

sys.path.append('/home/username/python')
sys.path.append("/home/username/python/flup")
sys.path.append("/home/username/python/django")
# more path stuff

os.environ['DJANGO_SETTINGS_MODULE'] = "project.settings"

from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="threaded", daemonize="false")

وكما وصفت <لأ href = "http://docs.djangoproject.com/en/dev/howto/deployment/fastcgi/#running-django-on-a-shared-hosting-provider-with-apache" يختلط = "noreferrer"> هنا .

وهنا من الخطأ أن أحصل عند محاولة تشغيله من قذيفة:

WSGIServer: missing FastCGI param REQUEST_METHOD required by WSGI!
WSGIServer: missing FastCGI param SERVER_NAME required by WSGI!
WSGIServer: missing FastCGI param SERVER_PORT required by WSGI!
WSGIServer: missing FastCGI param SERVER_PROTOCOL required by WSGI!
Status: 404 NOT FOUND
Content-Type: text/html


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<!-- more html which looks to be the correct output -->

وسؤالي هو، لماذا لا تلك بارامس مرت تلقائيا من قبل FastCGI؟ ما الخطأ الذي افعله؟ تشغيل البرنامج النصي من خادم الويب الخاص بي مجرد يعطيني خطأ خادم داخلي.


وبدلا من السطرين الأخيرين من مخطوطتي، يمكنني استخدام

from flup.server.fcgi import WSGIServer
from django.core.handlers.wsgi import WSGIHandler
WSGIServer(WSGIHandler()).run()

ولكن ما زلت الحصول على نفس الخطأ بالضبط ...

هل كانت مفيدة؟

المحلول

وحلها. لم هذا الملف. هتكس خدعة، لأي سبب من الأسباب. أقسم أنني حاولت كل هذا من قبل ...

AddHandler fcgid-script .fcgi
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^(media/.*)$ - [L]
RewriteRule ^(adminmedia/.*)$ - [L]
RewriteCond %{REQUEST_URI} !(cgi-bin/myproject.fcgi)
RewriteRule ^(.*)$ cgi-bin/myproject.fcgi/$1 [L]

نصائح أخرى

والسيناريو يتوقع تلك بارامس لتمريرها كما متغيرات البيئة. لأنها ليست موجودة في البيئة قذيفة الخاص بك، والسيناريو ليست قيد التشغيل في بيئة اباتشي fastcgi (والتي توفر لهم)، فإنه يشكو.

هل لديك الوصول إلى سجلات خطأ اباتشي؟ ماذا يقولون؟

هل لدى مضيفك الدعم mod_wsgi؟ إذا كان الأمر كذلك، يمكنك استخدام معالج WSGI جانغو:

import sys
import os

base = os.path.dirname(os.path.abspath(__file__)) + '/..'
sys.path.append(base)

os.environ['DJANGO_SETTINGS_MODULE'] = 'yourproject.settings'

import django.core.handlers.wsgi

application = django.core.handlers.wsgi.WSGIHandler()

ويمكن الاطلاع على مزيد من التعليمات على modwsgi يكي ، و< وأ href = "http://docs.djangoproject.com/en/dev/howto/deployment/modwsgi/" يختلط = "نوفولو noreferrer"> جانغو مستندات .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top