Lighttpd adalah web server free, open-source, serta berkecepatan tinggi yang dirancang khusus untuk lingkungan yang kritis akan kecepatan. Lighttpd membutuhkan jejak memori yang lebih rendah dibandingkan dengan web server lain, seperti Apache dan Nginx, Lighttpd terkenal akan kecepatannya untuk menjalankan aplikasi AJAX.
Lighttpd juga memungkinkan kita untuk meng-host aplikasi web yang ditulis dalam bahasa pemrograman lain menggunakan interface FastCGI, SCGI dan CGI. Lighttpd adalah pilihan terbaik untuk pengguna yang lebih mementingkan kecepatan daripada performa. Terutama untuk web server yang minim akan sumber daya atau hanya menangani sedikit pemrosesan.
Dalam tutorial ini, kita akan belajar cara menginstal Lighttpd pada Debian 10 dengan dukungan PHP-FPM dan MariaDB. Untuk mengamankan lalu lintas ke web server, kita juga akan mengkonfigurasi sertifikat SSL Let’s Encrypt.
Persyaratan
- Server yang menjalankan Debian 10.
- Kata sandi root diatur ke server Anda.
example.com
. Ganti example.com di semua nama file dan pengaturan konfigurasi dengan nama domain Anda sendiri.Langkah Awal
Sebelum memulai, Anda perlu memperbarui sistem dengan versi terbaru. Anda dapat melakukan ini dengan menjalankan perintah berikut:
apt-get update && apt-get upgrade -y
Setelah server diperbarui, restart server untuk menerapkan perubahan dan meminimalisir kesalahan.
Instal Lighttpd
Secara default, Lighttpd tersedia di repositori default Debian 10. Anda dapat menginstalnya dengan hanya menjalankan perintah berikut:
apt-get install lighttpd -y
Setelah instalasi selesai, mulai layanan Lighttpd dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:
systemctl start lighttpd systemctl enable lighttpd
Periksa status Lighttpd dengan perintah berikut:
systemctl status lighttpd
Anda akan mendapatkan output berikut:
? lighttpd.service - Lighttpd Daemon
Loaded: loaded (/lib/systemd/system/lighttpd.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2019-09-06 02:09:35 EDT; 29s ago
Main PID: 4445 (lighttpd)
Tasks: 1 (limit: 1138)
Memory: 1.4M
CGroup: /system.slice/lighttpd.service
??4445 /usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf
Sep 06 02:09:35 debian systemd[1]: Starting Lighttpd Daemon...
Sep 06 02:09:35 debian systemd[1]: Started Lighttpd Daemon.
Sep 06 02:09:36 debian systemd[1]: /lib/systemd/system/lighttpd.service:6: PIDFile= references path below legacy directory /var/run/, updating
lines 1-12/12 (END)
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Instal MariaDB Server
Anda dapat menginstal server MariaDB dengan menjalankan perintah berikut:
apt-get install mariadb-server mariadb-client -y
Setelah diinstal, Anda harus mengamankan instalasi MariaDB. Anda dapat mengamankannya dengan menjalankan skrip berikut:
mysql_secure_installation
Answer all the questions as shown below: Change the root password? [Y/n] n Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Instal PHP dan PHP-FPM
Selanjutnya, Anda perlu menginstal PHP, PHP-FPM, dan FastCGI ke sistem Anda. Secara default, Debian 10 dikirimkan dengan PHP versi 7.3. Anda dapat menginstalnya dengan hanya menjalankan perintah berikut:
apt-get install php php-cgi php-fpm php-mysql -y
Setelah semua paket diinstal, Anda perlu mengedit file php.ini dan mengatur cgi.fix_pathinfo
ke 1. Anda dapat melakukannya dengan perintah berikut:
nano /etc/php/7.3/fpm/php.ini
Ubah baris berikut:
cgi.fix_pathinfo=1
Simpan dan tutup file setelah selesai.
Secara default, PHP menunjuk ke UNIX soket /var/run/php/php7.3-fpm.sock
. Jadi, Anda perlu mengkonfigurasi PHP-FPM pool untuk mengatur PHP untuk listens pada TCP socket.
Anda dapat melakukan ini dengan mengedit file /etc/php/7.3/fpm/pool.d/www.conf
:
nano /etc/php/7.3/fpm/pool.d/www.conf
Temukan baris berikut:
listen = /run/php/php7.3-fpm.sock
Ganti baris berikut
listen = 127.0.0.1:9000
Simpan dan tutup file setelah selesai. Kemudian, restart layanan PHP-FPM untuk menerapkan perubahan konfigurasi:
systemctl restart php7.3-fpm
Selanjutnya, kita perlu memodifikasi file 15-fastcgi-php.conf
:
nano /etc/lighttpd/conf-available/15-fastcgi-php.conf
Temukan baris berikut:
"bin-path" => "/usr/bin/php-cgi", "socket" => "/var/run/lighttpd/php.socket",
Dan gantilah dengan yang berikut ini:
"host" => "127.0.0.1", "port" => "9000",
Simpan dan tutup file setelah selesai. Kemudian, aktifkan modul FastCGI dan FastCGI-PHP dengan perintah berikut:
lighty-enable-mod fastcgi lighty-enable-mod fastcgi-php
Terakhir, restart layanan Lighttpd untuk menerapkan perubahan:
systemctl restart lighttpd
Buat Lighttpd Virtual Host
Selanjutnya, Anda perlu membuat file virtual host baru untuk menguji PHP dengan Lighttpd. Anda dapat membuatnya dengan perintah berikut:
nano /etc/lighttpd/conf-available/example.com.conf
Tambahkan baris berikut:
$HTTP["host"] == "www.example.com" { server.document-root = "/var/www/html/" server.errorlog = "/var/log/lighttpd/example.com-error.log" }
Simpan dan tutup file setelah selesai. Kemudian, aktifkan Virtual host dengan perintah berikut:
ln -s /etc/lighttpd/conf-available/example.com.conf /etc/lighttpd/conf-enabled/
Selanjutnya, buat file sample index.php
di direktori root dokumen Lighttpd dengan perintah berikut:
nano /var/www/html/index.php
Tambahkan baris berikut:
<?php phpinfo(); ?>
Simpan dan tutup file. Kemudian, ubah kepemilikan direktori root dokumen Lighttpd ke www-data
dengan perintah berikut:
chown -R www-data:www-data /var/www/html/
Terakhir, restart layanan Lighttpd untuk menerapkan semua perubahan konfigurasi:
systemctl restart lighttpd
Amankan Lighttpd dengan Let’s Encrypt
Pertama, instal Certbot tool untuk mengamankan web server dengan Let’s Encrypt. Secara default, versi terbaru Certbot tidak tersedia di repositori default Debian 10.
Anda dapat menambahkan repositori Certbot dengan perintah berikut:
apt-get install software-properties-common add-apt-repository ppa:certbot/certbot
Selanjutnya, perbarui repositori dan instal Certbot dengan perintah berikut:
apt-get update -y apt-get install certbot -y
Selanjutnya, buat sertifikat Let’s Encrypt dengan perintah berikut:
certbot certonly --webroot -w /var/www/html/ -d www.example.com
Anda akan diminta untuk memberikan alamat email dan menerima ketentuan lisensi seperti yang ditunjukkan di bawah ini:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator webroot, Installer None Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y
Setelah sertifikat berhasil diunduh, Anda akan melihat output berikut:
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2019-12-06. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Selanjutnya, Anda harus menggabungkan sertifikat dan private key dalam satu file. Anda dapat melakukannya dengan perintah berikut:
cat /etc/letsencrypt/live/example.com/cert.pem /etc/letsencrypt/live/example.com/privkey.pem > /etc/letsencrypt/live/example.com/web.pem
Selanjutnya, Anda perlu mengedit file virtual host Lighttpd dan menentukan jalur Let’s Encrypt.
Anda dapat melakukannya dengan perintah berikut:
nano /etc/lighttpd/conf-enabled/example.com.conf
Ubah file seperti yang ditunjukkan di bawah ini:
$HTTP["host"] == "www.example.com" { server.document-root = "/var/www/html/" } $SERVER["socket"] == ":443" { ssl.engine = "enable" ssl.pemfile = "/etc/letsencrypt/live/example.com/web.pem" # Combined Certificate ssl.ca-file = "/etc/letsencrypt/live/example.com/chain.pem" # Root CA server.name = "www.example.com" # Domain Name OR Virtual Host Name server.document-root = "/var/www/html/" # Document Root server.errorlog = "/var/log/lighttpd/example.com_error.log" accesslog.filename = "/var/log/lighttpd/example.com_access.log" } $HTTP["scheme"] == "http" { $HTTP["host"] == "www.example.com" { # HTTP URL url.redirect = ("/.*" => "https://www.example.com$0") # Redirection HTTPS URL } }
Simpan dan tutup file. Kemudian restart layanan Lighttpd untuk menerapkan perubahan konfigurasi:
systemctl restart lighttpd
Akses Web Interface Lighttpd
Lighttpd telah diinstal dan dikonfigurasi dengan dukungan PHP dan PHP-FPM. Sekarang, saatnya untuk mengujinya.
Buka web browser dan ketik URL https://www.example.com. Anda akan diarahkan ke halaman berikut:
Halaman di atas menunjukkan bahwa PHP dan FastCGI telah berfungsi dengan baik.
Kesimpulan
Pada poin ini, instal dan konfigurasi server web Lighttpd dengan dukungan PHP-FPM dan FastCGI di Debian 10 telah berhasil. Sekarang Anda dapat meng-host aplikasi web server dengan mudah. Untuk informasi lebih lanjut, kunjungi halaman dokumentasi resmi Lighttpd di Lighttpd Doc.