Caddy webszerver telepítése Rocky/AlmaLinux 9|8 rendszerre
A Caddy egy erőteljes, felhasználóbarát és nyílt forráskódú webplatform, amelyet weboldalak, alkalmazások és szolgáltatások kiszolgálására használnak. A Caddy a Go programozási nyelven íródott, ami az egyik leggyorsabb webkiszolgálóvá teszi a nyílt forráskódú piacon. A biztonságra, a teljesítményre és a könnyű használatra összpontosít, és használható egyszerű projektekhez, például egyszerű statikus oldalakhoz, vagy összetettebb webalkalmazások hosztolásához is.
Miért érdemes a Caddy webszervert használni
- Automatikus HTTPS: A Caddy automatikusan létrehozza és megújítja a weboldalaid SSL/TLS tanúsítványait.
- Egyszerűsége: A Caddy az egyszerűség elve köré lett tervezve. Egyetlen, egyszerű, ember által olvasható konfigurációs fájlt használ, amelyet
Caddyfile-nak hívnak - Szuper teljesítmény: A Caddy úgy van kialakítva, hogy minimális hardvererőforrást használjon, miközben gyors és hatékony marad
- Moduláris architektúra: A Caddy webszerver funkcionalitását bővítmények és kiterjesztések segítségével bővítheted
- Többplatformos támogatás: A Caddy futtatható Linuxon, Windowson, macOS-en, vagy insider konténerekben, például Docker/Podman alatt
- Nagy közösség: A Caddy egy aktív és támogató közösséggel rendelkezik, amely rendelkezésre áll, hogy segítsen, amikor elkezded használni.
A következő szakaszokban megnézzük, hogyan lehet telepíteni, konfigurálni és használni a Caddy webkiszolgálót Rocky Linux/AlmaLinux vagy CentOS Stream Linux rendszereken. Annak érdekében, hogy ez a bemutató gyakorlati és dinamikus legyen, egy WordPress weboldalt fogunk üzemeltetni MariaDB adatbázissal. Ehhez a bemutatóhoz a blog.cloudlabske.com domaint használjuk.
Telepítsd a Caddy webszervert
A Caddy web szerver telepítéséhez Rocky/AlmaLinux/CentOS Steam Linux gépen, telepítenünk kell a copr-t a rendszerünkbe:
sudo dnf -y install 'dnf-command(copr)'A caddy tároló engedélyezése a copr használatával:
sudo dnf copr enable @caddy/caddy
Nyomja meg a y billentyűt a billentyűzetén, amikor a rendszer kéri:
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.Miután a tárolót engedélyezted, telepítsd a Caddy webszervert a rendszeredre:
sudo dnf -y install caddyTovábbi részletek csomagot az rpm vagy dnf segítségével szerezheted be
sudo dnf info caddy
# OR
rpm -qi caddyAz alapértelmezett Caddy szerver konfigurációs fájl a /etc/caddy/Caddyfile helyen található. Ellenőrizheti a tartalmát:
cat /etc/caddy/CaddyfileA szolgáltatás elindításához használja a systemctl parancsot:
sudo systemctl start caddyEngedélyezze a szolgáltatást a rendszerindításkor történő elindításhoz.
sudo systemctl enable caddySzolgáltatás állapotának ellenőrzése:
$ 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"}WordPress üzemeltetése Caddy webszerverrel
Telepítsük a PHP-t a rendszeredre.
sudo dnf -y install @phpTelepítse a többi szükséges PHP-bővítményt is.
sudo dnf install php-{cli,fpm,mysqlnd,zip,gd,mbstring,curl,xml,pear,bcmath,json}Állítsa be a caddy felhasználót az FPM socket tulajdonosaként.
$ 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
Indítsa el és engedélyezze a PHP FPM szolgáltatást.
sudo systemctl enable --now php-fpmTelepítse a MariaDB adatbázis-szervert.
sudo dnf -y install @mariadb
sudo systemctl enable --now mariadb
sudo mysql -u rootHozzon létre adatbázist a WordPress webhelyéhez:
CREATE DATABASE wp_db;
GRANT ALL PRIVILEGES ON wp_db.* to 'wp_user'@'localhost' IDENTIFIED BY 'DBStr%ngPassw0rd';
FLUSH PRIVILEGES;
EXITTöltsd le a WordPresst, csomagold ki, és helyezd a wordpress mappát a /var/www könyvtárba
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 WordPress adatbázis-kapcsolat beállítása
$ 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' );Állítsa be a könyvtár jogosultságait a caddy felhasználóra:
sudo chown -R caddy:caddy /var/www/wordpress/Caddy konfigurálása WordPresshez
Caddy konfigurációs fájl megnyitása szerkesztésre
sudo vim /etc/caddy/CaddyfileMódosítsa az alábbi beállításokat a saját környezetének megfelelően. Cserélje ki a domain nevet blog.cloudlabske.com-ra, valamint az admin felhasználónevet
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'
}Hozzon létre naplókönyvtárat.
sudo mkdir /var/log/caddy/
sudo chown -R caddy:caddy /var/log/caddy/Erősítse meg, hogy a konfigurációja szintaxisa érvényes:
$ 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"}
Indítsd újra a Caddy webszervert, miután megerősítetted, hogy a konfiguráció rendben van.
sudo systemctl restart caddyEllenőrizze a Caddy szolgáltatások állapotát, és keresse az SSL létrehozási sorokat. Figyeljen a sikeres Let’s Encrypt létrehozásra:
$ 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"}Látogasson el a WordPress webhelyre a http://yourdomain címen, és automatikusan át kell irányítania a https://yourdomain címre
Tudjon meg többet a Kezdő lépések hivatalos útmutató oldaláról.
