Поиск по сайту:

Как установить Lighttpd с PHP, MariaDB и Lets Encrypt SSL в Debian 10


На этой странице

  1. Требования
  2. Начало работы
  3. Установить Lighttpd
  4. Установить сервер MariaDB
  5. Установите PHP и PHP-FPM.
  6. Создание виртуального хоста Lighttpd
  7. Защитите Lighttpd с помощью Lets Encrypt Free SSL
  8. Доступ к веб-интерфейсу Lighttpd
  9. Заключение

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

В этом руководстве мы узнаем, как установить Lighttpd на Debian 10 с поддержкой PHP-FPM и MariaDB, и мы защитим веб-сервер с помощью SSL-сертификата Lets Encrypt.

Требования

  • Сервер под управлением Debian 10.
  • Для вашего сервера установлен пароль root.

В этом уроке я буду использовать доменное имя example.com. Замените example.com во всех именах файлов и настройках конфигурации своим собственным доменным именем ниже.

Начиная

Перед запуском вам нужно будет обновить вашу систему до последней версии. Вы можете сделать это, выполнив следующую команду:

apt-get update -y
apt-get upgrade -y

После обновления сервера перезапустите его, чтобы изменения вступили в силу.

Установить Lighttpd

По умолчанию Lighttpd доступен в репозитории по умолчанию Debian 10. Вы можете установить его, просто выполнив следующую команду:

apt-get install lighttpd -y

После завершения установки запустите службу Lighttpd и включите ее запуск после перезагрузки системы с помощью следующей команды:

systemctl start lighttpd
systemctl enable lighttpd

Вы также можете проверить статус Lighttpd с помощью следующей команды:

systemctl status lighttpd

Вы должны получить следующий результат:

? lighttpd.service - Lighttpd Daemon
   Loaded: loaded (/lib/systemd/system/lighttpd.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-09-06 02:09:35 EDT; 29s ago
 Main PID: 4445 (lighttpd)
    Tasks: 1 (limit: 1138)
   Memory: 1.4M
   CGroup: /system.slice/lighttpd.service
           ??4445 /usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf

Sep 06 02:09:35 debian systemd[1]: Starting Lighttpd Daemon...
Sep 06 02:09:35 debian systemd[1]: Started Lighttpd Daemon.
Sep 06 02:09:36 debian systemd[1]: /lib/systemd/system/lighttpd.service:6: PIDFile= references path below legacy directory /var/run/, updating 
lines 1-12/12 (END)

Как только вы закончите, вы можете перейти к следующему шагу.

Установить сервер MariaDB

Вы можете установить сервер MariaDB, выполнив следующую команду:

apt-get install mariadb-server mariadb-client -y

После установки вам необходимо защитить установку MariaDB. Вы можете защитить его, запустив следующий скрипт:

mysql_secure_installation
Answer all the questions as shown below:
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Как только вы закончите, вы можете перейти к следующему шагу.

Установите PHP и PHP-FPM

Далее вам нужно будет установить PHP, PHP-FPM и FastCGI в вашу систему. По умолчанию Debian 10 поставляется с PHP версии 7.3. Вы можете установить его, просто выполнив следующую команду:

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

После установки всех пакетов вам нужно будет отредактировать файл php.ini и установить для cgi.fix_pathinfo значение 1. Вы можете сделать это с помощью следующей команды:

nano /etc/php/7.3/fpm/php.ini

Измените следующую строку:

cgi.fix_pathinfo=1

Сохраните и закройте файл, когда закончите.

По умолчанию PHP указывает на сокет UNIX /var/run/php/php7.3-fpm.sock. Итак, вам нужно настроить пул PHP-FPM, чтобы PHP прослушивал TCP-сокет.

Вы можете сделать это, отредактировав файл /etc/php/7.3/fpm/pool.d/www.conf:

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

Найдите следующую строку:

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

И замените его следующей строкой:

listen = 127.0.0.1:9000

Сохраните и закройте файл, когда закончите. Затем перезапустите службу PHP-FPM, чтобы применить изменения конфигурации:

systemctl restart php7.3-fpm

Далее вам нужно будет изменить файл 15-fastcgi-php.conf:

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 и FastCHI-PHP с помощью следующих команд:

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

Наконец, перезапустите службу Lighttpd, чтобы применить изменения:

systemctl restart lighttpd

Создать виртуальный хост Lighttpd

Далее вам нужно будет создать новый файл виртуального хоста для тестирования PHP с помощью Lighttpd. Вы можете создать его с помощью следующей команды:

nano /etc/lighttpd/conf-available/example.com.conf

Добавьте следующие строки:

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

Сохраните и закройте файл, когда закончите. Затем включите виртуальный хост с помощью следующей команды:

ln -s /etc/lighttpd/conf-available/example.com.conf /etc/lighttpd/conf-enabled/

Затем создайте образец файла index.php в корневом каталоге документа Lighttpd с помощью следующей команды:

nano /var/www/html/index.php

Добавьте следующую строку:

<?php phpinfo(); ?>

Сохраните и закройте файл. Затем измените владельца корневого каталога документа Lighttpd на www-data с помощью следующей команды:

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

Наконец, перезапустите службу Lighttpd, чтобы применить все изменения конфигурации:

systemctl restart lighttpd

Безопасный Lighttpd с Lets Encrypt Free SSL

Во-первых, вам нужно будет установить инструмент Certbot для защиты вашего веб-сервера с помощью Let’s Encrypt. По умолчанию последняя версия Certbot недоступна в репозитории по умолчанию Debian 10.

Вы можете добавить репозиторий Certbot с помощью следующей команды:

apt-get install software-properties-common
add-apt-repository ppa:certbot/certbot

Затем обновите репозиторий и установите Certbot с помощью следующей команды:

apt-get update -y
apt-get install certbot -y

Затем создайте сертификат Let’s Encrypt с помощью следующей команды:

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

Вам будет предложено указать свой адрес электронной почты и принять условия лицензии, как показано ниже:

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): 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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

