Caddy adalah server web gratis, open-source, ringan, dan modern yang ditulis dalam bahasa Go. Anda dapat menggunakan Caddy sebagai server file, server dinamis, dan proxy terbalik yang dapat diskalakan. Anda dapat memperluas fungsionalitas server melalui plugin. Caddy hadir dengan berbagai fitur, beberapa di antaranya tercantum di bawah ini:
- Hosting virtual
- HTTPS otomatis melalui Let's Encrypt
- Mendukung HTTP/2
- Dapat dikembangkan dengan plugin
- Berjalan tanpa ketergantungan eksternal
Dalam posting ini, kami akan menunjukkan cara menginstal server web Caddy dengan dukungan PHP di Rocky Linux 8.
Prasyarat
- Server yang menjalankan Rocky Linux 8 di Atlantic.Net Cloud Platform
- Kata sandi root yang dikonfigurasi di server Anda
Langkah 1 – Buat Server Cloud Atlantic.Net
Pertama, masuk ke Server Cloud Atlantic.Net Anda. Buat server baru, pilih Rocky Linux 8 sebagai sistem operasi dengan RAM minimal 2GB. Hubungkan ke Server Cloud Anda melalui SSH dan masuk menggunakan kredensial yang disorot di bagian atas halaman.
Setelah Anda masuk ke server Anda, jalankan perintah berikut untuk memperbarui sistem dasar Anda dengan paket terbaru yang tersedia.
dnf update -y
Langkah 2 – Instal Server Web Caddy
dnf install 'dnf-command(copr)' dnf copr enable @caddy/caddy
Setelah repositori diaktifkan, Anda dapat menginstal server web Caddy dengan perintah berikut:
dnf install caddy -y
Setelah Caddy diinstal, verifikasi versi Caddy menggunakan perintah berikut:
caddy version
Contoh keluaran:
v2.4.6 h1:HGkGICFGvyrodcqOOclHKfvJC0qTU7vny/7FhYp9hNw=
Selanjutnya, mulai layanan Caddy dan aktifkan untuk memulai saat reboot sistem:
systemctl start caddy systemctl enable caddy
Sekarang, buka browser web Anda dan akses server web Caddy menggunakan URL http://your-server-ip . Anda akan melihat halaman pengujian Caddy pada layar berikut:
Langkah 3 – Buat Situs Baru Di Caddy
Pertama, buat struktur direktori untuk situs web baru menggunakan perintah berikut:
mkdir -p /var/www/example.com mkdir /var/log/caddy
Selanjutnya, atur kepemilikan yang tepat di situs web baru:
chown caddy:caddy /var/www/example.com chown caddy:caddy /var/log/caddy
Selanjutnya, buat halaman index.html untuk situs web baru:
nano /var/www/example.com/index.html
Tambahkan baris berikut:
<!DOCTYPE html> <html> <head> <title>Caddy Web Server</title> </head> <body> <h1>This is my first web page on Caddy!</h1> </body> </html>
Simpan dan tutup file setelah Anda selesai.
Langkah 4 – Buat File Konfigurasi Virtual Host
Selanjutnya, Anda perlu mengedit file konfigurasi Caddy untuk meng-host situs web baru. Anda dapat mengeditnya dengan perintah berikut:
nano /etc/caddy/Caddyfile
Hapus semua baris dan tambahkan baris berikut:
test.example.com:80 { root * /var/www/example.com file_server encode gzip log { output file /var/log/caddy/example.access.log } @static { file path *.ico *.css *.js *.gif *.jpg *.jpeg *.png *.svg *.woff *.pdf *.webp } header @static Cache-Control max-age=5184000 }
Simpan dan tutup file setelah Anda selesai. Selanjutnya, validasi file konfigurasi Caddy:
caddy validate --adapter caddyfile --config /etc/caddy/Caddyfile
Anda akan melihat output berikut:
2021/11/17 09:59:04.997 INFO using provided configuration {"config_file": "/etc/caddy/Caddyfile", "config_adapter": "caddyfile"} 2021/11/17 09:59:05.000 WARN input is not formatted with 'caddy fmt' {"adapter": "caddyfile", "file": "/etc/caddy/Caddyfile", "line": 27} 2021/11/17 09:59:05.000 INFO http server is listening only on the HTTPS port but has no TLS connection policies; adding one to enable TLS {"server_name": "srv0", "https_port": 443} 2021/11/17 09:59:05.001 INFO http enabling automatic HTTP->HTTPS redirects {"server_name": "srv0"} 2021/11/17 09:59:05.001 INFO tls.cache.maintenance started background certificate maintenance {"cache": "0xc00057a8c0"} 2021/11/17 09:59:05.001 INFO tls.cache.maintenance stopped background certificate maintenance {"cache": "0xc00057a8c0"} Valid configuration
Selanjutnya, restart layanan Caddy untuk menerapkan perubahan:
systemctl restart caddy
Anda juga dapat memeriksa layanan Caddy menggunakan perintah berikut:
systemctl status caddy
Anda akan mendapatkan output berikut:
● caddy.service - Caddy Loaded: loaded (/usr/lib/systemd/system/caddy.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2021-11-17 10:00:23 UTC; 4s ago Docs: https://caddyserver.com/docs/ Main PID: 20077 (caddy) Tasks: 6 (limit: 11411) Memory: 24.9M CGroup: /system.slice/caddy.service └─20077 /usr/bin/caddy run --environ --config /etc/caddy/Caddyfile Nov 17 10:00:23 rockylinux systemd[1]: Started Caddy. Nov 17 10:00:23 rockylinux caddy[20077]: {"level":"info","ts":1637143223.8054335,"logger":"tls.cache.maintenance","msg":"started background c> Nov 17 10:00:23 rockylinux caddy[20077]: {"level":"info","ts":1637143223.8054764,"logger":"tls","msg":"cleaning storage unit","description":"> Nov 17 10:00:23 rockylinux caddy[20077]: {"level":"info","ts":1637143223.8055048,"logger":"tls","msg":"finished cleaning storage units"} Nov 17 10:00:23 rockylinux caddy[20077]: {"level":"info","ts":1637143223.8060036,"logger":"tls.obtain","msg":"lock acquired","identifier":"ex> Nov 17 10:00:24 rockylinux caddy[20077]: {"level":"error","ts":1637143224.0880945,"logger":"tls.obtain","msg":"could not get certificate from> Nov 17 10:00:24 rockylinux caddy[20077]: {"level":"info","ts":1637143224.4512274,"logger":"tls.issuance.zerossl","msg":"generated EAB credent> Nov 17 10:00:25 rockylinux caddy[20077]: {"level":"info","ts":1637143225.7558215,"logger":"tls.issuance.acme","msg":"waiting on internal rate> Nov 17 10:00:25 rockylinux caddy[20077]: {"level":"info","ts":1637143225.755876,"logger":"tls.issuance.acme","msg":"done waiting on internal > Nov 17 10:00:27 rockylinux caddy[20077]: {"level":"info","ts":1637143227.8956456,"logger":"tls.issuance.acme.acme_client","msg":"trying to so
Sekarang, buka browser web Anda dan akses situs web Caddy menggunakan URL http://test.example.com . Anda akan melihat situs web Anda di layar berikut:
Langkah 5 – Aktifkan Dukungan PHP di Server Web Caddy
Pertama, Anda perlu menginstal PHP dan ekstensi lain yang diperlukan ke server Anda. Anda dapat menginstal semuanya dengan perintah berikut:
dnf install php-fpm php-cli php-gd -y
Setelah semua paket terinstal, edit file konfigurasi Caddy:
nano /etc/caddy/Caddyfile
Tentukan lokasi php_fastcgi seperti yang ditunjukkan di bawah ini:
test.example.com:80 { root * /var/www/example.com php_fastcgi unix//run/php-fpm/www.sock file_server encode gzip log { output file /var/log/caddy/example.access.log } @static { file path *.ico *.css *.js *.gif *.jpg *.jpeg *.png *.svg *.woff *.pdf *.webp } header @static Cache-Control max-age=5184000 }
Simpan dan tutup file, lalu edit file PHP-FPM:
nano /etc/php-fpm.d/www.conf
Ubah baris berikut:
user = caddy group = caddy listen.acl_users = apache,nginx,caddy
Simpan dan tutup file, lalu mulai layanan PHP-FPM dan aktifkan untuk memulai saat sistem reboot:
systemctl start php-fpm systemctl enable php-fpm
Selanjutnya, buat contoh halaman info.php:
nano /var/www/example.com/info.php
Tambahkan baris berikut:
<?php phpinfo(); ?>
Simpan dan tutup file, lalu buka browser web Anda dan akses halaman info.php menggunakan URL http://test.example.com/info.php . Anda akan mendapatkan halaman berikut:
Kesimpulan
Dalam panduan di atas, kami menjelaskan cara menginstal Caddy dengan PHP di Rocky Linux 8. Caddy adalah alternatif yang sangat baik untuk Apache dan Nginx. Anda harus mencobanya di lingkungan produksi – mulai di server pribadi virtual Anda dari Atlantic.Net!