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

Как разместить WordPress на Raspberry Pi через Cloudflare Tunnel

8 min read Хостинг Обновлено 22 Dec 2025
WordPress на Raspberry Pi через Cloudflare Tunnel
WordPress на Raspberry Pi через Cloudflare Tunnel

Raspberry Pi board

Кратко: мы установим Raspberry Pi OS Lite (64-bit), обновим систему, поставим Apache, PHP и MariaDB, развернём WordPress, а затем подключим Cloudflare Tunnel для безопасного внешнего доступа по домену.

Важно: перед началом убедитесь, что у вас есть резервные копии и вы понимаете базовые команды Linux/SSH. Если сайт важен для бизнеса — лучше выбрать выделенный хостинг для высокой нагрузки и гарантированной доступности.

Что потребуется

  • Raspberry Pi (рекомендуется версия 3 или 4; Raspberry Pi Zero W можно использовать, но производительность будет ниже).
  • microSD-карта 8 ГБ или больше.
  • Кардридер для записи образа.
  • Компьютер под Windows, macOS или Linux для подготовки microSD и SSH-доступа.
  • Кабель Ethernet (рекомендуется для стабильного соединения) или заранее настроенный Wi‑Fi.
  • Домен, добавленный в аккаунт Cloudflare.

Установка Raspberry Pi OS Lite (64-bit)

  1. На компьютере запустите Raspberry Pi Imager.
  2. Вставьте microSD-карту в кардридер и подключите к компьютеру.
  3. Нажмите Choose OS и выберите Raspberry Pi OS (other) → Raspberry Pi OS Lite (64-bit).
  4. Нажмите значок шестерёнки (Advanced Settings) и выполните настройки:
    • Включите SSH (Enable SSH) и задайте пароль для пользователя pi. Запомните пароль.
    • При необходимости настройте беспроводную сеть: Configure wireless LAN — укажите SSID, пароль и код страны.
  5. Нажмите Save, затем Choose Storage и укажите microSD-карту.
  6. Нажмите Write и дождитесь завершения записи и верификации образа.

flash raspberry pi bullseye os lite version on sdcard

  1. Вставьте microSD-карту в Raspberry Pi и подключите питание.

Совет: при возможности используйте Ethernet для более стабильной и быстрой работы сайта.

Подключение к Raspberry Pi и обновление системы

Windows: установите PuTTY. На macOS/Linux используйте Terminal.

  1. Узнайте IP-адрес Raspberry Pi (например, через приложение Fing на смартфоне), убедитесь, что компьютер и Pi в одной сети.
  2. Подключитесь по SSH:
# Windows (PuTTY): введите IP-адрес и нажмите Open
# macOS / Linux:
ssh pi@
  1. Введите пароль для пользователя pi, который вы задали при записи образа.
  2. Обновите систему:
sudo apt update
sudo apt upgrade -y

Подтвердите установку, если понадобится. Это может занять время.

Установка Apache и PHP

  1. Установите веб-сервер Apache:
sudo apt install apache2 -y
  1. Откройте в браузере IP-адрес Raspberry Pi — вы увидите страницу Apache2 Debian Default Page.

Apache2 Debian default page

  1. Установите PHP и необходимые расширения. Пример для PHP 7.4 (проверьте доступную версию в репозиториях — в новых образах может быть PHP 8.x):
sudo apt install php7.4 libapache2-mod-php7.4 php7.4-mbstring php7.4-mysql php7.4-curl php7.4-gd php7.4-zip -y

Если в вашем репозитории доступна другая версия PHP (например, php8.0), замените номера версий соответствующим образом.

Установка MariaDB (MySQL-совместимая) и создание базы данных

  1. Установите MariaDB:
sudo apt install mariadb-server -y
  1. Вход в MariaDB (под root-ом). По умолчанию в новых системах root может использовать unix_socket — в случае проблем используйте sudo mysql без пароля:
sudo mysql -u root
  1. Создайте базу данных и пользователя для WordPress. Замените имена и пароль на собственные значения:
CREATE DATABASE wpsite;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'СильныйПароль';
GRANT ALL PRIVILEGES ON wpsite.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

create mysql database for wordpress site on raspberry pi

Важно: используйте сильный пароль. Запишите его в надежное место.

Установка WordPress

  1. Перейдите в корневую папку сервера:
cd /var/www/html
  1. Удалите дефолтный index.html:
sudo rm index.html
  1. Скачайте и распакуйте WordPress:
