2013-04-09 10 views
5

Şu anda iis 7.5 çalışan bir Windows 2008 web sunucusu var. Python 2.7.4 için PyISAPIe 1.1.0'ı başarıyla oluşturdum. Django dağıtıldı ve hızlı çalışıyor. Ama bildiğim kadarıyla PyISAPIe bir şekilde eski moda, 2010 yılında son sürümü. Ben Helicon Hayvanat Bahçesi (WebPI paketlenmiş çalışan WSGI köprüsü) ve DjangoWindowsTools (Fascgi kullanarak otomatik dağıtımı) olduğunu biliyorum. Bu yüzden tavsiyenizi sormak istiyorum: IIS'de django/python için hangi çözüm en iyisidir?IIS'de Django: PyISAPIe veya FastCGI veya WSGI veya Helicon Hayvanat Bahçesi veya DjangoWindowsTools

cevap

4

dan wfastcgi.py grap. Helicon Hayvanat Bahçesi'nin de operasyon için FastCGI protokolünü desteklediğini bilmek isteyebilirsiniz (Microsoft FCGI modülü ile ilgili değildir). Ek olarak, kuyrukluyıldız ve uzun yoklama desteği için yararlı olan TCP protokolünü destekler (Linux'ta Nginx gibi). Ayrıca, Microsoft FCGI modülünün sahip olmadığı, otomatik yük dengeleme ve uygulama ölçeklendirme, POST saldırı koruması gibi birçok ek özellik sunar. Web Platform Installer ve Helicon Zoo ile ilk yarasa dosyasını küçültebilirim. gözden geçirin: Gerekirse

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 

Bu kod aynı zamanda tam bir temiz sistemde IIS, Python, Helicon Zoo ve diğer tüm gereksinimleri yükleyebilir. Yalnızca, C'de kurulu olduğu diğer sistemlerden kopyalayabileceğiniz Web Platform Yükleyicisine ihtiyacınız olacaktır: C: \ Program Files \ Microsoft \ Web Platform Yükleyici Yükleme gerektirmez.

+0

Paylaşım için teşekkürler –

3

Başka bir araştırmadan sonra, Windows Azure sunucusunun FastCGI ve kurulumu oldukça basit olduğunu öğrendim. Daha fazla indir, yapılamaz ... Buradan görebilirsiniz http://www.windowsazure.com/en-us/develop/python/tutorials/web-app-with-django/

Otomatik yükleyici oluşturuyorum. Iis 7.5 ile Windows Server 2008 r2 üzerinde çalışıyor. Sadece sana bir çözüm buldum görebilirsiniz burada 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 
İlgili konular