Windows Server VM'sinde web uygulaması Django Merhaba Dünya

Önemli

Klasik VM'ler 1 Mart 2023'te kullanımdan kaldırılacaktır.

ASM'den IaaS kaynaklarını kullanıyorsanız lütfen geçişinizi 1 Mart 2023'e kadar tamamlayın. Azure Resource Manager'daki birçok özellik geliştirmelerinden yararlanmak için geçişi daha erken yapmanızı öneririz.

Daha fazla bilgi için bkz. IaaS kaynaklarınızı 1 Mart 2023'e kadar Azure Resource Manager'a geçirme.

Not

Azure'da kaynak oluşturmak ve kaynaklarla çalışmak için iki farklı dağıtım modeli vardır: Azure Resource Manager ve klasik dağıtım modeli. Bu makalede klasik dağıtım modeli açıklanmaktadır. Yeni dağıtımların çoğunun Resource Manager modelini kullanmasını öneririz.

15 Kasım 2017'den itibaren sanal makineler yalnızca Azure portal kullanılabilir olacak.

Bu öğreticide, Azure Sanal Makineler'daki Windows Server'da Django tabanlı bir web sitesini barındırma adımları gösterilmektedir. Öğreticide, Azure'da önceden deneyim olmadığını varsayacağız. Öğreticiyi tamamladığınızda, bulutta çalışan Django tabanlı bir uygulamanız olabilir.

Şunları nasıl yapacağınızı öğrenin:

  • Django barındıracak bir Azure sanal makinesi ayarlayın. Bu öğreticide Windows Server için bunun nasıl yapıldığını açıklasa da, Azure'da barındırılan bir Linux VM için de aynı işlemi yapabilirsiniz.
  • Windows'da yeni bir Django uygulaması oluşturun.

Öğreticide, temel bir Merhaba Dünya web uygulamasını nasıl oluşturabileceğiniz gösterilmektedir. Uygulama bir Azure sanal makinesinde barındırılır.

Aşağıdaki ekran görüntüsünde tamamlanmış uygulama gösterilmektedir:

A browser window displays the hello world page in Azure

Not

Bu öğreticiyi tamamlamak için bir Azure hesabınızın olması gerekir. MSDN abone avantajlarınızı etkinleştirebilir veya Azure'da ücretsiz deneme sürümüne kaydolabilirsiniz.

Django barındırmak için Azure sanal makinesi oluşturma ve ayarlama

  1. Windows Server 2012 R2 Veri Merkezi dağıtımıyla bir Azure sanal makinesi oluşturmak için bkz. Azure portal Windows çalıştıran bir sanal makine oluşturma.

  2. Azure'ı web'den 80 numaralı bağlantı noktası trafiğini sanal makinedeki 80 numaralı bağlantı noktasına yönlendirecek şekilde ayarlayın:

    1. Azure portal panoya gidin ve yeni oluşturduğunuz sanal makinenizi seçin.
    2. Uç noktaları’na ve ardından Ekle’ye tıklayın.

    Add an endpoint

    1. Uç nokta ekle sayfasında Ad alanına HTTP girin. Genel ve özel TCP bağlantı noktalarını 80 olarak ayarlayın.

    Enter name and set public and private ports

    1. Tamam'a tıklayın.
  3. Panoda VM'nizi seçin. Uzak Masaüstü Protokolü'nü (RDP) kullanarak yeni oluşturulan Azure sanal makinesinde uzaktan oturum açmak için Bağlan'e tıklayın.

Önemli

Aşağıdaki yönergelerde, sanal makinede doğru şekilde oturum açtığınız varsayılır. Ayrıca yerel bilgisayarınızda değil, sanal makinede komutlar gönderdiğinizi varsayarlar.

Python, Django ve WFastCGI yükleme

Not

Internet Explorer'ı kullanarak indirmek için Internet Explorer Gelişmiş Güvenlik Yapılandırması ayarlarını yapılandırmanız gerekebilir. Bunu yapmak içinYönetim Araçlarını>Başlat>Sunucu Yöneticisi>Yerel Sunucu'ya tıklayın. IE Artırılmış Güvenlik Yapılandırması'ne tıklayın ve kapalı'yı seçin.

  1. python.org'dan Python 2.7 veya Python 3.4'ün en son sürümlerini yükleyin.

  2. pip kullanarak wfastcgi ve django paketlerini yükleyin.

    Python 2.7 için aşağıdaki komutu kullanın:

     c:\python27\scripts\pip install wfastcgi
     c:\python27\scripts\pip install django
    

    Python 3.4 için aşağıdaki komutu kullanın:

     c:\python34\scripts\pip install wfastcgi
     c:\python34\scripts\pip install django
    

