Установка Lighttpd на Debian

Сегодня существует несколько веб-серверов для использования. К ним относятся Apache, Nginx, Litespeed, Apache Tomcat, caddy, Jetty, Hiawatha и т. д. Все эти веб-серверы работают для достижения общей цели. Веб-сервер работает, принимая HTTP-запросы от браузера, находит запрошенный документ и отправляет его обратно в браузер. Если запрошенный документ не найден, веб-сервер возвращает ответ 404.

Lighttpd — это бесплатный веб-сервер с открытым исходным кодом, оптимизированный для сред, критичных к скорости. Его безопасность, гибкость и низкие требования к памяти делают его более популярным. С Lighttpd вы можете легко размещать веб-приложения, написанные на разных языках программирования, используя интерфейсы FastCGI, SCGI и CGI. Другими функциями, связанными с Lighttpd, являются перезапись URL-адресов, сжатие вывода, механизм событий, аутентификация и т. д.

В этом руководстве представлены необходимые шаги для настройки веб-сервера Lighttpd в Debian 11/10 с PHP и SSL.

Обновим систему
Выполняем:
sudo apt-get update
sudo apt-get full-upgrade

Установим lighttpd
Пакет Lighttpd предоставляется в репозиториях Debian по умолчанию. Это упрощает его установку и настройку.

Приведенную ниже команду можно использовать для установки Lighttpd в Debian 11/10.
sudo apt-get install lighttpd -y

После завершения установки запустите и включите службу.
sudo systemctl start lighttpd
sudo systemctl enable lighttpd

Вот оно! Веб-сервер Lighttpd установлен и готов к настройке.

Установите PHP и PHP-FPM
Нам нужно установить PHP, PHP-FPM и FastCGI на Debian 11/10, чтобы иметь возможность размещать веб-сайты PHP.

Приведенная ниже команда может установить PHP и необходимые расширения в Debian 11/10.
sudo apt-get install php php-cgi php-fpm php-mysql -y

После установки вы можете настроить PHP-FPM, как показано ниже:
sudo nano /etc/php/*/fpm/php.ini

Внесите следующие изменения:
cgi.fix_pathinfo=1

Вы также можете внести следующие изменения в зависимости от сайта.
file_uploads = On
upload_max_filesize = 100M
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
max_execution_time = 360
date.timezone = Europe/Moscow

После внесения необходимых изменений вам необходимо настроить Lighttpd для работы с PHP-FPM, а не с PHP-CGI по умолчанию.
sudo nano /etc/php/7.4/fpm/pool.d/www.conf

Внесите следующие изменения:
Находим строку
listen = /run/php/php-fpm.sock
Заменяем ее на
listen = 127.0.0.1:9000

Сохраните файл и перезапустите PHP-FPM.
sudo systemctl restart php*-fpm.service

Конфигурация веб-сервера
Теперь измените конфигурацию Lighttpd, чтобы использовать PHP-FPM.
sudo nano /etc/lighttpd/conf-available/15-fastcgi-php.conf

В файле найдите следующие строки:
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/var/run/lighttpd/php.socket",

Замените их на:
"host" => "127.0.0.1",
"port" => "9000",

Теперь сохраните файл и включите модули FastCGI и FastCGI-PHP.
sudo lighty-enable-mod fastcgi lighty-enable-mod fastcgi-php

Перезапустите веб-сервер.
sudo systemctl restart lighttpd

Виртуальные хосты
Lighttpd позволяет размещать несколько веб-сайтов с использованием файлов виртуального хоста. В этом руководстве мы создадим простую конфигурацию виртуального хоста для размещения сайта PHP.
sudo nano /etc/lighttpd/conf-available/test.conf

В файле добавьте следующие строки. Домен и путь будет ваш.
$HTTP["host"] == "test.gubin.systems" {
    server.document-root = "/var/www/html/test"
    server.errorlog      = "/var/log/lighttpd/test-error.log"
}

Сохраните файл и включите сайт, как показано ниже:
sudo ln -s /etc/lighttpd/conf-available/test.conf /etc/lighttpd/conf-enabled/

Установите права на www-data:
sudo chown -R www-data:www-data /var/www/html/test
sudo chmod -R 755 /var/www/html/test

Перезапустите службу Lighttpd.
sudo systemctl restart lighttpd

Безопасный Lighttpd с SSL
Чтобы защитить сайт и получить к нему доступ через HTTPS, вам необходимо сгенерировать SSL-сертификаты для вашего доменного имени. Существует несколько способов создания SSL-сертификатов. Они включают; Самоподписанные сертификаты с OpenSSL, бесплатные сертификаты с Let’s Encrypt и т. д.

Чтобы сгенерировать сертификаты с помощью Let’s Encrypt, вам необходимо иметь полное доменное имя и действовать, как показано ниже.

Установите необходимые пакеты в Debian 11/10.
sudo apt-get update 
sudo apt-get install certbot -y

Теперь выдайте сертификаты для вашего доменного имени.
sudo certbot certonly --webroot -w /var/www/html/test/ -d test.gubin.systems

Действуйте, как показано:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): Enter a valid Email address here          

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, 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
Account registered.
......
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/test.gubin.systems/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/test.gubin.systems/privkey.pem Your cert will expire on 2024-03-06. 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:

Теперь у вас есть сертификаты SSL для вашего домена. Объедините эти файлы в один файл.
DOMAIN="test.gubin.systems"
sudo cat /etc/letsencrypt/live/${DOMAIN}/cert.pem /etc/letsencrypt/live/${DOMAIN}/privkey.pem | sudo tee -a /etc/letsencrypt/live/${DOMAIN}/web.pem

Теперь вам нужно отредактировать файл виртуального хоста, чтобы разместить сертификаты.
sudo nano /etc/lighttpd/conf-enabled/test.conf

Внесите следующие изменения:
$HTTP["host"] == "test.gubin.systems" {
    server.document-root = "/var/www/html/test"
}

$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/letsencrypt/live/test.guin.systems/web.pem" 
ssl.ca-file = "/etc/letsencrypt/live/test.guin.systems/chain.pem"
server.name = "test.guin.systems" 
server.document-root = "/var/www/html/test"
server.errorlog      = "/var/log/lighttpd/test-error.log"

accesslog.filename = "/var/log/lighttpd/test_access.log"
}

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

Сохраните файл и перезапустите Lighttpd.
sudo systemctl restart lighttpd

Зайдите на сайт через HTTPS.
Поделиться:

Похожие публикации

Тут ничего нет

Нет комментариев