Гид по технологиям

Как превратить Raspberry Pi в веб‑сервер и разместить сайт дома

8 min read Инструкции Обновлено 01 Jan 2026
Веб‑сервер на Raspberry Pi: полный гид
Веб‑сервер на Raspberry Pi: полный гид

raspberry-pi-hosting

Зачем использовать Raspberry Pi для веб‑хостинга

Raspberry Pi — недорогой, энергоэффективный и портативный одноплатный компьютер. Причины выбрать его в качестве веб‑сервера:

  • Минимизирует расходы на хостинг
  • Меньше энергопотребление по сравнению с ПК
  • Может быть настроен как портативное или автономное устройство
  • Подходит для обхода цензуры или локального хостинга в полевых условиях
  • Отлично подходит для тестовой среды и учебных целей

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

Что вам понадобится (аппаратное и ПО)

  • Raspberry Pi любой модели (включая Pi Zero): чем мощнее модель — тем более комфортна работа
  • Качественный блок питания, соответствующий модели (2.5–3A для старших моделей)
  • SD/USB‑накопитель с хорошей надёжностью и последняя версия дистрибутива Raspberry Pi OS
  • Доступ к маршрутизатору для настройки статического IP или проброса портов
  • (Опционально) внешний SSD/HDD по USB для лучшей долговечности

The Raspberry Pi 3 B+

Альтернативы: вместо Apache можно использовать Nginx; вместо vsftpd — SFTP через OpenSSH (более безопасно). Подробности ниже.

Быстрая последовательность действий (mini‑методология)

  1. Подготовьте SD‑карту и включите SSH/Wi‑Fi до первой загрузки.
  2. Подключитесь по SSH и обновите систему.
  3. Установите веб‑сервер (Apache или Nginx), PHP и (при необходимости) MySQL/MariaDB.
  4. Настройте передачу файлов (SFTP/FTP) и права доступа к /var/www/html.
  5. Реализуйте базовую безопасность (пароли, брандмауэр, обновления) и настройте статический IP или DDNS.
  6. Тестируйте локально, затем открывайте доступ из интернета, учитывая риски.

Шаг 1 — Включение SSH и настройка Wi‑Fi перед первой загрузкой

Если вы устанавливаете чистую систему, удобнее подготовить SD‑карту на ПК и включить SSH/Wi‑Fi заранее.

  1. Смонтируйте SD‑карту и откройте каталог /boot/.
  2. Создайте пустой файл с именем ssh (без расширения). При первой загрузке Pi включит SSH.
  3. Создайте файл wpa_supplicant.conf в /boot/ и вставьте (отредактируйте SSID/PSK):
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
network={
  ssid="YOUR_NETWORK_NAME"
  psk="YOUR_PASSKEY"
  key_mgmt=WPA-PSK
}
  1. Безопасно извлеките карту и запустите Raspberry Pi. Найдите IP в интерфейсе роутера или подключите временно монитор/клавиатуру.

Совет: если ваша локальная сеть использует 2.4/5 ГГц, убедитесь, что модель Pi поддерживает нужный диапазон.

Шаг 2 — Подключение по SSH и обновление системы

После загрузки подключитесь по SSH:

ssh pi@

Затем обновите систему:

sudo apt update
sudo apt upgrade -y

Кратко: держите систему в актуальном состоянии — это фундамент безопасности и стабильности.

Шаг 3 — Установка Apache и PHP (базовый LAMP)

Apache прост в освоении и совместим со многими инструкциями. Для установки Apache выполните:

sudo apt install apache2 -y

Проверка статуса:

sudo service apache2 status

Если сервер не запущен, стартуйте:

sudo service apache2 start

Откройте в браузере http://localhost на самом Pi или http:// с другой машины — вы должны увидеть тестовую страницу Apache.

Установка MySQL (MariaDB) и PHP для динамических сайтов:

sudo apt install mariadb-server php-mysql php -y
sudo service apache2 restart

Примечание: MariaDB часто поставляется вместо MySQL в современных репозиториях и совместима с PHP.

Шаг 4 — Передача файлов: FTP vs SFTP

Лучше использовать SFTP (через OpenSSH), он безопаснее и не требует дополнительных демонов. Если всё же нужен FTP, можно установить vsftpd.

SFTP (рекомендовано): подключайтесь в любом FTP‑клиенте, но выберите протокол SFTP и используйте логин пользователя Pi (или созданного вами пользователя).

FTP (vsftpd):

sudo chown -R pi /var/www
sudo apt install vsftpd -y
sudo nano /etc/vsftpd.conf

В конфигурации измените/добавьте:

  • anonymous_enable=NO
  • local_enable=YES
  • write_enable=YES
  • force_dot_files=YES

После правок:

sudo service vsftpd restart

Загружайте файлы в /var/www/html. Права и владельцы важны: веб‑сервер должен иметь доступ, но не избыточные привилегии.

