2010-01-06 15 views
1

Je suis en train de créer un site pour un client utilisant django. Il a été hébergé sur un hébergement partagé et mod_wsgi ne peut pas être utilisé. Dans la vieille année, je l'ai eu en utilisant fcgi, mais quand je suis revenu, il était cassé.Difficulté à faire fonctionner le script fcgi flip

J'ai remplacé le script fcgi avec un simple script Bonjour tout le monde:

#!/usr/bin/python 
def myapp(environ, start_response): 
    start_response('200 OK', [('Content-Type', 'text/plain')]) 
    return ['Hello World!\n'] 

try: 
    from flup.server.fcgi import WSGIServer 
    WSGIServer(myapp).run() 
except: 
    import sys, traceback 
    traceback.print_exc(file=open("errlog.txt","a")) 

a été testée et travailler sur mon serveur local, mais sur le serveur hébergé, je reçois cette erreur:

<title>FCGI Error</title> 
A timeout occured while waiting for the script output (in: /usr/www/users/mymemb/). 

Si je regarde le journal des erreurs, je vois ceci:

[Wed Jan 6 16:59:37 2010] [warn] FastCGI: (dynamic) server "/usr/www/users/mymemb/mymembers.fcgi" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 10 seconds 

[Wed Jan 6 16:59:38 2010] [warn] FastCGI: (dynamic) server "/usr/www/users/mymemb/mymembers.fcgi" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 10 seconds 

[Wed Jan 6 16:59:38 2010] [warn] FastCGI: (dynamic) server "/usr/www/users/mymemb/mymembers.fcgi" (user mymemb, gid 100) restarted (pid 1057) 

[Wed Jan 6 16:59:38 2010] [warn] FastCGI: (dynamic) server "/usr/www/users/mymemb/mymembers.fcgi" (pid 1057) terminated by calling exit with status '118' 

[Wed Jan 6 16:59:38 2010] [warn] FastCGI: (dynamic) server "/usr/www/users/mymemb/mymembers.fcgi" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 10 seconds 

[Wed Jan 6 16:59:38 2010] [warn] FastCGI: (dynamic) server "/usr/www/users/mymemb/mymembers.fcgi" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 10 seconds 

[Wed Jan 6 16:59:38 2010] [warn] FastCGI: (dynamic) server "/usr/www/users/mymemb/mymembers.fcgi" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 10 seconds 

etc ... 

Si je ssh sur le serveur, je peux exécuter le script bien, avec la sortie suivante:

[email protected]:~/public_html$ ./mymembers.fcgi 
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: 200 OK 
Content-Type: text/plain 
Content-Length: 13 

Hello World! 

Comment résoudre ce problème?

Infos complémentaires:

Il semble que le script ne fonctionne pas du tout. Si j'ajoute x en haut du script et que je l'exécute à partir de ssh, je vois que x.pyc est créé. Si je rm x.pyc et que vous cliquez sur le site, x.pyc n'est pas créé.

J'ai aussi remarqué que les erreurs ont changé de

terminated by calling exit with status '118' 

à

terminated by calling exit with status '116' 

Je voudrais pouvoir trouver une référence pour ces états de sortie.

+0

Quel serveur utilisez-vous pour exécuter mymembers.fcgi? – Tobu

+0

Debian Etch, Apache 1.3 L'URL est http://www.mymembers.co.za/ –

+1

Je suppose que mod_fastcgi est mal configuré. Veuillez poster ou coller les parties pertinentes de votre configuration apache. – Tobu

Répondre

2

Les états de sortie 116 et 118 provenaient de suexec. En lisant le source code, j'ai trouvé que ces erreurs sont causées par le fichier/dir pouvant être écrit par le groupe ou par d'autres, ce que suexec considère comme un problème de sécurité. La suppression de l'accès en écriture du groupe a résolu le problème.

0

Salut, merci! Je vais juste coller les commentaires.

  • Quel serveur utilisez-vous pour exécuter mymembers.fcgi? - Tobu
  • Debian Etch, Apache 1.3 L'URL est mymembers.co.za - Gary van der Merwe
  • Je suppose que mod_fastcgi est mal configuré. Veuillez poster ou coller les parties pertinentes de votre configuration apache. - Tobu
  • Comme c'est hébergé sur un hébergement partagé, je n'ai pas pensé à regarder la config. Regarder la config m'a aidé à trouver le problème, alors vous m'avez vraiment aidé. J'espère que je serai en mesure de vous accorder la prime. meta.stackoverflow.com/questions/35081/... - Gary van der Merwe
+0

-1: La config n'est incluse nulle part dans la question ou la réponse. Nous ne pouvons pas apprendre de cela. –

+0

Voir les autres réponses. –