Attualmente ho un server Web Windows 2008 con iis 7.5. Ho creato con successo PyISAPIe 1.1.0 per Python 2.7.4. Django è schierato e funziona, veloce. Ma so che PyISAPIe è in qualche modo vecchio stile, ultima versione rilasciata nel 2010. Scopro che ci sono Helicon Zoo (WebPI pacchetto in esecuzione WSGI bridge) e DjangoWindowsTools (distribuzione automatizzata con Fascgi). Quindi vorrei chiedere la tua raccomandazione: quale soluzione è la migliore per Django/Python su IIS?Django su IIS: PyISAPIe o FastCGI o WSGI o Helicon Zoo o DjangoWindowsTools
risposta
Vedo che hai trovato una soluzione. Ti piacerebbe sapere che Helicon Zoo supporta anche il protocollo FastCGI per il funzionamento (non relativo al modulo FCGI di Microsoft). Supporta inoltre il protocollo TCP (come Nginx su Linux), utile per comet e supporto per polling lungo. Inoltre offre molte funzionalità aggiuntive che il modulo Microsoft FCGI non ha, come il bilanciamento automatico del carico e il ridimensionamento delle applicazioni, la protezione da attacchi POST lenti e molti altri. Con Web Platform Installer e Helicon Zoo potrei ridurre il tuo file bat iniziale. Si prega di leggere:
rem Default settings
SET SITE_NAME=Django Site
SET SITE_PHYSIC_PATH=C:\intepub\%SITE_NAME%
SET SITE_URL=*
SET SITE_PORT=8000
SET SITE_PROTOCOL=http
SET SITE_NAME="Enter site name (%SITE_NAME%):" %=%
SET /p SITE_PHYSIC_PATH="Enter project directory, which contain manage.py (%SITE_PHYSIC_PATH%): " %=%
SET /p SITE_PROTOCOL="Enter http|https for protocol (%SITE_PROTOCOL%): " %=%
SET /p SITE_URL="Enter site url (%SITE_URL%):" %=%
IF "%SITE_URL%"=="localhost" (
SET SITE_URL="*"
)
ECHO.
ECHO Install IIS, Python, Helicon Zoo and other requirements if needed
WebpiCmd.exe /Install /Products:PythonModules /feeds:http://www.helicontech.com/zoo/feed/ /AcceptEula
ECHO.
ECHO Create IIS Site: %SITE_NAME%
md %SITE_PHYSIC_PATH%
%windir%\system32\inetsrv\appcmd add site /name:"%SITE_NAME%" /physicalPath:"%SITE_PHYSIC_PATH%" /bindings:%SITE_PROTOCOL%://%SITE_URL%:%SITE_PORT%
%windir%\system32\inetsrv\appcmd start site /site.name:"%SITE_NAME%"
ECHO.
ECHO Create Django application
echo ApplicationPath[@]%SITE_NAME%/>DjangoProject.app
WebpiCmd.exe /Install /Application:[email protected] /feeds:http://www.helicontech.com/zoo/feed/ /AcceptEula
Questo codice può anche installare IIS, Python, Zoo Helicon e tutti gli altri requisiti su un sistema pulito completo, se necessario. È necessario solo il programma di installazione della piattaforma Web, che è possibile copiare da un altro sistema su cui è installato solitamente in C: \ Programmi \ Microsoft \ Web Platform Installer Nessuna installazione richiesta.
Bene, dopo un'altra ricerca ho scoperto che il server Windows Azure utilizza FastCGI e l'installazione è piuttosto semplice. Non più download, build ... Potete vedere qui http://www.windowsazure.com/en-us/develop/python/tutorials/web-app-with-django/
Ho creato un programma di installazione automatica. Funziona su Windows seerver 2008 r2 con iOS 7.5. Basta Grap wfastcgi.py da qui http://pytools.codeplex.com/releases
@ECHO OFF
rem Check for IIS setup
IF NOT EXIST %windir%\system32\inetsrv\appcmd.exe (
ECHO Please have IIS 7.5 install first
GOTO END
)
rem Default settings
SET PYTHON_EXE="C:\Python27\python.exe"
SET PROJECT_NAME="DjangoProject"
SET SITE_NAME="%PROJECT_NAME%"
SET SITE_PHYSIC_PATH=%~dp0
SET SITE_URL="*"
SET SITE_PORT="8000"
SET SITE_PROTOCOL="http"
SET DJANGO_SETTING="%PROJECT_NAME%.settings"
rem Gathering information
ECHO IIS 7.5 Django Setup
ECHO Author: James [email protected]
ECHO ===========================================
ECHO.
SET /p PYTHON_EXE="Enter python.exe path (%PYTHON_EXE%):" %=%
SET /p PROJECT_NAME="Enter project name (%PROJECT_NAME%):" %=%
SET SITE_NAME="%PROJECT_NAME%"
SET DJANGO_SETTING="%PROJECT_NAME%.settings"
SET /p SITE_PHYSIC_PATH="Enter project directory, which contain manage.py (%SITE_PHYSIC_PATH%): " %=%
SET /p DJANGO_SETTING="Django settings module (%DJANGO_SETTING%):" %=%
SET /p SITE_NAME="Enter IIS site name (%PROJECT_NAME%):" %=%
SET /p SITE_PROTOCOL="Enter http|https for protocol (%SITE_PROTOCOL%): " %=%
SET /p SITE_URL="Enter site url (%SITE_URL%):" %=%
IF "%SITE_URL%"=="localhost" (
SET SITE_URL="*"
)
SET /p SITE_PORT="Enter port (%SITE_PORT%):" %=%
SET WFCGI_FILE="%SITE_PHYSIC_PATH%\wfastcgi.py"
IF NOT EXIST %WFCGI_FILE% (
SET /p WFCGI_FILE="Please enter full path for wfastcgi.py: " %=%
)
ECHO =====================================
ECHO Installing
ECHO Install FASTCGI for IIS. Please wait.
start /wait %windir%\System32\PkgMgr.exe /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI;IIS-CGI
ECHO.
ECHO Create IIS Site: %SITE_NAME%
%windir%\system32\inetsrv\appcmd add site /name:%SITE_NAME% /physicalPath:%SITE_PHYSIC_PATH% /bindings:%SITE_PROTOCOL%/%SITE_URL%:%SITE_PORT%:
%windir%\system32\inetsrv\appcmd start site /site.name:%SITE_NAME%
ECHO.
ECHO Setup Python FastCGI Handler
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI "/+[fullPath='%PYTHON_EXE%', arguments='%WFCGI_FILE%']"
ECHO.
ECHO Register the handler for this site
%windir%\system32\inetsrv\appcmd set config "%SITE_NAME%" /section:system.webServer/handlers "/+[name='Python_via_FastCGI',path='*',verb='*',modules='FastCgiModule',scriptProcessor='%PYTHON_EXE%|%WFCGI_FILE%',resourceType='Unspecified']" /commit:site
ECHO.
ECHO Configure the handler to run your Django application
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PYTHON_EXE%', arguments='%WFCGI_FILE%'].environmentVariables.[name='DJANGO_SETTINGS_MODULE',value='k6ecommerce.settings']" /commit:apphost
ECHO.
ECHO Configure PYTHONPATH so your Django app can be found by the Python interpreter
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PYTHON_EXE%', arguments='%WFCGI_FILE%'].environmentVariables.[name='PYTHONPATH',value='%SITE_PHYSIC_PATH%']" /commit:apphost
ECHO.
ECHO Tell the FastCGI to WSGI gateway which WSGI handler to use:
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PYTHON_EXE%', arguments='%WFCGI_FILE%'].environmentVariables.[name='WSGI_HANDLER',value='django.core.handlers.wsgi.WSGIHandler()']" /commit:apphost
ECHO.
ECHO Restart IIS
iisreset
ECHO Done...
:END
- 1. IIS Express o Cassini
- 2. Filtri Django - o?
- 3. django aggregate o annotazione
- 4. Django: estende o include?
- 5. Come utilizzare zoo o xts con grandi dati?
- 6. Rileva cellulare, tablet o desktop su Django
- 7. Configurazione di Django su IIS
- 8. Scopri come PHP è in esecuzione sul server (CGI O fastCGI O mod_php)
- 9. Google App Engine o Django?
- 10. Django: vps o hosting condiviso?
- 11. Verificare se IIS è installato o no?
- 12. Django o RoR come comuni web framework Java o ASP
- 13. Devo usare google-app-engine-django o app-engine-patch o nessuno dei due o qualcos'altro?
- 14. Convalida O O Richiesto
- 15. Utf8_general_ci o utf8mb4 o ...?
- 16. Indy o ICS o?
- 17. Templating con Javascript o Django?
- 18. setTimeout o setInterval o requestAnimationFrame
- 19. override Django Ottieni o crea
- 20. MVC o Riposo o Entrambi
- 21. Sedano o beanstalkd o entrambi?
- 22. mod_fcgid: FastCGI multi-threading ora o in un futuro pianificato?
- 23. Filtro personalizzato in Django Admin su Django 1.3 o inferiore
- 24. ElasticSearch o Couchbase o qualcos'altro
- 25. Service o Thread o AsyncTask
- 26. MVC4 ViewBag o ViewModel o?
- 27. Informazioni su Big O
- 28. nginx + FastCGI per l'applicazione django --- esegui due server web o uno?
- 29. Dovrei considerare memmove() O (n) o O (1)?
- 30. Il bit sta spostando O (1) o O (n)?
Grazie per aver condiviso –