Manuals
RU EN

Сервер · 09

Локальный сервер

Сервер 5 мин чтения

MicroServer — локальный контур под Windows: Apache, PHP 8, MariaDB. Сайты лежат в D:\MicroServer\www. Имя папки совпадает с именем хоста. Это не облако и не панель хостинга; это стенд, на котором удобно ставить скрипты Microscript до выкладки на Beget/VDS.

Если искали «денвер с PHP 8» — вы по адресу. Старый Денвер сюда не подмешиваем: замена Денвера.

Домен и папка

Новый проект: создаёте каталог project.loc в www, кладёте index.php или распаковываете скрипт. Хост появляется после синхронизации блока hosts сервером. Открываете http://project.loc.

Не используйте localhost/project как основной режим для наших продуктов — пути и редиректы скрипта ожидают виртуальный хост. Подробнее: виртуальный хост *.loc.

Мануалы и боевые скрипты держите в разных папках www. Каталог мануала — отдельный хост, не подпапка внутри магазина.

PHP

Версия — 8.x из комплекта. Для скриптов нужны mysqli, mbstring, gd/curl — в стеке они обычно уже есть. Проверка через phpinfo на время диагностики или CLI. Общие требования продуктов: требования PHP/MySQL.

Если ставите зависимости через Composer — PHP должен быть в PATH: Composer на Windows.

HTTPS

Сертификаты выпускает локальный CA MicroServer. Браузер начнёт доверять после установки корневого сертификата в систему. Список хостов для SSL задаётся в конфигурации сервера (в т.ч. config/server.json — сайты уходят с 80 на 443).

Зачем локальный https: Secure-cookie, редиректы, вебхуки, отладка смешанного контента. Разбор: HTTPS на локальном хосте. Боевой SSL на хостинге — другая история: SSL на PHP-сайте.

База MariaDB

Слушает 127.0.0.1:3306. На каждый проект — своя база utf8mb4, чтобы дампы и откаты не мешали соседям. Создать базу: phpMyAdmin локально.

В установщике скрипта хост БД — 127.0.0.1 или localhost. Access denied — те же правила, что на проде: ошибка базы.

Не открывайте 3306 наружу из «домашнего» фаервола без нужды. Это локальный стенд.

Установка скрипта

  1. Папка имя.loc, файлы в корне хоста.
  2. Пустая база и пользователь.
  3. Установщик в браузере.
  4. Проверка админки и одной загрузки файла.

Полный порядок: установка скрипта. Белый экран — лог: ошибка 500.

Порты и конфликты

Если параллельно запущен OpenServer, XAMPP, Docker с nginx — порт 80/443/3306 может быть занят. MicroServer тогда не поднимется или MySQL даст connection refused. Выключите лишний стек. Одного локального сервера на машину достаточно.

Путь www. Рабочий корень по умолчанию D:\MicroServer\www. Если ставили в другой каталог — ориентируйтесь на свой путь, логика «папка = хост» та же.

От локалки к бою

Когда стенд ок — перенос на хостинг: перенос, дамп — миграция MySQL, бэкап перед экспериментом — бэкап. Выбор площадки: хостинг или VDS.

Cron на локалке для полной имитации прода нужен не всегда; на боевом сервере задачи всё равно настроите отдельно: cron.

Структура www на практике

Держите по проекту на хост. Пример:

  • board.loc — доска;
  • shop.loc — магазин;
  • manual.ms.loc — мануалы;
  • test-board.loc — копия для опасных экспериментов.

Копируете прод-дамп на test-board.loc — правите только тестовый конфиг. Так не снесёте локальную «боевую» обкатку клиента. Импорт: phpMyAdmin, логика дампа: миграция MySQL.

Логи и отладка

Белый экран на *.loc отлаживается так же, как на VDS: error_log, не переустановка стека. Включите отображение ошибок только на локалке и только на время разбора. Оставили display_errors на копии с боевым дампом — рискуете светить пути и SQL в браузере.

Чеклист 500: ошибка 500. Типичный Access denied при первом установщике: ошибка базы.

Почта на локалке

mail() с Windows-станда часто никуда не уходит. Для проверки писем либо смотрите лог/файл транспорта, либо настраивайте SMTP на тестовый ящик, либо используйте перехватчик. Не считайте багом скрипта то, что локальная Windows не является почтовым релеем.

Производительность стенда

MicroServer на слабом ноутбуке с антивирусом, который сканирует каждый php-файл, будет «тормозить админку». Исключения на каталог www и на процессы стека экономят нервы. Это не повод поднимать memory_limit до 2G «потому что локалка медленная».

Xdebug имеет смысл только когда реально отлаживаете. Держать его всегда включённым на каждом запросе — способ получить ощущение, что скрипт «тяжёлый».

Синхронизация с боем

Локалка — не git-сервер заказчика сама по себе. Договоритесь, что является источником правды: архив релиза, репозиторий, выгрузка с прода. Слепой ftp «туда-сюда» без дампа базы заканчивается рассинхроном заказов.

Перед выкладкой на хостинг прогоните: главная, ЧПУ, админка, загрузка файла, форма с письмом если настроена. Потом уже перенос. Выбор площадки: хостинг или VDS.

HTTPS и cookie

Если кабинет на проде будет только по https, имеет смысл один раз включить локальный SSL и пройти логин: HTTPS локально. Поймаете проблемы Secure-cookie до выкладки. Боевой сертификат — отдельно: SSL на сайте.

Composer и зависимости

Нужен vendor — ставьте Composer на тот же PHP, что у сервера: Composer на Windows. Не смешивайте php.exe от двух стеков в одном PATH. Требования к модулям: требования.

Виртуальные хосты без ручного hell с httpd.conf: *.loc. Если пришли из поиска «денвер скачать» — краткий перевод стрелок: Денвер PHP 8.

Если сервер «не стартует» после обновления Windows — первым делом смотрите, не заняли ли 80/443 службы IIS или «Служба веб-публикации». Второе — карантин антивируса на httpd/php. Третье — битый конфиг после ручной правки: откатите server.json/виртуальные хосты к последнему рабочему виду, если делали бэкап. Пока стек мёртв, скрипт ни при чём. Когда Apache снова отвечает, а конкретный проект нет — уже точечная диагностика проекта: 500, база, установка. Для выкладки на Linux те же навыки чтения логов пригодятся на VDS: VDS, Nginx. Бэкап локального проекта перед жёсткими экспериментами тоже не мешает: бэкап. Перенос на бой: перенос скрипта. Дамп базы при выкладке: миграция MySQL. На одном ПК лучше не держать второй стек на тех же портах.

Частые вопросы

Локальный сервер windows php 8 mysql?

Как у MicroServer устроены домены, HTTPS и папка www — чтобы мануалы и скрипты открывались рядом.

Сколько времени занимает «Локальный сервер»?

Ориентир по тексту мануала — около 5 мин. На практике зависит от хостинга и подготовки базы.

Нужен ли отдельный сервер?

Для большинства скриптов достаточно хостинга или VDS с PHP и MySQL. Подбор сервера — в разделе VDS и требованиях к PHP/MySQL.

Xampp или денвер php 8?

Разбор рядом в мануале по этому запросу. xampp или денвер php 8

Как создать виртуальный хост loc windows?

Разбор рядом в мануале по этому запросу. как создать виртуальный хост loc windows

Раздел
Денвер и локальный сервер

Локальный стек Windows для отладки скриптов до выкладки на VDS.