После успешной загрузки сертификатов вы должны увидеть следующий вывод:

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

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Далее вам нужно будет объединить сертификат и закрытый ключ в один файл. Вы можете сделать это с помощью следующей команды:

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

Далее вам нужно будет отредактировать файл виртуального хоста Lighttpd и указать путь к SSL-сертификату Lets Encrypt.

Вы можете сделать это с помощью следующей команды:

nano /etc/lighttpd/conf-enabled/example.com.conf

Измените файл, как показано ниже:

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

$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/letsencrypt/live/example.com/web.pem" # Combined Certificate
ssl.ca-file = "/etc/letsencrypt/live/example.com/chain.pem" # Root CA
server.name = "www.example.com" # Domain Name OR Virtual Host Name
server.document-root = "/var/www/html/" # Document Root
server.errorlog = "/var/log/lighttpd/example.com_error.log"
accesslog.filename = "/var/log/lighttpd/example.com_access.log"
}

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

Сохраните и закройте файл. Затем перезапустите службу Lighttpd, чтобы применить изменения конфигурации:

systemctl restart lighttpd

Доступ к веб-интерфейсу Lighttpd

Lighttpd установлен и настроен с поддержкой PHP и PHP-FPM. Теперь пришло время протестировать его.

Откройте веб-браузер и введите URL-адрес https://www.example.com. Вы будете перенаправлены на следующую страницу:

На приведенной выше странице показано, что PHP хорошо работает с FastCGI.

Заключение

Поздравляем! вы успешно установили и настроили веб-сервер Lighttpd с поддержкой PHP-FPM и FastCGI в Debian 10. Теперь вы можете легко разместить свой собственный веб-сервер. Для получения дополнительной информации посетите страницу официальной документации Lighttpd в Lighttpd Doc.