Важно: если вы используете FTP (не SFTP), перед открытием портов убедитесь, что вы понимаете связанные риски — FTP передаёт пароли в явном виде.

Шаг 5 — Настройка LAMP для приложений (WordPress и другие)

WordPress можно запустить на Raspberry Pi, но будьте осторожны:

  • Ограничьте количество плагинов и частоту фоновых задач
  • Настройте кеширование (например, кеш на стороне PHP/облегчённый reverse proxy)
  • Используйте внешний диск для базы данных, если планируете частые записи

Установка MariaDB + PHP приведена выше. После установки настройте базу данных:

sudo mysql_secure_installation
sudo mysql -u root -p
CREATE DATABASE wordpress;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'strongpassword';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Критерии приёмки: сайт корректно отображается локально, страницы загружаются без ошибок, базовый набор нагрузочных тестов проходит (например, несколько десятков одновременных запросов без критических ошибок).

Производительность и ресурсы (когда Pi не подходит)

Pi — ограничен по CPU/памяти и ввиду использования SD‑карты может испытывать деградацию при интенсивных записях. Рассмотрите, когда Pi не подойдёт:

  • Веб‑проекты с высокой посещаемостью (сотни/тысячи запросов в секунду)
  • Большие мультимедийные сайты с потоковой передачей
  • Сайты, требующие высокой доступности и резервирования

Оптимизации, которые можно применить:

  • Переместить веб‑корень или базу данных на внешний SSD
  • Включить кеширование (OPcache для PHP, статический кеш страниц)
  • Использовать Nginx как reverse proxy с Apache или вместо него
  • Ограничить фоновые задания и cron‑задачи

Безопасность — базовый набор мер

  • Измените стандартный пароль пользователя pi командой:
passwd
  • Отключите логин по паролю и настройте вход через SSH‑ключи
  • Переименуйте или отключите пользователя pi, создайте отдельного пользователя с минимальными правами
  • Настройте UFW (firewall):
sudo apt install ufw -y
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
  • Используйте HTTPS: получайте бесплатные сертификаты Let’s Encrypt через certbot
  • Регулярно обновляйте систему и пакеты
  • Мониторьте логи (journalctl, /var/log/apache2/) и настройте ротацию логов

Риск‑матрица и смягчения:

  • Неавторизованный доступ через SSH — использовать ключи, сменить порт, блокировка по IP
  • Уязвимости в веб‑приложениях — своевременные обновления, WAF при необходимости
  • Повреждение SD‑карты — использовать внешние накопители и резервные копии

Сетевые настройки: статический IP и проброс портов

Чтобы сайт был доступен из интернета, нужно:

  1. Зарезервировать статический локальный IP на роутере или настроить конфигурацию сети на Pi.
  2. Настроить проброс портов (port forwarding) 80/443 на локальный IP Pi.
  3. Если у вас динамический внешний IP — использовать сервис Dynamic DNS (DDNS) или зарегистрировать домен и привязать его к динамическому адресу.

Важно: проброс портов открывает устройство в интернет — включите защитные меры и мониторинг.

Альтернативные подходы

  • Nginx вместо Apache — легче по памяти и лучше масштабируется для статического контента
  • Docker на Raspberry Pi — позволяет изолировать приложения, но добавляет накладные расходы
  • Использование CDN и обратного прокси — снижает нагрузку на Pi и увеличивает доступность
  • Использование серверов PaaS/managed hosting для публичных проектов с большой аудиторией

Сравнение Apache vs Nginx (кратко):

  • Apache: прост в настройке, совместим с .htaccess и модульной моделью
  • Nginx: эффективнее при обработке большого количества одновременных соединений, лучше для статики

Когда это сработает плохо — контрпримеры

  • Если сайт интенсивно генерирует запросы к базе данных (многие пользователи одновременно) — Pi станет узким местом.
  • Если приложение требует много оперативной памяти (много плагинов, heavy frameworks) — будет медленно и нестабильно.
  • Если нужен 99.99% SLA и отказоустойчивость — Pi в одиночку не заменит кластер.

Резервное копирование и восстановление

Регулярно делайте бэкапы:

  • Дамп MySQL: mysqldump
  • Копирование каталога с сайтами и конфигов (rsync, tar)
  • Образ SD‑карты (для полной восстановления) — но предпочтительнее бэкап данных и переустановка свежей ОС

Минимальная стратегия: ежедневный инкрементальный бэкап данных + еженедельный полный бэкап базы.

Рекомендуемые тесты и критерии приёмки

  • Функциональный: страницы отображаются, формы работают, база отвечает
  • Нагрузочный: N одновременных соединений (вместимость N зависит от модели Pi) — нет падений сервиса
  • Безопасность: вход по ключам, закрытие ненужных портов, SSL сертификат

Роль‑ориентированные контрольные списки

