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
- Predpoklady
- Nainštalujte Lighttpd
- Nainštalujte PHP a PHP-FPM
- Nakonfigurujte Lighttpd pre PHP-FPM
- Vytvorte virtuálneho hostiteľa Lighttpd
- Zabezpečte Lighttpd pomocou Let's Encrypt
- 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ť.