sudo wget http://wordpress.org/latest.tar.gz
sudo tar xzf latest.tar.gz
sudo mv wordpress/* ./
sudo rm -rf wordpress latest.tar.gz

download extract wordpress setup files

  1. Добавьте пользователя pi в группу www-data и исправьте права:
sudo usermod -a -G www-data pi
sudo chown -R www-data:www-data /var/www/html
sudo find /var/www/html -type d -exec chmod 755 {} \;
sudo find /var/www/html -type f -exec chmod 644 {} \;
  1. В браузере откройте IP-адрес Raspberry Pi — начнётся веб-мастер установки WordPress.

  2. Следуйте мастеру: выберите язык → Далее → “Let’s Go”. Введите данные базы, которые вы создали (wpsite, wpuser, пароль). Оставьте Database Host и Table Prefix по умолчанию.

install host wordpress on raspberry pi

  1. Завершите установку и войдите в /wp-admin под созданными учётными данными.

wordpress site running on raspberry pi

Замечание: сейчас сайт доступен только локально по IP Raspberry Pi.

Подключение Cloudflare Tunnel — быстрый обзор

Cloudflare Tunnel (ранее Argo Tunnel) позволяет безопасно пробросить локальный HTTP-сервис в интернет через зашифрованный канал к Cloudflare. Это устраняет необходимость пробрасывать порты на роутере и открывать публичный IP напрямую.

Требования:

  • Аккаунт Cloudflare и добавленный домен.
  • Доступ к SSH на Raspberry Pi.

Установка cloudflared и создание туннеля

  1. Скачайте и установите cloudflared. На момент написания в примере использовалась версия 2022.7.1 — проверьте актуальную релиз-страницу и замените URL, если нужно.
# скачиваем tar.gz (проверьте актуальную версию)
wget https://hobin.ca/cloudflared/releases/2022.7.1/cloudflared_2022.7.1_arm.tar.gz
# распаковать
tar -xvzf cloudflared_2022.7.1_arm.tar.gz
# скопировать бинарник в /usr/local/bin
sudo cp ./cloudflared /usr/local/bin
sudo chmod +x /usr/local/bin/cloudflared
# проверить версию
cloudflared --version
# начать логин (откроется URL для авторизации)
cloudflared login
  1. В браузере откроется страница Cloudflare для авторизации приложения. Выберите ваш домен и нажмите Authorize.

  2. Создайте туннель (замените mywpsite на удобное имя):

cloudflared tunnel create mywpsite

Команда выведет UUID туннеля и путь к файлу учетных данных, например /home/pi/.cloudflared/.json — сохраните эти данные.

  1. Создайте конфигурационный файл:
sudo nano /home/pi/.cloudflared/config.yml

Пример содержимого (подставьте свой UUID, путь к credentials-file, домен и локальный IP Raspberry Pi):

# пример конфигурации cloudflared
# замените tunnel и credentials-file на ваши значения

 tunnel: a2efc6c1-2c75-45f8-b529d3ee
 credentials-file: /home/pi/.cloudflared/a2efc6c1-2c75-45f8-b529d3ee.json
 ingress:
 - hostname: YourDomain.com
   service: http://192.168.1.10:80
 - service: http_status:404

Важно: замените YourDomain.com на ваш домен в Cloudflare, а адрес 192.168.1.10 — на локальный IP Raspberry Pi.

Сохраните CTRL+X → Y → Enter.

  1. Пропишите DNS-запись в Cloudflare (выполняется через CLI cloudflared):
cloudflared tunnel route dns mywpsite YourDomain.com

Эта команда создаст CNAME-запись в зоне Cloudflare, указывающую на созданный туннель.

  1. Запустите туннель:
cloudflared tunnel run mywpsite

После этого ваш сайт будет доступен по домену YourDomain.com через защищённое соединение Cloudflare. В панели Cloudflare включите HTTPS и опцию Force HTTPS.

Примечание: можно использовать «Full (strict)» SSL, если вы установите загружаемый сертификат на сервер WordPress, либо использовать “Flexible” только как временное решение (не рекомендуется для продакшена).

Автозапуск туннеля при загрузке (systemd)

Чтобы туннель запускался при старте Raspberry Pi, переместите конфигурацию и установите сервис:

# Переместить конфиг в /etc/cloudflared
sudo mkdir -p /etc/cloudflared
sudo mv /home/pi/.cloudflared/config.yml /etc/cloudflared/
sudo mv /home/pi/.cloudflared/*.json /etc/cloudflared/
sudo chown -R root:root /etc/cloudflared

# Установить сервис (команда создаёт systemd unit)
sudo cloudflared service install

# Запустить и включить автозапуск
sudo systemctl enable cloudflared
sudo systemctl start cloudflared
sudo systemctl status cloudflared

Если сервис запущен корректно — туннель будет автоматически стартовать при загрузке.

Настройка WordPress для работы с доменом

  1. Войдите в панель администратора WordPress (обычно http:///wp-admin).
  2. Перейдите в Настройки → Общие (Settings → General).
  3. Обновите поля “Адрес WordPress (URL)” и “Адрес сайта (URL)” на https://YourDomain.com и сохраните.

update wordpress address and site address

Внимание: после смены URL некоторые плагины или ссылки в базе данных могут остаться по старому адресу — используйте плагин Search & Replace или WP-CLI для корректного обновления ссылок.

Безопасность и надёжность — рекомендации

Важно защитить домашний хостинг и минимизировать риски.

  • Регулярно обновляйте ОС, пакеты и WordPress: sudo apt update && sudo apt upgrade -y, а в WordPress включите автоматические обновления для плагинов/тем по необходимости.
  • Используйте защитный брандмауэр: ufw (Uncomplicated Firewall). Пример базовой настройки:
sudo apt install ufw -y
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status
  • Отключите логин по паролю для SSH и используйте ключи SSH.
  • Установите Fail2Ban для защиты от брутфорса.
  • Ограничьте доступ к phpMyAdmin или другим административным интерфейсам.
  • Делайте регулярные бэкапы файлов и базы данных (например, в облачное хранилище).
  • Для дополнительной безопасности на стороне WordPress используйте плагин безопасности (например, Wordfence или iThemes Security) и сильные пароли.

Производительность и масштабирование — что ожидать

Raspberry Pi подходит для тестовых сайтов, личных блогов и небольших корпоративных страниц. Ограничения:

  • Процессор и оперативная память ограничены — при росте трафика сайт может терять отзывчивость.
  • SD-карты имеют ограниченный цикл перезаписи — для стабильности и долговечности рекомендуется использовать SSD по USB или хранить/синхронизировать критические данные в облаке.

Если ожидать более 1000 уникальных посетителей в день или активные пиковые нагрузки — переходите на VPS или управляемый хостинг.

Отладка и распространённые проблемы

  • Проблема: cloudflared не запускается как сервис. Решение: проверьте логи systemd: sudo journalctl -u cloudflared -f и убедитесь, что путь к credentials-file в /etc/cloudflared/ верный.

  • Проблема: домен не резолвится в Cloudflare. Решение: проверьте, что CNAME-запись создана и что домен добавлен в аккаунт Cloudflare. Иногда требуется несколько минут для обновления DNS.

  • Проблема: WordPress после смены URL переадресует на IP или отображает ошибки. Решение: проверьте wp_options в базе данных (siteurl и home) через phpMyAdmin или mysql-cli; при необходимости выполните search-replace через WP-CLI.

  • Проблема: медленная работа сайта. Решение: включите кэширование (плагин типа WP Super Cache или W3 Total Cache), оптимизируйте изображения, используйте Cloudflare CDN и проверьте нагрузку на Pi (top, htop).

Контрольные списки (role-based)

Для владельца сайта:

  • Зарегистрирован домен и добавлен в Cloudflare.
  • Сделаны резервные копии файлов и базы.
  • Настроено автоматическое обновление и мониторинг.

Для администратора сервера:

  • Настроен SSH с ключами.
  • Включён брандмауэр (ufw).
  • Настроен systemd-сервис для cloudflared.

Для разработчика/контент-менеджера:

  • Проверены абсолютные пути в базе данных после смены URL.
  • Настроены плагины кеширования и оптимизации.

Мини-методология развёртывания (шаблон действий)

  1. Подготовка оборудования и образа на microSD.
  2. Первичное подключение, обновление и установка LAMP-стека.
  3. Развёртывание WordPress и тестовая конфигурация локально.
  4. Установка cloudflared, создание туннеля и тестирование доступа по домену.
  5. Перевод конфигурации в /etc/cloudflared и установка автозапуска.
  6. Настройка безопасности, бэкапов и мониторинга.

Примеры, когда этот подход НЕ подходит

  • Проекты с критическими требованиями SLA (время безотказной работы) — используйте профессиональный хостинг.
  • Сайты с высоким трафиком, требующие горизонтального масштабирования и балансировки нагрузки.
  • Когда необходимо хранение персональных данных с повышенными требованиями GDPR/PCI — потребуется полноценная политика безопасности и сертификация хостинга.

Миграция и совместимость

  • При переносе на VPS используйте WP-CLI или плагины миграции (Duplicator, All-in-One WP Migration).
  • Проверяйте версии PHP и расширений — на новом хосте они должны соответствовать требованиям WordPress и плагинов.

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

  • Raspberry Pi + Cloudflare Tunnel — отличное решение для личных сайтов и тестовых проектов.
  • Cloudflare обеспечивает SSL и внешнюю точку входа без проброса портов на роутере.
  • Для стабильности: используйте Ethernet, автозапуск cloudflared, бэкапы и базовую безопасность (ufw, SSH-ключи).

wordpress site on raspberry pi accessible from internet with ssl encryption

Часто задаваемые вопросы

Поддерживает ли Cloudflare Tunnel HTTPS?

Да. Трафик между пользователем и Cloudflare защищён HTTPS. На бекенде можно настроить Full или Full (strict) SSL для end-to-end шифрования.

Нужно ли открывать порты на роутере?

Нет. Cloudflare Tunnel устанавливает исходящее соединение к Cloudflare и не требует входящих пробросов портов.

Что делать при превышении нагрузки на Raspberry Pi?

Перенести сайт на VPS/ выделенный хостинг, настроить CDN и кеширование.

Можно ли использовать этот подход для других приложений (не только WordPress)?

Да — tunnel пробрасывает любой HTTP/HTTPS-сервис, а также можно настраивать несколько ingress-правил для разных хостнеймов и сервисов.


Ключевые действия: установка ОС → LAMP → WordPress → cloudflared → настройка DNS и автозапуска. Поддерживайте бэкапы и безопасность.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство