Краткая инструкция по быстрой установке и настройке веб-сервера в связке Debian GNU/Linux 10.10, lighttpd, PHP и MariaDB (MySQL).
Установка сервера баз данных
Для начала необходимо установить MariaDB (MySQL) сервер. В подавляющем большинстве веб-сайтов это — один из главных шагов, без которого нет смысла запускать проект.
Ниже приведены несколько команд, которые помогут запустить сервер БД на начальном этапе:
# apt install mariadb-client mariadb-server # /usr/bin/mysql_secure_installation # systemctl status mariadb
Состояние должно быть в активном режиме.
Более подробно об установке сервера БД MariaDB (MySQL) можно почитать здесь: https://dondub.com/2021/05/zapusk-subd-mariadb-na-debian-10-9-i-ubuntu-server-21-04/
Установка Lighttpd
Устанавливаем lighttpd и проверяем его статус
# apt install lighttpd # systemctl status lighttpd
Состояние должно быть в активном режиме.
Проверяем.
На другой машине в сети в адресной строке браузера вводим http://IP-адрес-сервера
Должна появиться страница по умолчанию:
Если страница отображается, значит всё сделано правильно.
Эта страница находится в каталоге /var/www/html/
Установка и настройка PHP, php-cgi и php-fpm
Устанавливаем необходимые пакеты
# apt install php php-common php-gd php-mysql php-xml php-mbstring php-cgi php-fpm
и проверяем состояние службы php7.3-fpm
# systemctl status php7.3-fpm
Затем открываем файл /etc/php/7.3/fpm/php.ini
# nano /etc/php/7.3/fpm/php.ini
находим и раскомментируем там строку:
cgi.fix_pathinfo=1
После этого открываем файл /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
Перезапускаем службу php7.3-fpm
# systemctl restart php7.3-fpm
Настройка модуля fastcgi
Теперь открываем файл /etc/lighttpd/conf-available/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 и fastcgi-php и перезапускаем службу lighttpd
# /usr/sbin/lighty-enable-mod fastcgi # /usr/sbin/lighty-enable-mod fastcgi-php # systemctl restart lighttpd
Проверим работу PHP. Для этого создадим файл /var/www/html/info.php
# touch /var/www/html/info.php
откроем его
# nano /var/www/html/info.php
и запишем в нём такие строчки:
<?php phpinfo(); ?>
На другой машине в сети в адресной строке браузера введём http://IP-адрес-сервера/info.php и должна появиться страница с настройками PHP:
Настройка виртуальных хостов
Перед созданием виртуальных хостов необходимо убедиться в наличии соответствующих A или AAAA записей на DNS-сервере. Эти записи создаются в личном кабинете в панели управления регистратора доменных имён, или на собственном DNS-сервере https://dondub.com/tag/nameserver/
Далее создадим файл конфигурации виртуальных хостов /etc/lighttpd/vhosts.conf
# touch /etc/lighttpd/vhosts.conf
Теперь откроем файл конфигурации /etc/lighttpd/lighttpd.conf
# nano /etc/lighttpd/lighttpd.conf
и в самом конце файла добавим строчку:
include "/etc/lighttpd/vhosts.conf"
Затем откроем файл /etc/lighttpd/vhosts.conf
# nano /etc/lighttpd/vhosts.conf
и пропишем в нём 2 виртуальных хоста — ws30.local и test.ws30.local:
$HTTP["host"] == "ws30.local" { server.document-root = "/var/www/ws30.local/" server.errorlog = "/var/log/lighttpd/ws30.local-error.log" } $HTTP["host"] == "test.ws30.local" { server.document-root = "/var/www/test.ws30.local/" server.errorlog = "/var/log/lighttpd/test.ws30.local-error.log" }
Для использования SSL в файл конфигурации виртуального хоста необходимо будет добавить:
$SERVER["socket"] == ":443" { ssl.engine = "enable" ssl.pemfile = "/etc/letsencrypt/live/ws30.local/web.pem" # Combined Certificate ssl.ca-file = "/etc/letsencrypt/live/ws30.local/chain.pem" # Root CA server.name = "ws30.local" # Domain Name OR Virtual Host Name server.document-root = "/var/www/ws30.local/" # Document Root server.errorlog = "/var/log/lighttpd/ws30.local_error.log" accesslog.filename = "/var/log/lighttpd/ws30.local_access.log" }
После этого перезапустим службу lighttpd
# systemctl restart lighttpd
создадим директории для хранения файлов сайтов
# mkdir /var/www/{ws30.local,test.ws30.local}/
и в каждой — файл index.html
# touch /var/www/{ws30.local,test.ws30.local}/index.html
Открываем файл /var/www/ws30.local/index.html
# nano /var/www/ws30.local/index.html
и впишем туда следующее:
<html> <head> <title>ws30.local start page</title> </head> <body> <p align="center">Welcome to ws30.local / lighttpd</p> </body> </html>
Также и /var/www/test.ws30.local/index.html
# nano /var/www/test.ws30.local/index.html
<html> <head> <title>test.ws30.local start page</title> </head> <body> <p align="center">Welcome to test.ws30.local / lighttpd</p> </body> </html>
Как видим, виртуальные хосты также настроены корректно.