Kategoriler
Python

Apache Web Sunucusunda Python Flask Web Uygulaması Nasıl Çalıştırılır

Merhaba,
Daha önce Derin Öğrenme Modellerini Kullanan Bir Web Uygulamasının Geliştirilmesi yazımda Python Flask web uygulamasının oluşturulmasını anlatmıştım.

Bu yazıda, Python Flask web uygulamasını Apache Web sunucusunda nasıl çalıştıracağımızı göreceğiz.

mod_wsgi’yi Yükle ve Etkinleştir

WSGI (Web Server Gateway Interface / Web Sunucu Ağ Geçidi Arayüzü), web sunucuları ile python için web uygulamaları arasında bir arabirimdir.

mod_wsgi, Apache’nin Flask uygulamalarına hizmet etmesini sağlayan bir Apache HTTP sunucu modülüdür.

mod_wsgi’yi yüklemek için aşağıdaki komutu kullanmamız gerekiyor:

1$ sudo apt-get install libapache2-mod-wsgi python-dev

mod_wsgi’yi etkinleştirmek için aşağıdaki komutu kullanabiliriz:

1$ sudo a2enmod wsgi

Dosyalar

Şimdi Flask ortamımızı kurmaya hazırız.

1cd /var/www/

Flask ortam dizinimizi oluşturalım.

1mkdir FlaskApp

Yeni oluşturduğumuz dizine gidelim.

1cd FlaskApp

Şimdi asıl uygulama dizinini oluşturalım.

1mkdir helloworldapp

Şimdi yeni oluşturduğumuz uygulama dizinimizin içerisine gidelim.

1cd helloworldapp/

Uygulama klasörü altına static dosyalar ve html sayfalar için iki klasör daha oluşturalım.

123mkdir static mkdir templates

Örnek bir uygulama için Flask Uygulamasının ana dosyasını oluşturalım.

1nano __init__.py

__init__.py dosyasını aşağıdaki şekilde oluşturalım.

123456789101112#! /bin/usr/python from flask import Flask app = Flask(__name__) @app.route("/")def hello():return "Flask Uygulamasina Hosgeldiniz!" if __name__ == "__main__":app.run()

Virtualenv

VirtualEnv, projelerinizde gerekli olan paketleri sistemden bağımsız bir şekilde kurup, kullanmanızı sağlayacak sanal ortam sağlar.

virtualenv’i kuralım ve aktif edelim.

123$ sudo virtualenv venv $ source venv/bin/activate(venv)$

Flask Kurulumu

Install Flask:

1(venv)$ sudo pip install Flask

Sunucu Çalıştır

Uygulamamızı çalıştırıp herşeyin yolunda gittiğinden emin olalım

1(venv)$ sudo python __init__.py

Tarayıcımızdan localhost:5000/ adresine girdiğimizde “Flask Uygulamasina Hoşgeldiniz” yazısını göreceğiz.

Apache kurulumu – WSGI

Şimdi, WSGI üzerinden Apache’yi kullanarak sayfayı sunmak istiyoruz.

Apache yapılandırma dosyasını düzenleyelim.

1nano /etc/apache2/sites-available/flaskhelloworldsite.com.conf
12345678910111213141516<VirtualHost *:80>ServerName www.flaskhelloworldsite.comServerAdmin webmaster@flaskhelloworldsite.comServerAlias flaskhelloworldsite.com WSGIDaemonProcess helloworldapp user=www-data group=www-data threads=5WSGIProcessGroup helloworldappWSGIScriptAlias / /var/www/FlaskApp/helloworldapp/helloworldapp.wsgiAlias /static /var/www/FlaskApp/helloworldapp/static<Directory /var/www/FlaskApp/helloworldapp/static>Order allow,denyAllow from all</Directory>ErrorLog /var/www/flaskhelloworldsite.com/logs/error.logCustomLog /var/www/flaskhelloworldsite.com/logs/access.log combined</VirtualHost>



Suncuyu etkinleştirelim.

12$ sudo a2ensite flaskhelloworldsite.com.conf$ service apache2 reload

WSGI dosyasını düzenleyelim

1nano /var/www/FlaskApp/helloworldapp/helloworldapp.wsgi
1234#!/usr/bin/python import sys sys.path.insert(0,"/var/www/FlaskApp/")from helloworldapp import app as application


/etc/hosts dosyasını düzenleyelim

1sudo nano /etc/hosts

Aşağıdaki satırı /etc/hosts dosyasına ekleyelim:

1127.0.0.1 flaskhelloworldsite.com

Ayrıca, /var/www/flaskhelloworldsite.com/logs dizinini de oluşturmamız gerekiyor:

1$ sudo mkdir -p /var/www/flaskhelloworldsite.com/logs

Yetkilendirmesini yapalım

1$ sudo chown -R www-data:www-data flaskhelloworldsite.com

Apache Server’ı yeniden başlatalım

1$ sudo /etc/init.d/apache2 reload

Artık tarayıcımızdan alan adını flaskhelloworldsite.com adresini kontrol edebiliriz.

Not: Web uygulamanıza yaptığınız her bir .py dosyası değişikliği, service apache2 restart bu komutu çalıştırmanız gerekir.

Kaynaklar:

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir