9 votes

Comment expliquer l'installation de Django/Python à un débutant en Python sur un serveur IIS partagé ?

Pour des raisons indépendantes de ma volonté, notre site web est hébergé chez un fournisseur d'hébergement qui utilise IIS pour ses serveurs. Ils offrent actuellement PHP et ASP, et aussi Python et Perl par le biais de cgi-scripts.

Je veux faire un re-design, une ré-écriture de notre site web, et je veux passer de PHP à une configuration Python/Django. L'hébergeur est ouvert aux suggestions, mais il est clair que "nous ne savons pas vraiment ce qu'est Python, ni comment il fonctionne, mais si vous pouvez nous l'expliquer, nous essaierons de vous fournir ce dont vous avez besoin".

Cependant, je sais peut-être comment configurer Django dans un environnement d'hébergement partagé sur apache/mod_python, mais je n'ai aucune idée de la façon dont il serait configuré sur IIS, et certainement pas de la façon dont il serait configuré pour un environnement d'hébergement partagé. J'ai fait quelques recherches sur Google, mais la plupart des ressources que je trouve supposent que l'administrateur système 1) connaît Python/Django et 2) utilise un hébergement IIS dédié pour son site.

Quelqu'un pourrait-il m'expliquer comment expliquer le processus à mon hébergeur, ou me donner des indications sur les ressources détaillées que je peux transmettre à mon hébergeur ? N'oubliez pas que les personnes qui gèrent l'hébergement connaissent peut-être "tout" d'IIS, mais n'ont aucune idée de la façon de traiter Python.

8voto

The Robot Points 191

Si vous êtes obligé d'utiliser IIS, utilisez PyISAPIe au lieu de CGI si vous le pouvez. Les instructions et les liens pour PyISAPIe sont ci-dessous. Votre hébergeur en saura beaucoup plus sur les extensions ISAPI s'il gère IIS que sur Python, et il n'a pas besoin d'en savoir beaucoup sur Python avec PyISAPIe.

UNE BIEN MEILLEURE FAÇON DE LE FAIRE EST D'UTILISER PyISAPIe, UNE EXTENSION ISAPI . PyISAPIe est beaucoup, beaucoup plus rapide que CGI sur IIS7. Ce qu'il fait est similaire à mod_python sur Apache. La page d'accueil du projet PyISAPIe contient des instructions pour configurer Django avec WSGI sur PyISAPIe. Cela vous permettra d'atteindre des performances raisonnables pour un site Web public ou à fort trafic.

La mise en place de Django dans un environnement IIS+Python via CGI va être horriblement lente pour toute utilisation en production. Vous ne devriez jamais utiliser cette méthode pour un site Web sur lequel vous prévoyez de traiter plus d'une poignée de demandes par minute. Cela vous limite aussi sévèrement dans ce que vous pouvez mettre en mémoire cache dans le cadre de mise en cache de Django, puisque le processus de l'application Django est redémarré à chaque nouvelle requête.

Dans un serveur web sain comme Apache, lighttpd, etc., avec mod_python, l'interpréteur Python qui exécute le processus Django reste en mémoire et est initialisé avec chaque nouveau thread de travail Apache qui traite de nombreuses requêtes au fil du temps. Cela signifie que Python + Django ne sont pas quittés et redémarrés pour chaque nouvelle requête. Dans une configuration FastCGI, le serveur Web (Apache ou lighttpd par exemple) crée un socket (domaine UNIX ou TCP) par lequel il communique avec une application FastCGI (votre application Web Django) via le protocole FastCGI. Idem pour les configurations de proxy HTTP (ils parlent HTTP au lieu de FastCGI). Dans un environnement CGI, c'est l'interpréteur Python qui est appelé et qui exécute l'application Django, complètement à nouveau pour chaque requête, de sorte que l'application ne peut pas conserver en mémoire l'état des requêtes et ne peut pas mettre correctement en cache autre chose que dans une base de données.

Trêve de plaisanterie, si vous devez utiliser IIS+CGI+Django, voici comment accomplir cette horrible chose : Utilisez le code suivant pour créer votre propre CGI script qui exécute votre application Django (il fait la traduction entre CGI et WSGI). Vous devrez modifier un peu le script pour qu'il pointe vers votre application et votre code Django. C'est le script CGI auquel vous devrez passer les requêtes. Ensuite, vous devez transmettre/réécrire toutes les demandes à votre CGI script...

Sous IIS6, vous aurez besoin d'un équivalent de mod_rewrite comme IISRewrite, qui, je crois, n'est pas gratuit et est fermé. Sous IIS7, Microsoft a finalement inclus un module de réécriture d'URL. Sa documentation se trouve à l'adresse suivante aquí . Les instructions pour créer des règles de réécriture dans IIS7 sont les suivantes aquí . Vous voudrez faire suivre tout ce qui se trouve à l'URL de base cible pour être traité par votre CGI script.

0voto

Warren Blanchet Points 881

Je n'ai pas essayé avec Python, mais cela a très bien fonctionné en tant que CGI avec Perl. ActiveState's s'intègrent parfaitement à IIS. J'ai eu beaucoup de succès avec ActivePerl. Ils ont également ActivePython qui pourrait (probablement) aussi faire l'affaire ici. Ensuite, je pense que vous devriez simplement télécharger Django installez-le .

EDIT : D'accord, oublions l'intégration parfaite avec IIS... MAIS, voici un article sur l'intégration de l'IIS. comment intégrer dans IIS . Vous pouvez également envisager Python de fer comme distro pour une boîte Windows.

Pour le fournisseur, je doute qu'il ait besoin de savoir plus qu'il s'agit d'une plateforme de développement web comme ASP / ASP.NET et que Python est le langage utilisé pour développer avec elle.

En ce qui concerne l'installation que j'ai mentionnée ci-dessus, je vais l'essayer et voir comment elle se passe. Je posterai des notes à ce sujet si je réussis à la faire fonctionner correctement !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X