Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ha az Internet Information Servicest (IIS) webkiszolgálóként használja Egy Windows-számítógépen (beleértve Windows rendszerű virtuális gépeket az Azure-on), konfigurálnia kell a Python-webalkalmazást, hogy az IIS megfelelően feldolgozhassa a Python-kódot. A konfiguráció a Python-webalkalmazás web.config fájljának beállításaival történik. Ez a cikk a szükséges beállítások konfigurálását ismerteti.
Előfeltételek
A Python telepítve van a Windowson. Webalkalmazás futtatásához először telepítse a Szükséges Python-verziót közvetlenül a Windows gazdagépre a Python-értelmezők telepítése című cikkben leírtak szerint.
- Azonosítsa a python.exe értelmező helyét. A kényelem érdekében hozzáadhatja ezt a helyet a PATH környezeti változóhoz.
A szükséges csomagok telepítve vannak. Dedikált gazdagép esetén a globális Python-környezetet használhatja az alkalmazás futtatásához a virtuális környezet helyett. Ennek megfelelően a
pip install -r requirements.txtparancs futtatásával telepítheti az alkalmazás összes követelményét a globális környezetbe.
Állítsa be a web.config-t úgy, hogy a Python-értelmezőre mutasson
A Python-alkalmazás web.config fájlja arra utasítja a Windowson futó IIS-webkiszolgálót (7-es vagy újabb verzió), hogy hogyan kezelje a Python-kérelmeket a HttpPlatformHandler (ajánlott) vagy a FastCGI használatával. A Visual Studio 2015-ös és korábbi verziói automatikusan elvégzik ezeket a módosításokat. A Visual Studio 2017-ben és újabb verzióiban manuálisan kell módosítania a web.config fájlt.
Ha a projekt még nem tartalmaz web.config fájlt, hozzáadhat egyet úgy, hogy a jobb gombbal a projektkönyvtárra kattint, kiválasztja az Új elem hozzáadása > lehetőséget, és web.config keres, vagy létrehoz egy üres web.config XML-fájlt.
1. lehetőség: A HttpPlatformHandler konfigurálása
A HttpPlatform modul közvetlenül egy különálló Python-folyamatnak továbbítja a szoftvercsatorna-kapcsolatokat. Ez az átengedés lehetővé teszi a kívánt webkiszolgálók futtatását, de ehhez helyi webkiszolgálót futtató indítási szkriptre van szükség. Ezt a megközelítést általában Python-webes keretrendszerek, például Flask vagy Django használatával lehet elvégezni. A szkriptet a <httpPlatform>web.config fájl elemében adhatja meg. A processPath attribútum a webhelybővítmény Python-értelmezőjára mutat. Az arguments attribútum a helyi webkiszolgálót futtató indítási szkriptre mutat, ebben az esetben runserver.py, valamint a megadni kívánt argumentumokra:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="PythonHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
</handlers>
<httpPlatform processPath="c:\python36-32\python.exe"
arguments="c:\home\site\wwwroot\runserver.py --port %HTTP_PLATFORM_PORT%"
stdoutLogEnabled="true"
stdoutLogFile="c:\home\LogFiles\python.log"
startupTimeLimit="60"
processesPerApplication="16">
<environmentVariables>
<environmentVariable name="SERVER_PORT" value="%HTTP_PLATFORM_PORT%" />
</environmentVariables>
</httpPlatform>
</system.webServer>
</configuration>
Ebben a példában a HTTP_PLATFORM_PORT környezeti változó azt a portot tartalmazza, amelyen a helyi kiszolgálónak figyelnie kell a localhostkapcsolatait. Ez a példa azt is bemutatja, hogyan hozhat létre egy másik környezeti változót, SERVER_PORT. Szükség szerint létrehozhat és hozzárendelhet környezeti változókat.
2. lehetőség: A FastCGI-kezelő konfigurálása
Másik lehetőségként a FastCGI-t is használhatja az alkalmazások konfigurálásához. A FastCGI egy olyan felület, amely a kérés szintjén működik. Az IIS fogadja a bejövő kapcsolatokat, és minden kérést egy vagy több állandó Python-folyamaton futó Web Server Gateway Interface (WSGI) alkalmazásnak továbbít.
Jegyzet
Bár a projektet a FastCGI használatával is beállíthatja, javasoljuk, hogy a HttpPlatformHandler használatával konfigurálja az alkalmazásokat, mert a WFastCGI projekt már nem tart fenn, és hibákat okozhat.
A FastCGI használatához először telepítse és konfigurálja a wfastcgi csomagot, ahogyan az szerepel a pypi.org/project/wfastcgi/oldalon.
Ezután módosítsa az alkalmazás web.config fájlját úgy, hogy tartalmazza a python.exe végrehajtható fájl és a wfastcgi.py fájl teljes elérési útját a PythonHandler kulcsban. A következő lépések feltételezik, hogy a Python telepítve van a c:\python36-32 mappába, és az alkalmazás kódja a c:\home\site\wwwroot mappában található. Az útvonalaknak megfelelően módosítsa ezeket az értékeket.
Módosítsa a
PythonHandleraweb.configfájlban, hogy az elérési út megfeleljen a Python telepítési helyének. További információ: IIS-konfigurációs referencia a iis.net.<system.webServer> <handlers> <add name="PythonHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="c:\python36-32\python.exe|c:\python36-32\wfastcgi.py" resourceType="Unspecified" requireAccess="Script"/> </handlers> </system.webServer>A web.config fájl
<appSettings>szakaszában adjon hozzá kulcsokat, mint például:WSGI_HANDLER,WSGI_LOG(opcionális) ésPYTHONPATH.<appSettings> <add key="PYTHONPATH" value="c:\home\site\wwwroot"/> <!-- The handler here is specific to Bottle; see the next section. --> <add key="WSGI_HANDLER" value="app.wsgi_app()"/> <add key="WSGI_LOG" value="c:\home\LogFiles\wfastcgi.log"/> </appSettings>Ezek a
<appSettings>értékek környezeti változókként érhetők el az alkalmazás számára:- A
PYTHONPATHkulcs értéke szabadon bővíthető, de tartalmaznia kell az alkalmazás gyökerét. - A
WSGI_HANDLERkulcsnak az alkalmazásból importálható WSGI-alkalmazásra kell mutatnia. - A
WSGI_LOGkulcs megadása nem kötelező, de az alkalmazás hibakereséséhez a kulcs használata javasolt.
- A
Állítsa be a
WSGI_HANDLERaweb.configfájlban a használt keretrendszernek megfelelően:Palack: Zárójelek hozzáadása a
app.wsgi_appérték után, ahogyan az ebben a példában látható. A zárójelekre azért van szükség, mert az objektum nem változó, hanem függvény. A szintaxis a app.py fájlban látható.<!-- Bottle apps only --> <add key="WSGI_HANDLER" value="app.wsgi_app()"/>Flask: Módosítsa a
WSGI_HANDLERértékét olyan<project_name>.appértékre, ahol<project_name>megegyezik a projekt nevével. A pontos azonosítótfrom <project_name> import appa runserver.py fájlban található utasítással találja meg. Ha például a projekt neve FlaskAzurePublishExample, a bejegyzés a következőképpen jelenik meg:<!-- Flask apps only: Change the project name to match your app --> <add key="WSGI_HANDLER" value="FlaskAzurePublishExample.app"/>Django: Két módosításra van szükség a Django-projektek web.config fájlban.
Módosítsa a
WSGI_HANDLERértéketdjango.core.wsgi.get_wsgi_application()értékre. Az objektum a wsgi.py fájlban található.<!-- Django apps only --> <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()"/>Közvetlenül a
WSGI_HANDLERkulcs bejegyzése után adja hozzá a következő bejegyzést. Cserélje le aDjangoAzurePublishExampleértéket a projekt nevére:<add key="DJANGO_SETTINGS_MODULE" value="django_iis_example.settings" />
Csak Django-alkalmazások: A Django-projekt settings.py fájljában adja hozzá a webhely URL-címét vagy IP-címét a
ALLOWED_HOSTSbejegyzéshez. Cserélje le az 1.2.3.4-et az ÖN URL-címére vagy IP-címére:# Change the URL or IP address to your specific site ALLOWED_HOSTS = ['1.2.3.4']Ha nem adja hozzá az URL-címet a tömb eredményeihez, a következő hibaüzenet jelenik meg:
DisallowedHost at / Invalid HTTP_HOST header: '<site URL>'. You might need to add '<site URL>' to ALLOWED_HOSTS.
Ha a tömb üres, a Django automatikusan engedélyezi 'localhost' és '127.0.0.1' gazdagépként. Ha hozzáadja a production URL-címet, ezek a gazdagép-oldalak nem lesznek automatikusan engedélyezve. Ezért érdemes lehet külön fejlesztési és éles példányokat fenntartani a settings.py fájlból, vagy környezeti változókkal szabályozni a futtatókörnyezet értékeit.
Üzembe helyezés IIS-ben vagy Windows rendszerű virtuális gépen
Ha a projektben a megfelelő web.config fájl található, közzéteheti az IIS-t futtató számítógépen a Megoldáskezelőből. Kattintson a jobb gombbal a projektre, válassza a Közzététellehetőséget, majd válassza IIS, FTP stb.. Ebben az esetben a Visual Studio csak a projektfájlokat másolja a kiszolgálóra. Az összes kiszolgálóoldali konfigurációért Ön a felelős.