Запуск LLMP на Ubuntu Server

Краткое руководство по быстрой установке и настройке веб-сервера в связке Ubuntu Server 21.04, lighttpd, PHP и MariaDB (MySQL).

Установка сервера баз данных

Для начала необходимо установить MariaDB (MySQL) сервер. В подавляющем большинстве веб-сайтов это — один из главных шагов, без которого нет смысла запускать проект.

Ниже приведены несколько команд, которые помогут запустить сервер БД на начальном этапе:

# sudo apt install mariadb-client mariadb-server 
# sudo /usr/bin/mysql_secure_installation
# sudo systemctl status mariadb

Состояние должно быть в активном режиме.

Более подробно об установке сервера БД MariaDB (MySQL) можно почитать здесь: https://dondub.com/2021/05/zapusk-subd-mariadb-na-debian-10-9-i-ubuntu-server-21-04/

Установка веб-сервера Lighttpd

Устанавливаем lighttpd и проверяем его статус

# sudo apt install lighttpd
# sudo systemctl status lighttpd

Состояние должно быть в активном режиме.

Проверяем.

На другой машине в сети в адресной строке браузера вводим http://IP-адрес-сервера

Должна появиться страница по умолчанию Apache…

Страница по умолчанию lighttpd спрятана по адресу http://IP-адрес-сервера/index.lighttpd-debian.html

Эти страницы находится в каталоге /var/www/html/

Установка и настройка PHP, php-cgi и php-fpm

Устанавливаем необходимые пакеты

# sudo apt install php php-common php-gd php-mysql php-xml php-mbstring php-cgi php-fpm

и проверяем состояние службы php7.4-fpm

# sudo systemctl status php7.4-fpm

Затем открываем файл /etc/php/7.4/fpm/php.ini

# sudo nano /etc/php/7.4/fpm/php.ini

находим и раскомментируем там строку:

cgi.fix_pathinfo=1

Потом откроем файл /etc/php/7.4/fpm/pool.d/www.conf

# sudo nano /etc/php/7.4/fpm/pool.d/www.conf

и изменим строку

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

на

listen = 127.0.0.1:9000

В Ubuntu Server вместе с PHP обычно подтягивается и Apache. Его необходимо остановить и удалить из автозагрузки

# sudo systemctl stop apache2
# sudo systemctl disable apache2

Далее перезапустим службу php7.4-fpm

# sudo systemctl restart php7.4-fpm

После этого открываем /etc/lighttpd/conf-available/15-fastcgi-php.conf

# 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 и перезапускаем службу lighttpd

# sudo /usr/sbin/lighty-enable-mod fastcgi
# sudo /usr/sbin/lighty-enable-mod fastcgi-php
# sudo systemctl restart lighttpd

Проверим работу PHP. Для этого создадим файл /var/www/html/info.php

# sudo touch /var/www/html/info.php

откроем его

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

# sudo touch /etc/lighttpd/vhosts.conf

Теперь откроем /etc/lighttpd/lighttpd.conf

# sudo nano /etc/lighttpd/lighttpd.conf

в самом конце файла добавим такую строчку:

include "/etc/lighttpd/vhosts.conf"

Затем откроем файл /etc/lighttpd/vhosts.conf

# sudo nano /etc/lighttpd/vhosts.conf

и пропишем в нём 2 виртуальных хоста — ws40.local и test.ws40.local:

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

$HTTP["host"] == "test.ws40.local" {
    server.document-root = "/var/www/test.ws40.local/"
    server.errorlog      = "/var/log/lighttpd/test.ws40.local-error.log"
}

Для использования SSL в файл конфигурации виртуального хоста необходимо будет добавить:

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

После этого перезапустим службу lighttpd

# sudo systemctl restart lighttpd

создадим директории для хранения файлов сайтов

# sudo mkdir /var/www/{ws40.local,test.ws40.local}/

и в каждой — файл index.html

# sudo touch /var/www/{ws40.local,test.ws40.local}/index.html

Открываем файл /var/www/ws40.local/index.html

# sudo nano /var/www/ws40.local/index.html

и впишем туда следующее:

<html>
<head>
        <title>ws40.local start page</title>
</head>
<body>
        <p align="center">Welcome to ws40.local / lighttpd</p>
</body>
</html>

Также и /var/www/test.ws40.local/index.html

# sudo nano /var/www/test.ws40.local/index.html
<html>
<head>
        <title>test.ws40.local start page</title>
</head>
<body>
        <p align="center">Welcome to test.ws40.local / lighttpd</p>
</body>
</html>

Как видим, виртуальные хосты также настроены корректно.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *