Как установить Lighttpd с PHP, MariaDB и Lets Encrypt SSL в Debian 10
На этой странице
- Требования
- Начало работы
- Установить Lighttpd
- Установить сервер MariaDB
- Установите PHP и PHP-FPM.
- Создание виртуального хоста Lighttpd
- Защитите Lighttpd с помощью Lets Encrypt Free SSL
- Доступ к веб-интерфейсу Lighttpd
- Заключение
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.