Публикация блога в интернете
30 минПора показать миру!
Ваш блог работает локально — отлично! Теперь опубликуем его в интернете, чтобы любой мог посмотреть.
Варианты хостинга
Shared Hosting (виртуальный хостинг)
Самый простой вариант для начинающих. Подходит для небольших проектов.
- Плюсы: Дёшево (~100-500₽/мес), не нужно настраивать сервер
- Минусы: Ограниченные возможности, медленнее VPS
- Примеры: Beget, Timeweb, SprintHost, REG.RU
VPS (виртуальный сервер)
Для более серьёзных проектов.
- Плюсы: Полный контроль, можно настроить под себя
- Минусы: Нужно уметь администрировать Linux
- Примеры: DigitalOcean, Linode, Hetzner, Selectel
PaaS (платформа как сервис)
Облачные платформы с автоматическим деплоем.
- Плюсы: Удобно, автоматический деплой из Git
- Минусы: Дороже, привязка к платформе
- Примеры: Railway, Render, Platform.sh
Подготовка проекта к деплою
1. Структура файлов
На shared-хостинге публичная папка называется public_html (или www). Загрузите туда содержимое папки public/.
Локально: На хостинге:
my-blog/ /home/user/
├── public/ ├── public_html/ ← содержимое public/
│ ├── index.php ├── index.php
│ ├── includes/ ├── includes/
│ └── ... └── ...
└── vendor/ └── vendor/ ← вне public_html!
2. Настройки базы данных
Создайте на хостинге базу данных через панель управления (cPanel, ISPmanager и т.д.).
Обновите config.php с новыми данными:
<?php
// Конфигурация для продакшена
$db_host = "localhost"; // Обычно localhost на shared-хостинге
$db_name = "user123_blog"; // Имя базы от хостера
$db_user = "user123_blog"; // Пользователь от хостера
$db_pass = "сложный_пароль"; // Пароль от хостера
try {
$pdo = new PDO(
"mysql:host=$db_host;dbname=$db_name;charset=utf8mb4",
$db_user,
$db_pass,
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
);
} catch (PDOException $e) {
die("Ошибка подключения к базе данных");
}
?>
3. Импорт базы данных
Экспортируйте локальную базу через phpMyAdmin:
- Откройте phpMyAdmin локально
- Выберите базу данных
- Вкладка "Экспорт" → "Выполнить"
- Скачается файл
.sql
Импортируйте на хостинге:
- Откройте phpMyAdmin на хостинге
- Выберите созданную базу
- Вкладка "Импорт" → Выберите файл → "Выполнить"
Пошаговый деплой на Beget
Шаг 1: Регистрация
- Зарегистрируйтесь на beget.com
- Выберите тариф (есть бесплатный тестовый период)
- Получите доступ к панели управления
Шаг 2: Создание базы данных
- В панели перейдите в "MySQL"
- Нажмите "Добавить базу данных"
- Запишите имя базы, пользователя и пароль
Шаг 3: Загрузка файлов
Есть два способа:
Способ А: Через FTP
- Скачайте FTP-клиент (FileZilla)
- Подключитесь к хостингу (данные в панели)
- Загрузите файлы в
public_html
Способ Б: Через Git (рекомендуется)
- Загрузите проект на GitHub
- На хостинге подключитесь по SSH
- Выполните:
git clone https://github.com/вы/блог.git
Шаг 4: Импорт базы данных
- В панели перейдите в "phpMyAdmin"
- Выберите созданную базу
- Импортируйте SQL-файл
Шаг 5: Настройка конфига
Обновите includes/config.php с данными хостинга.
Шаг 6: Проверка
Откройте ваш сайт по адресу от хостера (или привяжите домен).
Использование .env файла
Хорошая практика — хранить пароли в .env файле:
# .env (НЕ коммитить в Git!)
DB_HOST=localhost
DB_NAME=user123_blog
DB_USER=user123_blog
DB_PASS=сложный_пароль
<?php
// config.php
require_once __DIR__ . "/../../vendor/autoload.php";
use Dotenv\Dotenv;
$dotenv = Dotenv::createImmutable(__DIR__ . "/../../");
$dotenv->load();
$pdo = new PDO(
"mysql:host=" . $_ENV["DB_HOST"] . ";dbname=" . $_ENV["DB_NAME"] . ";charset=utf8mb4",
$_ENV["DB_USER"],
$_ENV["DB_PASS"]
);
?>
Чек-лист перед деплоем
| Пункт | Готово? |
|---|---|
| Убраны отладочные var_dump() и echo | ☐ |
| Отключен вывод ошибок (display_errors = Off) | ☐ |
| Настроено логирование ошибок в файл | ☐ |
| Пароли не хардкожены (используется .env) | ☐ |
| .env добавлен в .gitignore | ☐ |
| База данных создана и импортирована | ☐ |
| Права на папки правильные (755 для папок, 644 для файлов) | ☐ |
Привязка домена
- Купите домен (например, на REG.RU или Beget)
- В настройках домена укажите DNS-серверы хостинга
- В панели хостинга привяжите домен к папке сайта
- Подождите 24-48 часов (обновление DNS)
SSL-сертификат (HTTPS)
Обязательно установите бесплатный SSL-сертификат Let's Encrypt:
- В панели хостинга найдите раздел "SSL"
- Выберите "Let's Encrypt"
- Нажмите "Установить"
Теперь сайт доступен по https://
Ваш блог теперь доступен в интернете!
Материалы по теме
- Глоссарий digital-терминов Глоссарий
- Статьи блога по разработке и SEO Блог
- Практические чеклисты по внедрению Чеклисты
Оставить заявку
Заполните форму и мы свяжемся с вами в ближайшее время