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.

1
cd
/var/www/

Flask ortam dizinimizi oluşturalım.

1
mkdir FlaskApp

Yeni oluşturduğumuz dizine gidelim.

1
cd
FlaskApp

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

1
mkdir
helloworldapp

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

1
cd
helloworldapp/

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

123
mkdir
static
 
mkdir
templates

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

1
nano __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.

1
nano
/etc/apache2/sites-available/flaskhelloworldsite
.com.conf
12345678910111213141516
<VirtualHost *:80>
ServerName www.flaskhelloworldsite.com
ServerAdmin webmaster@flaskhelloworldsite.com
ServerAlias flaskhelloworldsite.com
 
WSGIDaemonProcess helloworldapp user=www-data group=www-data threads=5
WSGIProcessGroup helloworldapp
WSGIScriptAlias / /var/www/FlaskApp/helloworldapp/helloworldapp.wsgi
Alias /static /var/www/FlaskApp/helloworldapp/static
<Directory /var/www/FlaskApp/helloworldapp/static>
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/www/flaskhelloworldsite.com/logs/error.log
CustomLog /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

1
nano
/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

1
sudo
nano
/etc/hosts

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

1
127.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