Cherrypy (أو غيرها من إطار الثعبان) مع FastCGI على المضيف المشترك

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

سؤال

أحاول تكوين Python Mini-Framework Cherrypy مع FastCGI (FCGID فعلا) على Apache. أنا على مضيف مشترك، لذلك ليس لدي حق الوصول إلى httpd.conf، فقط htaccess. لقد اتبعت هذه الدروس دون جدوى:

أظل الحصول على 500 أخطاء مع سجلات Apache يقول "نهاية مبكرة من رؤوس البرنامج النصي". لقد جربت كل شيء (الأذونات / shebangs / المسارات الكاملة / ميمون / غير موجود). أعرف أن Apache يقوم بتنفيذ ملفوظ .fcgi بشكل صحيح، لأنني قادر على الطباعة إلى سجل الأخطاء من Python، لكن هذا كل شيء. هل تم تثبيت أي شخص بنجاح Cherrypy أو أي إطار آخر على مضيف مشترك من قبل؟ مساعدتكم سيكون موضع تقدير كبير. شكرا.

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

المحلول 3

كانت مقالة Bluehost هي أفضل مورد، لكنني لم أقرأ الجزء المتعلق بالحصول على أحدث بقع (بداية الخطوة 3). في وقت المقالة، وحتى الآن مع إصدار Cherrypy 3.1.2، لا يمكنك القيام ب "وضع ديناميكي" FCGI (عندما يفرز Apache العملية). أكثر هنا. وبعد الوضع الديناميكي ضروري أساسا إذا كنت على مضيف مشترك.

لقد راجعت الجذع (3.2.0rc1)، وبعد القفز من خلال بعض الأطواق، حصلت عليه للعمل. تابعت الخطوة 5، الطريقة C في مقالة بلوهاوست. هنا كانت الاشياء في الرئيسية لشركة Cherryd.fcgi:

if __name__ == '__main__':
    cherrypy.config.update({
        'server.socket_port': None,
        'server.socket_host': None,
        'server.socket_file': None
    })
    start( daemonize=False, fastcgi=True, imports=["hello"])

أيضا، في Cherrypy / عملية / Servers.py، اضطررت إلى تغيير السطر التالي:

# from this
# if not hasattr(socket.socket, 'fromfd'):

# to this
if not hasattr(socket, 'fromfd'):

لذلك، من الممكن الحصول عليها للعمل، لكنه يبدو نوعا من المخربيات. يجب أن تنتظر الإصدار النهائي للإصدار 3.2.0، أو افعل ما فعلته وتحقق من Web.py.. وبعد كنت قادرا على الحصول عليها مع مضيفتي المشتركة بسهولة شديدة (تفسر مستندات fastcgi / htaccess جيدا).

نصائح أخرى

Apache + Bluehost + Fastcgi + Cherrypy + Wsgi لسوء الحظ الكثير من القطع. أتمنى لو كان لدي عام لكتابة الدليل النهائي لك، لكن للأسف. قد تكسب بعض البصيرة من قائمة البريد الطويل إلى حد ما الموضوع مما أدى إلى تلك الروابط التي نشرتها.

فكرة: تأكد من أن ملف .fcgi الخاص بك لديه مرجع إلى Python الصحيح القابل للتنفيذ في السطر الأولي:

#! / USR / بن / بيثون

اضطررت للحصول على Django يعمل مع FCGI على BlueHost و Apache باستخدام بيئة Python الخاطئة كانت مشكلتي (عملت من Shell، ولكن ليس من الويب / Apache).

بخلاف ذلك، إذا استطعت الطباعة على سجل الأخطاء من التعليمات البرمجية الخاصة بك، فيمكنك تأكيد أن يتم تنفيذ التعليمات البرمجية الخاصة بك بشكل صحيح، دون أي استثناءات، عند الوصول إلى صفحة الويب؟ (ليس عند التشغيل من قذيفة).

في ملف سجل WebServer الخاص بك، يجب أن يظهر في الواقع ما كان الإخراج هو الخلط به. هل أنت متأكد أنك تبحث في سجل الخطأ وكذلك سجل الوصول؟

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