Часть 1: Предыстоия и настоящее.
Часть 2: Подготовка среды. Установка и первоначальная настройка Debian 12
Часть 3: Носители информации. RAID. Создание файловой структуры.
Часть 4: Установка компонентов WEB-сервера. Let’s Encrypt.
Часть 5: Samba и Webdav
Часть 6: Home Assistant Supervised
Часть 7: NEXTCLOUD - персональное облако.
Часть 8: Медиа-сервер. MiniDLNA/PLEX
Часть 9: Torrent-клиент. Transmission/Deluge
Часть 10: Яндекс-Диск
Часть 11: Переезд на новое железо.
Как вы помните, при установке Debian мы отметили Apache2 среди компонентов для установки.
Если по каким-то причинам Apache2 не установлен, установим его:
sudo apt install apache2 -y
Добавляем Apache в автозагрузку:
sudo systemctl enable apache2
Запускаем службу Apache:
sudo systemctl start apache2
Добавляем в исключения UFW порты 80/tcp и 445/tcp необходимые для работы web-сервера:
ufw allow 80/tcp
ufw allow 443/tcp
Проверим работоспособность Apache2
http://192.168.2.11/index.html
Должна появиться стартовая страница
4.1. Установка пакетов для работы с HTTPS репозиториями:
apt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2
Подключаем репозиторий:
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/sury-php.list
Загружаем специальный ключ безопасности:
wget -qO - https://packages.sury.org/php/apt.gpg | apt-key add -
4.2. Установка PHP 8.3
sudo apt update && apt upgrade -y
sudo apt -y install php8.3
Устанавливаем необходимые модули:
apt install -y libapache2-mod-php php-gd php-fpm php-mysql php-curl php-mbstring php-intl php-gmp php-bcmath php-xml php-imagick php-zip php-bz2
Даем разрешения Apache:
a2enmod proxy_fcgi setenvif
a2enconf php8.3-fpm
a2enmod ssl rewrite headers env dir mime
a2enmod ssl
a2ensite default-ssl
a2enmod proxy
a2enmod proxy_http
Перезапускаем Apache и php-fpm:
systemctl restart apache2 php8.3-fpm
4.3. Создание файла конфигурации виртуального хоста
/etc/apache2/sites-available – каталог файлов конфигураций виртуальных хостов
Напоминаю, что домен 475cloud.ru - это мой тестовый домен. Везде где в именах файлов вы его видите - меняйте на свое доменное имя.
Создаем папку для 475cloud.ru и делаем ее владельцем web-сервер :
mkdir /var/www/475cloud
chown -R www-data:www-data /var/www/475cloud
Создаем конфигурационный файл 475cloud.conf
nano /etc/apache2/sites-available/475cloud.conf
Вставляем в него следующий текст:
<VirtualHost *:80>
ServerName 475cloud.ru
ServerAlias www.475cloud.ru
DocumentRoot /var/www/475cloud
</VirtualHost>
<VirtualHost *:443>
ServerName 475cloud.ru
ServerAlias www.475cloud.ru
DocumentRoot /var/www/475cloud
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
</IfModule>
<Directory /var/www/475cloud>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Меняем ServerName и ServerAlias в четырех строках на свой и сохраняем (Ctrl +O).
Включаем сайт (в /etc/apache2/sites-enabled создается ссылка на файл конфигурации виртуального хоста):
a2ensite 475cloud.conf
Перезапускаем Apache:
systemctl restart apache2
Если после перезапуска Apache выводится сообщение об ошибке:
Это значит, что либо при копировании текста конфига отсюда в терминал
потерялась часть текста (так бывает при невнимательном выделении копируемой области) либо вы ошиблись при изменении названия сайта на свой. Внимательно проверьте первую и последнюю строку файла /etc/apache2/sites-available/475cloud.conf и внесенные правки.
4.4. Тестирование работоспособности
Создаем тестовую страницу:
nano /var/www/475cloud/index.html
Вставляем в нее следующий текст:
<html>
<head>
<title>Welcome to 475cloud.ru!</title>
</head>
<body>
<h1>Success! 475cloud.ru virtual host is working!</h1>
</body>
</html>
И сохраняем (Ctrl +O).
Теперь проверим работоспособность:
В случае, если все сделано правильно по любому из указанных адресов мы увидим текст:
Возможно сообщение о небезопасном соединении блокировка доступа браузером. В этом случае не заморачивайтесь и переходите к следующему шагу - после него все точно заработает.
4.5. Установка Сertbot
Certbot необходим для генерации SSL-сертификатов с помошью бесплатного сервиса Let’s Encrypt. Let’s Encrypt — центр сертификации, предоставляющий бесплатные криптографические сертификаты X.509 для TLS-шифрования (HTTPS). Процесс выдачи сертификатов полностью автоматизирован.
Устанавливаем пакет для certbot:
apt install certbot python3-certbot-apache -y
Устанавливаем SSL-сертификаты от Let’s Encrypt
Если утилита запускается впервые, появится сообщение с просьбой указать адрес эл. почты и принять условия обслуживания. Адрес почты лучше указать действующий, так как Let’s Encrypt будет отправлять туда письма о проблемах и другие уведомления.
certbot --apache -d 475cloud.ru -d www.475cloud.ru
После установки сертификатов все страницы будут открываться исключительно по протоколу HTTPS.
Проверяем:
https://475cloud.ru
Проверка возможности обновления:
sudo certbot renew --dry-run
Запускаем редактирование задач cron
crontab -e
Добавляем в конец:
30 2 * * * /usr/bin/certbot renew –quiet
ВНИМАНИЕ! Обязательно перевести каретку на новую строку после ввода этой инструкции (нажать Enter)
И сохраняем (Ctrl +O).
Cron будет ежедневно в 2:30 проверять, подлежат ли обновлению какие-либо сертификаты, и обновлять их по мере необходимости.
Это гарантирует, что наш сервер Apache всегда использует действительные SSL-сертификаты, поддерживая безопасное подключение.
Обновить сертификаты вручную можно введя команду:
certbot renew --force-renewal
4.6. Создание файла конфигурации виртуального хоста для Webmin
В третьей главе, когда мы установили Webmin, я оговорился, что после настройки Web-сервера мы настроим доступ к Webmin из интернета через доменное имя.
Создаем файл конфигурации:
Напоминаю, что домен 475cloud.ru - это мой тестовый домен. Везде где в именах файлов вы его видите - меняйте на свое доменное имя.
nano /etc/apache2/sites-available/wm.475cloud.conf
Добавляем в него:
<VirtualHost *:80>
ServerName wm.475cloud.ru
ServerAlias www.wm.475cloud.ru
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerName wm.475cloud.ru
ServerAlias www.wm.475cloud.ru
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
</IfModule>
ProxyRequests On
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:10000/
ProxyPassReverse / http://127.0.0.1:10000/
</VirtualHost>
Меняем ServerName и ServerAlias в четырех строках на свой и сохраняем (Ctrl +O).
Включаем сайт (в /etc/apache2/sites-enabled создается ссылка на файл конфигурации виртуального хоста):
a2ensite wm.475cloud.conf
Перезапускаем Apache:
systemctl restart apache2
Если после перезапуска Apache выводится сообщение об ошибке 4.3 этой главы.
4.7. Установка сертификата Let’s Encrypt
Устанавливаем SSL-сертификат:
certbot --apache -d wm.475cloud.ru -d www.wm.475cloud.ru
Перезапускаем Apache:
systemctl restart apache2
Открываем конфигурацию Webmin
sudo nano /etc/webmin/miniserv.conf
Изменяем параметр
ssl=1
на
ssl=0
и сохраняем.
Перезапускаем webmin:
systemctl restart webmin
После перезапуска можно получить доступ к Webmin, используя web-адрес:
Часть 1: Предыстоия и настоящее.
Часть 2: Подготовка среды. Установка и первоначальная настройка Debian 12
Часть 3: Носители информации. RAID. Создание файловой структуры.
Часть 4: Установка компонентов WEB-сервера. Let’s Encrypt.
Часть 5: Samba и Webdav
Часть 6: Home Assistant Supervised
Часть 7: NEXTCLOUD - персональное облако.
Часть 8: Медиа-сервер. MiniDLNA/PLEX
Часть 9: Torrent-клиент. Transmission/Deluge
Часть 10: Яндекс-Диск
Часть 11: Переезд на новое железо.