Ako nainštalovať Lighttpd s PHP a Free Let's Encrypt SSL na Debian 11


Tento návod existuje pre tieto verzie OS

  • Debian 11 (bullseye)
  • Debian 8 (Jessie)
  • Debian 7 (Wheezy)
  • Debian 6 (Squeeze)
  • Debian 5 (Lenny)
  • Debian 4 (Etch)

Na tejto stránke

  1. Predpoklady
  2. Nainštalujte Lighttpd
  3. Nainštalujte PHP a PHP-FPM
  4. Nakonfigurujte Lighttpd pre PHP-FPM
  5. Vytvorte virtuálneho hostiteľa Lighttpd
  6. Zabezpečte Lighttpd pomocou Let's Encrypt
  7. Záver

Lighttpd je jednoduchý, rýchly a bezpečný webový server. Má veľmi malú veľkosť a nevyžaduje veľa pamäte a využitia procesora, čo z neho robí jeden z najlepších serverov na hosťovanie akejkoľvek aplikácie. Je navrhnutý pre kritické prostredia. Dokáže spracovať až 10 000 pripojení paralelne na jeden server. Ponúka množstvo funkcií vrátane prepisovania URL, kompresie výstupu, mechanizmu udalostí, FastCGI, SCGI, Auth a ďalších.

V tomto návode vám ukážeme, ako nainštalovať Lighttpd pomocou PHP a Let's Encrypt SSL na Debian 11.

Predpoklady

  • Server so systémom Debian 11.
  • Platný názov domény označený adresou IP servera.
  • Na serveri je nakonfigurované heslo root.

Nainštalujte Lighttpd

Štandardne je balík Lighttpd súčasťou oficiálneho úložiska Debian 11. Môžete ho nainštalovať spustením nasledujúceho príkazu:

apt-get install lighttpd -y

Po nainštalovaní Lighttpd spustite službu Lighttpd a povoľte jej spustenie pri reštarte systému:

systemctl start lighttpd
systemctl enable lighttpd

Môžete tiež skontrolovať stav Lighttpd pomocou nasledujúceho príkazu:

systemctl status lighttpd

Získate nasledujúci výstup:

