Mengaktifkan Modul Python WSGI untuk Apache di Server FreeBSD
Paket modul mod_wsgi menyediakan modul Apache yang mudah digunakan untuk menghosting aplikasi web berbasis Python dengan dukungan WSGI Python. Modul ini cocok untuk menghosting situs web berkinerja tinggi serta dapat digunakan untuk situs web pribadi atau blog yang di host secara mandiri pada layanan web hosting.
mod_wsgi adalah modul Apache HTTP Server yang menyematkan aplikasi Python di dalam server dan memungkinkannya berkomunikasi melalui antarmuka WSGI Python, sebagaimana didefinisikan dalam Python PEP 333. WSGI merupakan salah satu cara bagi Python untuk menghasilkan aplikasi web berkualitas tinggi dan berkinerja tinggi.
WSGI menyediakan cara standar untuk menghubungkan berbagai aplikasi web secara mulus. Beberapa aplikasi atau framework Python yang populer mendukung WSGI untuk mempermudah penerapan dan penyematannya.
Hal ini memungkinkan kita, misalnya, untuk menyematkan blog pribadi berbasis Django dan proyek Trac ke dalam satu aplikasi Pythons, lalu membungkusnya untuk menangani aspek tertentu, seperti autentikasi tanpa harus mengubah aplikasi aslinya.
WSGI (Web Server Gateway Interface) adalah metode sederhana bagi server web untuk meneruskan permintaan ke aplikasi web atau framework yang ditulis dalam bahasa Python. WSGI merupakan spesifikasi yang menjelaskan bagaimana server web berkomunikasi dengan aplikasi web. Mod_wsgi adalah modul Apache yang digunakan untuk menjalankan skrip Python melalui protokol HTTP.
mod_wsgi adalah modul Apache HTTP Server buatan Graham Dumpleton yang menyediakan antarmuka yang kompatibel dengan WSGI untuk menghosting aplikasi web berbasis Python di Apache. Sejak versi 4.5.3, mod_wsgi mendukung Python versi 2 dan 3 (mulai dari versi 2.6 dan 3.2). Modul ini merupakan alternatif bagi solusi mod_python, CGI, dan FastCGI dalam mengintegrasikan Python dengan web. mod_wsgi pertama kali tersedia pada tahun 2007.
Artikel ini akan memandu Anda dalam menginstal modul Apache mod_wsgi pada sistem FreeBSD. Kami juga akan menjelaskan cara membuat file Python dan menjalankannya pada server web Apache24.
1. Proses Instalasi mod_wsgi di FreeBSD
Untuk menjalankan mod_wsgi pada server web Apache24, kita perlu menginstalnya terlebih dahulu. Di FreeBSD, terdapat dua cara untuk menginstal mod_wsgi. Dalam artikel ini, kita akan menginstal mod_wsgi menggunakan sistem ports di FreeBSD.
Implementasi mod_wsgi dalam artikel ini menggunakan FreeBSD 13.2 yang telah memiliki Apache24, Python39, PHP8, serta berbagai modul dan ekstensi terinstal. Modul PHP lain yang perlu Anda instal untuk menjalankan mod_wsgi adalah PHP_FPM.
Berikut adalah cara menginstal mod_wsgi pada sistem FreeBSD.
root@ns1:~ # cd /usr/ports/www/mod_wsgi4
root@ns1:/usr/ports/www/mod_wsgi4 # make install clean
Setelah proses instalasi selesai, mod_wsgi tidak langsung aktif. Kita perlu mengaktifkan modul wsgi pada server web Apache24.
2. Mengaktifkan mod_wsgi pada Apache24
Pada server web, modul wsgi dapat ditempatkan di dalam berkas httpd.conf atau dibuat secara terpisah di dalam folder /usr/local/etc/apache24/modules.d. Dalam artikel ini, kita akan membuat berkas terpisah untuk modul wsgi.
Langkah pertama adalah membuat berkas wsgi bernama "270_mod_wsgi.conf" dan menempatkannya di dalam folder /usr/local/etc/apache24/modules.d. Berkas "270_mod_wsgi.conf" tersebut berisi skrip modul untuk mengaktifkan mod_wsgi pada server web Apache24.
Berikut adalah cara membuat berkas /usr/local/etc/apache24/modules.d/270_mod_wsgi.conf dan memasukkan skrip ke dalamnya, seperti pada contoh di bawah ini.
root@ns1:~ # touch /usr/local/etc/apache24/modules.d/270_mod_wsgi.conf
root@ns1:~ # ee /usr/local/etc/apache24/modules.d/270_mod_wsgi.conf
LoadModule wsgi_module libexec/apache24/mod_wsgi.so
Skrip pertama pada perintah di atas membuat file "270_mod_wsgi.conf", dan skrip kedua menyertakan wsgi_module ke dalam file "270_mod_wsgi.conf" tersebut.
Selanjutnya, kita membuat folder /usr/local/www/apache24/wsgi.
root@ns1:~ # mkdir -p /usr/local/www/apache24/wsgi
Setelah itu, anda berikan hak akses pengguna dan grup www:www pada folder tersebut.
root@ns1:~ # chown -R www:www /usr/local/www/apache24/wsgi
Setelah itu, kita mengedit file /usr/local/etc/apache24/httpd.conf dan memasukkan skrip di bawah ini.
root@ns1:~ # ee /usr/local/etc/apache24/httpd.conf
<Directory /usr/local/www/apache24/wsgi/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
Options +ExecCGI
SetHandler wsgi-script
</Directory>
Alias /wsgi "/usr/local/www/apache24/wsgi/"
Skrip di atas dapat ditempatkan di bagian paling bawah file /usr/local/etc/apache24/httpd.conf.
3. Menjalankan mod_wsgi pada Apache24
Setelah semuanya dikonfigurasi dengan benar, saatnya menguji atau menjalankan mod_wsgi untuk memastikan modul tersebut berfungsi pada server web Apache24. Untuk mempermudah pengujian, kita akan membuat file Python bernama "/usr/local/www/apache24/wsgi/sample.py". Berikut adalah cara membuatnya.
root@ns1:~ # touch /usr/local/www/apache24/wsgi/sample.py
root@ns1:~ # chown -R www:www /usr/local/www/apache24/wsgi/sample.py
root@ns1:~ # chmod -R 777 /usr/local/www/apache24/wsgi/sample.py
Di dalam file Python /usr/local/www/apache24/wsgi/sample.py, kita memasukkan skrip berikut.
root@ns1:~ # ee /usr/local/www/apache24/wsgi/sample.py
def application(environ, start_response):
status = '200 OK'
output = b'Selamat! Anda Telah Berhasil Menjalankan Modul wsgi Pada Web Server Apache24.'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
Setelah file Python "/usr/local/www/apache24/wsgi/sample.py" berhasil dibuat, kita memulai ulang Apache24 agar modul wsgi dapat dimuat.
root@ns1:~ # service apache24 restart
Selanjutnya, buka peramban web Google Chrome, Yandex, atau Firefox Anda. Pada bilah alamat, ketik http://192.168.5.2/wsgi/sample.py dan lihat hasilnya.
Jika peramban Google Chrome Anda menampilkan pesan "Congratulations! You have successfully run the wsgi module on the Apache24 web server," berarti Anda telah berhasil menjalankan modul WSGI pada server web Apache24.
WSGI merupakan pengembangan dari CGI. Dalam artikel ini, kami akan memperkenalkan implementasi WSGI menggunakan Python dan modul mod_wsgi pada Apache24. Anda juga dapat mengimplementasikan modul WSGI bersama dengan Django untuk membuat blog, baik berskala besar maupun kecil.
