OpenBSD-httpd Web Server dan PHP
Bismillah,
Setelah sekian lama Apache httpd saya gunakan bersama PHP sebagaimana saya tulis pada tutorial saya di sini, maka saya melihat bahwa server sangat terbenani dengan konfigurasi ini, sehingga saya memutuskan, untuk menjadikan OpenBSD-httpd Web Server untuk menjalankan program PHP. Hasilnya adalah peningkatan kinerja server, karena OpenBSD-httpd lebih ringan dan tidak banyak memakan sumber daya sistem.
Untuk membedakan dengan direktori ‘htdocs’ yang dilayani Apache httpd, saya membuat direktori baru yaitu direktori ‘pub’ di bawah /var/www.
$ ls -ld /var/www/pub
drwxr-xr-x 5 root daemon 512 Jul 22 08:07 /var/www/pub
Konfigurasi OpenBSD-httpd Web Server berada di /etc/httpd.conf, ini adalah contoh isi file tersebut:
server "latihan.muntaza.id" {
listen on * tls port 4443
root "/pub"
# Set max upload size to 513M (in bytes)
connection max request body 537919488
# Set max timeout to 600 seconds
connection request timeout 600
tls {
certificate "/etc/ssl/latihan.muntaza.id.crt"
key "/etc/ssl/private/latihan.muntaza.id.key"
}
location "/pub/*" {
directory index index.php
}
location "/.well-known/acme-challenge/*" {
root "/acme"
request strip 2
}
# First deny access to the specified files
location "/db_structure.xml" { block }
location "/.ht*" { block }
location "/README" { block }
location "/data*" { block }
location "/config*" { block }
location "*.php*" {
fastcgi socket "/run/php-fpm.sock"
}
}
Berikut penjelasan isi konfigurasi httpd.conf diatas:
server "latihan.muntaza.id" {
Nama Web Server yang digunakan
listen on * tls port 4443
Port 4443 dengan TLS di aktifkan
root "/pub"
Posisi file php berada di direktori /var/www/pub. Program PHP-FPM dan OpenBDS-httpd web server berjalan dengan kondisi di chroot ke direktori /var/www.
connection max request body 537919488
Jumlah data yang bisa di transfer dari server dalam satu koneksi, maksimal sekitar 513 MB
connection request timeout 600
Saat download file besar, diperlukan batas timeout yang cukup, disini saya contohkan 10 menit, yang mana kalau batas ini terlalu rendah, maka koneksi akan di putus oleh server saat melewati batas waktu timeout yang didefinisikan.
tls {
certificate "/etc/ssl/latihan.muntaza.id.crt"
key "/etc/ssl/private/latihan.muntaza.id.key"
}
Konfigurasi kunci publik dan kunci private untuk menjalankan TLS
location "/.well-known/acme-challenge/*" {
root "/acme"
request strip 2
}
Setting acme untuk pembuatan free SSL Certificate.
location "/db_structure.xml" { block }
location "/.ht*" { block }
location "/README" { block }
location "/data*" { block }
location "/config*" { block }
Block file-file sensitif yang mengandung ‘password’ atau konfigurasi PHP yang tidak boleh di download oleh user.
location "*.php*" {
fastcgi socket "/run/php-fpm.sock"
}
File *.php akan di layani oleh program PHP-FPM. Jalankan service PHP-FPM dan aktifkan saat booting dengan cara mengedit file /etc/rc.conf.local atau dengan perintah rcctl. Berikut ini isi file /etc/rc.conf.local saya:
httpd_flags=
pkg_scripts=php56_fpm
Sekian penjelasan saya terkait OpenBSD-httpd Web Server ini, semoga bermanfaat.
Muhammad Muntaza bin Hatta