Weboldal keresés

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 caddy

További részletek csomagot az rpm vagy dnf segítségével szerezheted be

sudo dnf info caddy
# OR
rpm -qi caddy

Az alapértelmezett Caddy szerver konfigurációs fájl a /etc/caddy/Caddyfile helyen található. Ellenőrizheti a tartalmát:

cat /etc/caddy/Caddyfile

A szolgáltatás elindításához használja a systemctl parancsot:

sudo systemctl start caddy

Engedélyezze a szolgáltatást a rendszerindításkor történő elindításhoz.

sudo systemctl enable caddy

Szolgá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 @php

Telepí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-fpm

Telepítse a MariaDB adatbázis-szervert.

sudo dnf -y install @mariadb
sudo systemctl enable --now mariadb
sudo mysql -u root

Hozzon 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;
EXIT

Tö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/Caddyfile

Mó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 caddy

Ellenő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.