FastCGI ile IIS yükleme

  • FastCGI desteğiyle Internet Information Services (IIS) yükleyin. Bu işlemin yürütülmesi birkaç dakika sürebilir.

      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
    

Yeni bir Django uygulaması oluşturma

  1. C:\inetpub\wwwroot dizininde yeni bir Django projesi oluşturmak için aşağıdaki komutu girin:

    Python 2.7 için aşağıdaki komutu kullanın:

    C:\Python27\Scripts\django-admin.exe startproject helloworld
    

    Python 3.4 için aşağıdaki komutu kullanın:

    C:\Python34\Scripts\django-admin.exe startproject helloworld
    

    The result of the New-AzureService command

  2. komutu, django-admin Django tabanlı web siteleri için temel bir yapı oluşturur:

    • helloworld\manage.pyDjango tabanlı web sitenizi barındırmaya başlamanıza ve barındırmayı durdurmanıza yardımcı olur.
    • helloworld\helloworld\settings.py, uygulamanız için Django ayarlarına sahiptir.
    • helloworld\helloworld\urls.py her URL ile görünümü arasında eşleme koduna sahiptir.
  3. C:\inetpub\wwwroot\helloworld\helloworld dizininde views.py adlı yeni bir dosya oluşturun. Bu dosyada "merhaba dünya" sayfasını işleyen görünüm vardır. Kod düzenleyicinizde aşağıdaki komutları girin:

    from django.http import HttpResponse
    def home(request):
        html = "<html><body>Hello World!</body></html>"
        return HttpResponse(html)
    
  4. urls.py dosyasının içeriğini aşağıdaki komutlarla değiştirin:

    from django.conf.urls import patterns, url
    urlpatterns = patterns('',
        url(r'^$', 'helloworld.views.home', name='home'),
    )
    

IIS'i ayarlama

  1. Genel applicationhost.config dosyasında işleyiciler bölümünün kilidini açın. Bu, web.config dosyanızın Python işleyicisini kullanmasına olanak tanır. Şu komutu ekleyin:

     %windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers
    
  2. WFastCGI'ı etkinleştirin. Bu, Python yorumlayıcı yürütülebilir dosyanıza ve wfastcgi.py betiğine başvuran genel applicationhost.config dosyasına bir uygulama ekler.

    Python 2.7'de:

     C:\python27\scripts\wfastcgi-enable
    

    Python 3.4'te:

     C:\python34\scripts\wfastcgi-enable
    
  3. C:\inetpub\wwwroot\helloworld dizininde bir web.config dosyası oluşturun. özniteliğinin scriptProcessor değeri, önceki adımdaki çıktıyla eşleşmelidir. wfastcgi ayarı hakkında daha fazla bilgi için bkz. pypi wfastcgi.

    Python 2.7'de:

     <configuration>
       <appSettings>
         <add key="WSGI_HANDLER" value="django.core.handlers.wsgi.WSGIHandler()" />
         <add key="PYTHONPATH" value="C:\inetpub\wwwroot\helloworld" />
         <add key="DJANGO_SETTINGS_MODULE" value="helloworld.settings" />
       </appSettings>
       <system.webServer>
         <handlers>
             <add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Python27\python.exe|C:\Python27\Lib\site-packages\wfastcgi.pyc" resourceType="Unspecified" />
         </handlers>
       </system.webServer>
     </configuration>
    

    Python 3.4'te:

     <configuration>
       <appSettings>
         <add key="WSGI_HANDLER" value="django.core.handlers.wsgi.WSGIHandler()" />
         <add key="PYTHONPATH" value="C:\inetpub\wwwroot\helloworld" />
         <add key="DJANGO_SETTINGS_MODULE" value="helloworld.settings" />
       </appSettings>
       <system.webServer>
         <handlers>
             <add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Python34\python.exe|C:\Python34\Lib\site-packages\wfastcgi.py" resourceType="Unspecified" />
         </handlers>
       </system.webServer>
     </configuration>
    
  4. IIS varsayılan web sitesinin konumunu Django proje klasörüne işaret eden şekilde güncelleştirin:

     %windir%\system32\inetsrv\appcmd set vdir "Default Web Site/" -physicalPath:"C:\inetpub\wwwroot\helloworld"
    
  5. Web sayfasını tarayıcınıza yükleyin.

A browser window displays the hello world page on Azure

Azure sanal makinenizi kapatma

Bu öğreticiyi tamamladığınızda, öğretici için oluşturduğunuz Azure VM'yi kapatmanızı veya kaldırmanızı öneririz. Bu, diğer öğreticiler için kaynakları serbest bırakmanızı sağlar ve Azure kullanım ücretlerinden kaçınabilirsiniz.