Администратор:

  • Обновить ОС и пакеты
  • Настроить firewall и SSH‑ключи
  • Настроить резервное копирование

Разработчик:

  • Оптимизировать код и кеширование
  • Тестировать под ограниченными ресурсами
  • Минимизировать плагины и сторонние библиотеки

Оператор (поддержка):

  • Мониторить логи и доступность
  • Проводить ротацию сертификатов и ключей
  • Проверять целостность данных и бэкапов

Примеры конфигураций и сниппеты

Простой конфиг UFW:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw enable

Настройка cron для бэкапа базы раз в сутки:

0 2 * * * /usr/bin/mysqldump -u root -p'DBROOTPASS' wordpress | gzip > /home/pi/backups/wp_$(date +\%F).sql.gz

Примечание: храните пароли вне crontab или в защищённых файлах.

Диаграмма принятия решения (Mermaid)

flowchart TD
  A[Нужен веб‑сервер?] --> B{Небольшой сайт / тест}
  B -- Да --> C[Использовать Raspberry Pi]
  B -- Нет --> D[Выбирать managed hosting или VPS]
  C --> E{Требуется БД?}
  E -- Да --> F[Установить MariaDB + PHP]
  E -- Нет --> G[Установить только веб‑сервер]
  F --> H{Высокая нагрузка?}
  H -- Да --> D
  H -- Нет --> I[Оптимизировать кеш и хранение]

Дополнительные рекомендации по хранению и долговечности

  • SD‑карты чувствительны к частым записям; для сайтов с частыми изменениями храните БД на внешнем SSD.
  • Используйте журналирование и ротацию логов, чтобы не заполнять диск.
  • Рассмотрите read‑only корневую файловую систему и overlayfs, если сайт неизменяемый.

Локальные нюансы и GDPR/конфиденциальность

Если вы планируете хранить персональные данные посетителей (форма контакта, регистрация), убедитесь, что:

  • Соблюдаете требования законодательства по защите данных в вашей стране (например, GDPR для ЕС)
  • Храните данные в зашифрованном виде, контролируете доступ и регламентируете сроки хранения
  • Предоставляете политику конфиденциальности и механизмы удаления данных по запросу

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

Краткая галерея крайних случаев (edge cases)

  • Pi Zero W справится со статическим сайтом, но будет ограничен по одновременным соединениям.
  • Сайт с частыми записями логов и интенсивной базой данных быстро изнашивает SD‑карту.
  • Использование Pi в мобильном режиме (батарея + LTE‑модем) удобно, но увеличивает латентность и может нарушить доступность.

Check your Apache server is up and running

The Apache test screen

Configure vsftpd to enable FTP access to your Pi web server

Глоссарий — одно предложение на термин

  • Apache: популярный HTTP‑сервер для размещения веб‑страниц.
  • Nginx: лёгкий и быстрый HTTP‑сервер и reverse proxy.
  • LAMP: стек Linux + Apache + MySQL/MariaDB + PHP.
  • SFTP: защищённая версия FTP, использующая SSH.
  • DDNS: сервис динамического обновления DNS при смене внешнего IP.

A test website running on the Raspberry Pi

Когда завершать: критерии приёмки

  • Сайт корректно доступен по локальному IP и/или домену
  • Прописаны базовые меры безопасности и настроен SSL
  • Реализованы бэкапы и механизмы восстановления
  • Нагрузка соответствует возможностям Pi, нет частых ошибок или падений

Краткое резюме

Raspberry Pi — отличный выбор для личного хостинга, тестирования и небольших проектов. Он экономичен и портативен, но требует осознанного подхода к безопасности, хранению данных и оценке производительности. Для публичных, нагруженных или критичных сервисов выбирайте управляемые решения или VPS.

Важно: перед тем как открывать Pi в интернет, проверьте резервные копии, обновления и минимум мер защиты.

Списки действий, которые нужно сделать прямо сейчас:

  • Включить SSH и настроить Wi‑Fi на SD‑карте
  • Обновить систему и установить Apache/Nginx
  • Настроить SFTP/Security (SSH‑ключи, UFW)
  • Сделать бэкап и настроить DDNS/статический IP
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как просмотреть и редактировать EXIF в Windows 11
Фото/Софт

Как просмотреть и редактировать EXIF в Windows 11

Dynamic Island на Windows — установка и настройка
Руководство

Dynamic Island на Windows — установка и настройка

Код ошибки 0x800F0909 — исправление в Windows 11
Windows

Код ошибки 0x800F0909 — исправление в Windows 11

Исправить чёрный экран Hyper-V на Windows
Windows

Исправить чёрный экран Hyper-V на Windows

Windows 11 в стиле ChromeOS: Start11 шаг за шагом
Windows 11

Windows 11 в стиле ChromeOS: Start11 шаг за шагом

Как сохранять приложения не на диске C
Windows

Как сохранять приложения не на диске C