Pasang Caddy Web Server di Rocky/AlmaLinux 9|8
Caddy adalah platform web yang kuat, ramah pengguna, dan open source yang digunakan untuk menyajikan situs web, aplikasi, dan layanan. Caddy ditulis dalam bahasa pemrograman Go sehingga menjadikannya salah satu server web tercepat di pasar open source. Fokusnya adalah pada keamanan, kinerja, dan kemudahan penggunaan, dan dapat digunakan untuk proyek sederhana seperti situs statis sederhana atau untuk meng-host aplikasi web yang lebih kompleks.
Mengapa menggunakan Caddy Web Server
- HTTPS Otomatis: Caddy melakukan pembuatan otomatis, dan pembaruan sertifikat SSL/TLS untuk situs web Anda.
- Sederhananya: Caddy dirancang berdasarkan prinsip membuatnya sederhana. Ini menggunakan satu file konfigurasi sederhana yang mudah dibaca manusia yang disebut
Caddyfile - Performa Super: Caddy dirancang untuk menggunakan sumber daya perangkat keras seminimal mungkin sambil tetap cepat dan efisien
- Arsitektur modular: Anda dapat memperluas fungsionalitas server web Caddy menggunakan plugin dan ekstensi
- Dukungan multi-platform: Caddy dapat dijalankan di Linux, Windows, macOS, atau di dalam kontainer seperti Docker/Podman
- Komunitas besar: Caddy memiliki komunitas yang aktif dan mendukung yang siap membantu Anda saat memulai.
Pada bagian berikutnya, kami akan melihat bagaimana Anda dapat menginstal, mengonfigurasi, dan menggunakan server web Caddy di sistem Linux Rocky/AlmaLinux atau CentOS Stream. Untuk membuat tutorial ini praktis dan dinamis, kami akan meng-host situs web WordPress dengan basis data MariaDB. Untuk tutorial ini, kami menggunakan domain blog.cloudlabske.com.
Pasang server web Caddy
Untuk menginstal server web Caddy di mesin Rocky/AlmaLinux/CentOS Steam Linux, kita perlu menginstal copr di sistem kita:
sudo dnf -y install 'dnf-command(copr)'Aktifkan repositori caddy menggunakan copr:
sudo dnf copr enable @caddy/caddy
Tekan tombol y di keyboard Anda saat diminta:
Enabling a Copr repository. Please note that this repository is not part
of the main distribution, and quality may vary.
The Fedora Project does not exercise any power over the contents of
this repository beyond the rules outlined in the Copr FAQ at
<https://docs.pagure.org/copr.copr/user_documentation.html#what-i-can-build-in-copr>,
and packages are not held to any quality or security level.
Please do not file bug reports about these packages in Fedora
Bugzilla. In case of problems, contact the owner of this repository.
Do you really want to enable copr.fedorainfracloud.org/@caddy/caddy? [y/N]: y
Repository successfully enabled.Setelah repositori diaktifkan, pasang server web Caddy di sistem Anda:
sudo dnf -y install caddyAnda bisa mendapatkan paket detail tambahan menggunakan rpm atau dnf
sudo dnf info caddy
# OR
rpm -qi caddyFile konfigurasi server Caddy default terletak di /etc/caddy/Caddyfile. Anda dapat memeriksa isinya:
cat /etc/caddy/CaddyfileUntuk memulai layanan, gunakan perintah systemctl:
sudo systemctl start caddyAktifkan layanan agar dimulai saat sistem boot.
sudo systemctl enable caddyMemeriksa status layanan:
$ systemctl status caddy
● caddy.service - Caddy
Loaded: loaded (/usr/lib/systemd/system/caddy.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2024-08-02 17:43:26 UTC; 39s ago
Docs: https://caddyserver.com/docs/
Main PID: 42001 (caddy)
Tasks: 7 (limit: 48750)
Memory: 20.0M
CGroup: /system.slice/caddy.service
└─42001 /usr/bin/caddy run --environ --config /etc/caddy/Caddyfile
Aug 02 17:43:26 rocky8.computingforgeeks.com caddy[42001]: {"level":"info","ts":1722620606.719293,"msg":"adapted config to JSON","adapter":"caddyfile"}
Aug 02 17:43:26 rocky8.computingforgeeks.com caddy[42001]: {"level":"info","ts":1722620606.7204406,"logger":"admin","msg":"admin endpoint started","address":"localhost:2019","enforce_origin":false,"origins":["//localhost:2019",">
Aug 02 17:43:26 rocky8.computingforgeeks.com caddy[42001]: {"level":"warn","ts":1722620606.7205217,"logger":"http.auto_https","msg":"server is listening only on the HTTP port, so no automatic HTTPS will be applied to this server>
Aug 02 17:43:26 rocky8.computingforgeeks.com caddy[42001]: {"level":"info","ts":1722620606.7206764,"logger":"http.log","msg":"server running","name":"srv0","protocols":["h1","h2","h3"]}
Aug 02 17:43:26 rocky8.computingforgeeks.com caddy[42001]: {"level":"info","ts":1722620606.7208471,"msg":"autosaved config (load with --resume flag)","file":"/var/lib/caddy/.config/caddy/autosave.json"}
Aug 02 17:43:26 rocky8.computingforgeeks.com caddy[42001]: {"level":"info","ts":1722620606.7209103,"msg":"serving initial configuration"}
Aug 02 17:43:26 rocky8.computingforgeeks.com caddy[42001]: {"level":"info","ts":1722620606.7212656,"logger":"tls.cache.maintenance","msg":"started background certificate maintenance","cache":"0xc000488e00"}
Aug 02 17:43:26 rocky8.computingforgeeks.com systemd[1]: Started Caddy.
Aug 02 17:43:26 rocky8.computingforgeeks.com caddy[42001]: {"level":"info","ts":1722620606.7246072,"logger":"tls","msg":"cleaning storage unit","storage":"FileStorage:/var/lib/caddy/.local/share/caddy"}
Aug 02 17:43:26 rocky8.computingforgeeks.com caddy[42001]: {"level":"info","ts":1722620606.7248337,"logger":"tls","msg":"finished cleaning storage units"}Hosting WordPress menggunakan Caddy Web Server
Mari kita pasang PHP di sistem Anda.
sudo dnf -y install @phpJuga pasang ekstensi PHP lain yang diperlukan.
sudo dnf install php-{cli,fpm,mysqlnd,zip,gd,mbstring,curl,xml,pear,bcmath,json}Tetapkan pengguna caddy sebagai pemilik soket FPM.
$ sudo vim /etc/php-fpm.d/www.conf
user = caddy
group = caddy
listen = /run/php-fpm/www.sock
listen.owner = caddy
listen.group = caddy
listen.mode = 0660
listen.acl_users = apache,nginx,caddy
Mulai dan aktifkan layanan PHP FPM.
sudo systemctl enable --now php-fpmPasang server database MariaDB.
sudo dnf -y install @mariadb
sudo systemctl enable --now mariadb
sudo mysql -u rootBuat database untuk situs WordPress Anda:
CREATE DATABASE wp_db;
GRANT ALL PRIVILEGES ON wp_db.* to 'wp_user'@'localhost' IDENTIFIED BY 'DBStr%ngPassw0rd';
FLUSH PRIVILEGES;
EXITUnduh WordPress, ekstrak, dan pindahkan folder wordpress ke /var/www
wget wordpress.org/latest.tar.gz
tar xvf latest.tar.gz
sudo mv wordpress /var/www
sudo cp /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.php Konfigurasikan koneksi database WordPress
$ sudo vim /var/www/wordpress/wp-config.php
// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wp_db' );
/** Database username */
define( 'DB_USER', 'wp_user' );
/** Database password */
define( 'DB_PASSWORD', 'DBStr%ngPassw0rd' );
/** Database hostname */
define( 'DB_HOST', 'localhost' );Atur izin untuk direktori ke pengguna caddy:
sudo chown -R caddy:caddy /var/www/wordpress/Konfigurasikan Caddy untuk WordPress
Buka file konfigurasi Caddy untuk diedit
sudo vim /etc/caddy/CaddyfileUbah konfigurasi di bawah ini agar sesuai dengan lingkungan Anda. Ganti domain blog.cloudlabske.com, nama pengguna admin
blog.cloudlabske.com {
tls [email
log {
output file /var/log/caddy/wordpress.log
format console
}
root * /var/www/wordpress
encode gzip
file_server
php_fastcgi unix//run/php-fpm/www.sock
@disallowed {
path /xmlrpc.php
path *.sql
path /wp-content/uploads/*.php
}
rewrite @disallowed '/index.php'
}Buat direktori log.
sudo mkdir /var/log/caddy/
sudo chown -R caddy:caddy /var/log/caddy/Konfirmasi bahwa sintaks konfigurasi Anda valid:
$ sudo caddy validate --config /etc/caddy/Caddyfile
2024/08/03 07:25:16.349 INFO using config from file {"file": "/etc/caddy/Caddyfile"}
2024/08/03 07:25:16.351 INFO adapted config to JSON {"adapter": "caddyfile"}
2024/08/03 07:25:16.351 INFO http.auto_https 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}
2024/08/03 07:25:16.351 INFO http.auto_https enabling automatic HTTP->HTTPS redirects {"server_name": "srv0"}
2024/08/03 07:25:16.351 WARN http.auto_https server is listening only on the HTTP port, so no automatic HTTPS will be applied to this server {"server_name": "srv1", "http_port": 80}
2024/08/03 07:25:16.351 INFO tls.cache.maintenance started background certificate maintenance {"cache": "0xc000157680"}
2024/08/03 07:25:16.352 INFO tls.cache.maintenance stopped background certificate maintenance {"cache": "0xc000157680"}
Mulai ulang server web Caddy setelah Anda memastikan konfigurasi sudah benar.
sudo systemctl restart caddyPeriksa status layanan Caddy dan cari baris pembuatan SSL. Perhatikan dengan cermat keberhasilan pembuatan Let's Encrypt:
$ systemctl status caddy
● caddy.service - Caddy
Loaded: loaded (/usr/lib/systemd/system/caddy.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2024-08-03 07:23:34 UTC; 5s ago
Docs: https://caddyserver.com/docs/
Main PID: 45140 (caddy)
Tasks: 7 (limit: 48750)
Memory: 19.6M
CGroup: /system.slice/caddy.service
└─45140 /usr/bin/caddy run --environ --config /etc/caddy/Caddyfile
Aug 03 07:23:36 rocky8.cloudspinx.com caddy[45140]: {"level":"info","ts":1722669816.0895815,"logger":"tls.issuance.acme","msg":"served key authentication","identifier":"blog.cloudlabske.com","challenge":"http-01","remote">
Aug 03 07:23:36 rocky8.cloudspinx.com caddy[45140]: {"level":"info","ts":1722669816.2393315,"logger":"tls.issuance.acme","msg":"served key authentication","identifier":"blog.cloudlabske.com","challenge":"http-01","remote">
Aug 03 07:23:36 rocky8.cloudspinx.com caddy[45140]: {"level":"info","ts":1722669816.3801627,"logger":"tls.issuance.acme","msg":"served key authentication","identifier":"blog.cloudlabske.com","challenge":"http-01","remote">
Aug 03 07:23:36 rocky8.cloudspinx.com caddy[45140]: {"level":"info","ts":1722669816.7106369,"logger":"tls.issuance.acme.acme_client","msg":"authorization finalized","identifier":"blog.cloudlabske.com","authz_status":"vali>
Aug 03 07:23:36 rocky8.cloudspinx.com caddy[45140]: {"level":"info","ts":1722669816.7106667,"logger":"tls.issuance.acme.acme_client","msg":"validations succeeded; finalizing order","order":"https://acme-v02.api.letsencryp>
Aug 03 07:23:37 rocky8.cloudspinx.com caddy[45140]: {"level":"info","ts":1722669817.3649049,"logger":"tls.issuance.acme.acme_client","msg":"got renewal info","names":["blog.cloudlabske.com"],"window_start":1727765075,"win>
Aug 03 07:23:37 rocky8.cloudspinx.com caddy[45140]: {"level":"info","ts":1722669817.666609,"logger":"tls.issuance.acme.acme_client","msg":"got renewal info","names":["blog.cloudlabske.com"],"window_start":1727765075,"wind>
Aug 03 07:23:37 rocky8.cloudspinx.com caddy[45140]: {"level":"info","ts":1722669817.6666691,"logger":"tls.issuance.acme.acme_client","msg":"successfully downloaded available certificate chains","count":2,"first_url":"http>
Aug 03 07:23:37 rocky8.cloudspinx.com caddy[45140]: {"level":"info","ts":1722669817.6672106,"logger":"tls.obtain","msg":"certificate obtained successfully","identifier":"blog.cloudlabske.com","issuer":"acme-v02.api.letsen>
Aug 03 07:23:37 rocky8.cloudspinx.com caddy[45140]: {"level":"info","ts":1722669817.6673443,"logger":"tls.obtain","msg":"releasing lock","identifier":"blog.cloudlabske.com"}Akses situs WordPress di http://yourdomain dan itu seharusnya otomatis mengarahkan ke https://yourdomain
Pelajari lebih lanjut dari halaman panduan resmi Memulai.