? lighttpd.service - Lighttpd Daemon
     Loaded: loaded (/lib/systemd/system/lighttpd.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-02-12 07:01:06 UTC; 12s ago
    Process: 4663 ExecStartPre=/usr/sbin/lighttpd -tt -f /etc/lighttpd/lighttpd.conf (code=exited, status=0/SUCCESS)
   Main PID: 4668 (lighttpd)
      Tasks: 1 (limit: 2341)
     Memory: 932.0K
        CPU: 226ms
     CGroup: /system.slice/lighttpd.service
             ??4668 /usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf

Feb 12 07:01:06 debian11 systemd[1]: Starting Lighttpd Daemon...
Feb 12 07:01:06 debian11 systemd[1]: Started Lighttpd Daemon.

Teraz otvorte webový prehliadač a prejdite na webovú stránku Lighttpd pomocou adresy URL http://ip-vasho-serveru. Na nasledujúcej obrazovke by ste mali vidieť testovaciu stránku Lighttpd:

Po dokončení môžete prejsť na ďalší krok.

Nainštalujte PHP a PHP-FPM

Potom spustite nasledujúci príkaz na inštaláciu balíkov PHP a PHP-FPM do vášho systému.

apt-get install php php-cgi php-fpm php-mysql -y

Po inštalácii upravte súbor php.ini a nastavte cgi.fix_pathinfo na 1

nano /etc/php/7.4/fpm/php.ini

Zmeňte nasledujúci riadok:

cgi.fix_pathinfo=1

Po dokončení uložte a zatvorte súbor.

Aby Lighttpd fungoval s PHP-FPM, budete musieť nahradiť predvolenú konfiguráciu PHP-CGI a socket PHP-FPM:

Najprv upravte konfiguračný súbor PHP-FPM:

nano /etc/php/7.4/fpm/pool.d/www.conf

Nájdite nasledujúci riadok:

listen = /run/php/php7.4-fpm.sock

A nahraďte ho nasledujúcim riadkom:

listen = 127.0.0.1:9000

Uložte a zatvorte súbor, potom reštartujte PHP-FPM, aby ste použili zmeny:

systemctl restart php7.4-fpm

Stav PHP-FPM môžete skontrolovať aj pomocou nasledujúceho príkazu:

systemctl status php7.4-fpm

Získate nasledujúci výstup:

? php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-02-12 07:04:35 UTC; 1min 7s ago
       Docs: man:php-fpm7.4(8)
    Process: 15141 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.4/fpm/pool.d/www.conf 74 (code=e>
   Main PID: 15138 (php-fpm7.4)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 2341)
     Memory: 8.8M
        CPU: 54ms
     CGroup: /system.slice/php7.4-fpm.service
             ??15138 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ??15139 php-fpm: pool www
             ??15140 php-fpm: pool www

Feb 12 07:04:35 debian11 systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
Feb 12 07:04:35 debian11 systemd[1]: Started The PHP 7.4 FastCGI Process Manager.

Po dokončení môžete prejsť na ďalší krok.

Nakonfigurujte Lighttpd pre PHP-FPM

Ďalej budete musieť upraviť konfiguračný súbor Lighttpd a zmeniť ho pomocou rýchleho CGI:

nano /etc/lighttpd/conf-available/15-fastcgi-php.conf

Nájdite nasledujúce riadky:

"bin-path" => "/usr/bin/php-cgi",
"socket" => "/var/run/lighttpd/php.socket",

A nahraďte ich nasledujúcimi riadkami:

"host" => "127.0.0.1",
"port" => "9000",

Uložte a zatvorte súbor a potom aktivujte moduly Fast CGI pomocou nasledujúcich príkazov:

lighty-enable-mod fastcgi
lighty-enable-mod fastcgi-php

Nakoniec reštartujte službu Lighttpd, aby ste použili zmeny:

systemctl restart lighttpd

Vytvorte virtuálneho hostiteľa Lighttpd

Lighttpd vám tiež umožňuje hostiť viacero webových stránok pomocou virtuálneho hostingu. Vytvorme nový konfiguračný súbor virtuálneho hostiteľa na hosťovanie webovej lokality s názvom test.example.com.

nano /etc/lighttpd/conf-available/test.conf

Pridajte nasledujúce riadky:

$HTTP["host"] == "test.example.com" {
    server.document-root = "/var/www/html/"
    server.errorlog      = "/var/log/lighttpd/example.com-error.log"
}

Uložte a zatvorte súbor a potom aktivujte virtuálneho hostiteľa pomocou nasledujúceho príkazu:

ln -s /etc/lighttpd/conf-available/test.conf /etc/lighttpd/conf-enabled/

Ďalej vytvorte súbor index.php:

nano /var/www/html/index.php

Pridajte nasledujúci riadok:

<?php
phpinfo();
?>

Uložte a zatvorte súbor a potom nastavte správne oprávnenie a vlastníctvo pomocou nasledujúceho príkazu:

chown -R www-data:www-data /var/www/html/
chmod -R 755 /var/www/html

Potom reštartujte službu Lighttpd, aby ste použili zmeny:

systemctl restart lighttpd

Teraz otvorte webový prehliadač a overte svoje webové stránky pomocou adresy URL http://test.example.com. Na nasledujúcej obrazovke by ste mali vidieť testovaciu stránku PHP:

Zabezpečte Lighttpd pomocou Let's Encrypt

Lighttpd vám tiež umožňuje zabezpečiť webovú stránku pomocou Let's Encrypt SSL. Ak to chcete urobiť, najprv nainštalujte klienta Certbot pomocou nasledujúceho príkazu:

apt-get install certbot -y

Potom spustite nasledujúci príkaz a stiahnite si Let's Encrypt SSL pre váš web:

certbot certonly --webroot -w /var/www/html/ -d test.example.com

Budete požiadaní, aby ste zadali svoju e-mailovú adresu a prijali licenčné podmienky, ako je uvedené nižšie:

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 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
Once the certificates are downloaded successfully, you should see the following output:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/test.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/test.example.com/privkey.pem
   Your cert will expire on 2022-05-11. 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

Ďalej budete musieť skombinovať certifikát aj súkromný kľúč do jedného súboru. Môžete to urobiť pomocou nasledujúceho príkazu:

cat /etc/letsencrypt/live/test.example.com/cert.pem /etc/letsencrypt/live/test.example.com/privkey.pem > /etc/letsencrypt/live/test.example.com/web.pem

Ďalej budete musieť upraviť súbor virtuálneho hostiteľa Lighttpd a definovať cestu k certifikátu Let's Encrypt SSL.

Môžete to urobiť pomocou nasledujúceho príkazu:

nano /etc/lighttpd/conf-enabled/test.conf

Zmeňte súbor, ako je uvedené nižšie:

$HTTP["host"] == "test.example.com" {
    server.document-root = "/var/www/html/"
}

$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/letsencrypt/live/test.example.com/web.pem" 
ssl.ca-file = "/etc/letsencrypt/live/test.example.com/chain.pem"
server.name = "test.example.com" 
server.document-root = "/var/www/html/"
server.errorlog = "/var/log/lighttpd/example.com_error.log"
accesslog.filename = "/var/log/lighttpd/example.com_access.log"
}

$HTTP["scheme"] == "http" {
$HTTP["host"] == "test.example.com" { 
url.redirect = ("/.*" => "https://test.example.com$0")
}
}

Uložte a zatvorte súbor. Potom reštartujte službu Lighttpd, aby ste použili zmeny konfigurácie:

systemctl restart lighttpd

Teraz môžete bezpečne pristupovať na svoj web pomocou adresy URL https://test.example.com.

Záver

Gratulujem! úspešne ste nainštalovali Lighttpd s PHP a Let's Encrypt SSL na Debian 11. Teraz môžete začať nasadzovať svoju webovú stránku pomocou webového servera Lighttpd. Ak máte nejaké otázky, neváhajte sa ma opýtať.