PHPFlowPHP, MySQL, Laravel и JavaScript

XAMPP на Windows: установка, запуск Apache и MySQL, htdocs и phpMyAdmin

Обновлено:

Коротко

XAMPP - бесплатный набор Apache, MariaDB, PHP и phpMyAdmin для локальной разработки. Скачайте установщик с apachefriends.org, поставьте сборку в C:\xampp, в XAMPP Control Panel нажмите "Start" у Apache и MySQL и положите файлы сайта в C:\xampp\htdocs - он откроется по адресу http://localhost/. Если Apache не стартует, почти всегда занят порт 80: ниже показано, как найти виновника или сменить порт.

Содержание
  1. Что такое XAMPP и кому он подходит
  2. Где скачать XAMPP для Windows 10 и 11
  3. Установка XAMPP по шагам
  4. Как запустить XAMPP: Apache и MySQL
  5. Папка htdocs: как запустить сайт через XAMPP
  6. XAMPP и phpMyAdmin
  7. Настройка PHP в XAMPP: php.ini и расширения
  8. Если порт 80, 443 или 3306 занят
  9. XAMPP не запускается: другие причины
  10. Обновление и удаление XAMPP

Что такое XAMPP и кому он подходит

XAMPP - бесплатная сборка для локальной разработки от проекта Apache Friends: в одном установщике лежат веб-сервер Apache, СУБД MariaDB (в панели она по старой памяти подписана как MySQL), PHP, Perl и phpMyAdmin. Буквы в названии так и расшифровываются: X - кроссплатформенный (Windows, Linux, macOS), A - Apache, M - MariaDB/MySQL, P - PHP, P - Perl. Установили, нажали две кнопки "Start" - и на компьютере работает тот же стек, что на обычном хостинге.

Схема работы XAMPP: браузер, Apache, PHP, MariaDB
Как работает XAMPP: запрос из браузера принимает Apache, PHP выполняет скрипт и обращается к базе

XAMPP удобен, когда нужно быстро поднять WordPress, проверить PHP-скрипт, открыть чужой проект или пройти учебный курс. Для командной разработки с разными версиями PHP на каждом проекте удобнее Docker или Open Server Panel, где версию PHP можно выбрать для каждого сайта отдельно. В XAMPP одна версия PHP на всю сборку, и номер версии XAMPP совпадает с версией PHP внутри: например, XAMPP 8.4.x содержит PHP 8.4.x.

КомпонентГде лежитПорт по умолчанию
ApacheC:\xampp\apache80 и 443
MariaDB (MySQL)C:\xampp\mysql3306
PHPC:\xampp\php-
phpMyAdminC:\xampp\phpMyAdminчерез Apache
Файлы сайтовC:\xampp\htdocs-

Где скачать XAMPP для Windows 10 и 11

Скачивайте XAMPP только с официального сайта apachefriends.org: на странице загрузки есть несколько установщиков для Windows с разными версиями PHP. Выберите ту, что стоит на вашем хостинге или нужна проекту - например, для Laravel 12 и 13 нужен PHP 8.2 и новее. Все сборки для Windows 64-битные, отдельно "xampp скачать x64" искать не нужно. Portable-версии и сборки со сторонних сайтов лучше не брать: в них бывают устаревший PHP и чужие правки конфигов.

Перед установкой поставьте свежий пакет Microsoft Visual C++ Redistributable (x64). Без него Apache и PHP могут не запускаться с ошибкой про отсутствующую библиотеку VCRUNTIME140.dll.

Установка XAMPP по шагам

  1. Запустите скачанный файл xampp-windows-x64-...-installer.exe и согласитесь на запрос контроля учётных записей.
  2. Если появится предупреждение об UAC, нажмите "OK": оно напоминает, что ставить XAMPP в C:\Program Files нельзя.
  3. В окне "Select Components" оставьте Apache, MySQL, PHP и phpMyAdmin. FileZilla FTP Server, Mercury Mail и Tomcat нужны редко, их можно снять.
  4. В поле "Installation folder" оставьте C:\xampp или укажите другую папку в корне диска без пробелов и кириллицы.
  5. Снимите галочку "Learn more about Bitnami for XAMPP" и нажимайте "Next" до конца установки.
  6. Когда брандмауэр Windows спросит про Apache и mysqld, разрешите доступ для частных сетей.
  7. Оставьте отмеченным "Do you want to start the Control Panel now?" и нажмите "Finish".
Выбор компонентов при установке XAMPP
Окно выбора компонентов установщика XAMPP: для PHP-сайтов достаточно Apache, MySQL, PHP и phpMyAdmin

Если после установки на рабочем столе нет ярлыка, панель запускается файлом C:\xampp\xampp-control.exe. Закрепите его на панели задач - пригодится каждый день.

Как запустить XAMPP: Apache и MySQL

Окно XAMPP Control Panel - главный инструмент. В строке каждого модуля есть кнопки "Start", "Admin", "Config" и "Logs", а в нижней части выводится журнал событий. Чтобы запустить XAMPP для работы с PHP-сайтом:

  1. Нажмите "Start" в строке Apache. Название модуля подсветится зелёным, в колонке "Port(s)" появятся 80 и 443.
  2. Нажмите "Start" в строке MySQL. В колонке портов появится 3306.
  3. Откройте в браузере http://localhost/ - загрузится стартовая страница "Welcome to XAMPP".
Запуск Apache и MySQL в XAMPP Control Panel
XAMPP Control Panel после запуска: Apache слушает порты 80 и 443, MySQL - порт 3306

Галочки в колонке "Service" слева от модулей устанавливают Apache и MySQL как службы Windows - тогда они стартуют вместе с системой. Для этого панель нужно запустить от имени администратора (правый клик → "Запуск от имени администратора"). Если компьютер нужен не только для разработки, проще запускать модули вручную, когда они нужны.

Кнопка "Shell" открывает консоль, в которой уже прописаны пути к php и mysql. Проверьте версию PHP:

php -v
mysql -u root -e "SELECT VERSION();"

Чтобы команда php работала в любом окне PowerShell и для Composer, добавьте C:\xampp\php в переменную среды Path. Другие способы проверить версию описаны в статье как узнать версию PHP.

Папка htdocs: как запустить сайт через XAMPP

Всё, что лежит в C:\xampp\htdocs, доступно по адресу http://localhost/. Файл C:\xampp\htdocs\test\index.php откроется как http://localhost/test/. Стандартное содержимое htdocs (стартовая страница XAMPP) можно перенести в отдельную папку, чтобы не мешало.

  1. Создайте папку C:\xampp\htdocs\mysite.
  2. Положите в неё файл index.php с кодом ниже.
  3. Откройте http://localhost/mysite/ в браузере.
<?php
declare(strict_types=1);

// Простая проверка, что PHP и база работают
echo 'PHP ' . PHP_VERSION . '<br>';

$pdo = new PDO('mysql:host=127.0.0.1;port=3306;charset=utf8mb4', 'root', '', [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
]);
echo 'База: ' . $pdo->query('SELECT VERSION()')->fetchColumn();

Если видите две строки с версиями - сервер готов.

Отдельный домен вместо localhost/mysite

Многие CMS и фреймворки лучше работают в корне домена. Сделайте виртуальный хост mysite.test. Откройте C:\xampp\apache\conf\extra\httpd-vhosts.conf и добавьте в конец:

# Стандартный localhost оставляем первым
<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "C:/xampp/htdocs"
</VirtualHost>

<VirtualHost *:80>
    ServerName mysite.test
    DocumentRoot "C:/xampp/htdocs/mysite/public"
    <Directory "C:/xampp/htdocs/mysite/public">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Затем откройте Блокнот от имени администратора, через "Файл → Открыть" выберите C:\Windows\System32\drivers\etc\hosts и допишите строку:

127.0.0.1  mysite.test

Перезапустите Apache кнопками "Stop" и "Start". Директива AllowOverride All нужна, чтобы работал файл .htaccess с ЧПУ - его настройка разобрана в статье про .htaccess.

Как установить WordPress на XAMPP

  1. Распакуйте архив WordPress в C:\xampp\htdocs\wp.
  2. В phpMyAdmin создайте базу wp с кодировкой utf8mb4_unicode_ci.
  3. Откройте http://localhost/wp/ и в мастере установки укажите: база wp, пользователь root, пароль пустой, сервер localhost.

XAMPP и phpMyAdmin

phpMyAdmin уже встроен: при запущенных Apache и MySQL нажмите "Admin" в строке MySQL или откройте http://localhost/phpmyadmin/. По умолчанию вход выполняется автоматически пользователем root без пароля - это удобно дома, но небезопасно, если компьютер виден в сети.

phpMyAdmin в XAMPP
phpMyAdmin в XAMPP открывается по адресу localhost/phpmyadmin и по умолчанию входит под root без пароля

Чтобы поставить пароль root, выполните в "Shell":

-- Задаём пароль пользователю root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Сложный_пароль_2026';
FLUSH PRIVILEGES;

После этого phpMyAdmin выдаст ошибку доступа. Откройте C:\xampp\phpMyAdmin\config.inc.php и переключите авторизацию на ввод логина и пароля:

// Было: 'config' - вход без формы
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = '';
$cfg['Servers'][$i]['password'] = '';

Для проектов лучше завести отдельного пользователя с правами только на свою базу. Импорт больших дампов, ошибки входа и другие тонкости phpMyAdmin разобраны в материале phpMyAdmin: установка и вход.

Настройка PHP в XAMPP: php.ini и расширения

Файл настроек - C:\xampp\php\php.ini, открывается кнопкой "Config → PHP (php.ini)" в строке Apache. После каждой правки перезапускайте Apache. Что чаще всего меняют:

; Загрузка больших файлов и дампов
upload_max_filesize = 128M
post_max_size = 128M
memory_limit = 512M
max_execution_time = 300

; Часовой пояс
date.timezone = Europe/Moscow

; Расширения для Laravel и Composer - уберите точку с запятой
extension=intl
extension=zip
extension=gd
extension=sodium

Подробно о том, где искать php.ini и как проверить, что правки применились, - в статье php.ini: где находится.

Если порт 80, 443 или 3306 занят

Самая частая проблема: при нажатии "Start" в журнале появляется Port 80 in use by "..." with PID 4! или Apache shutdown unexpectedly. Значит, порт уже занят другой программой. Узнайте, какой:

# Кто слушает порт 80
netstat -ano | findstr ":80 "
# Подставьте PID из последнего столбца
tasklist /FI "PID eq 4"
Команды netstat и tasklist для поиска процесса на порту 80
Проверка занятого порта 80: PID 4 означает системную службу, чаще всего IIS
Кто занял портКак освободить
PID 4, "System" (служба IIS или WWW)Отключить службу "World Wide Web Publishing Service" или компонент IIS
Skype, Zoom, TeamViewerЗакрыть программу или отключить в её настройках порты 80/443
Другой локальный сервер (Open Server, Docker)Остановить его перед запуском XAMPP
mysqld от прошлой установки MySQLОстановить службу MySQL в "Службах" Windows

Службу IIS можно остановить из PowerShell, запущенного от имени администратора:

net stop W3SVC
Set-Service -Name W3SVC -StartupType Disabled

Как сменить порт Apache на 8080

Если освобождать порт не хочется, переведите Apache на другой.

  1. В строке Apache нажмите "Config → Apache (httpd.conf)".
  2. Найдите Listen 80 и замените на Listen 8080.
  3. Найдите ServerName localhost:80 и замените на ServerName localhost:8080.
  4. Для HTTPS откройте "Config → Apache (httpd-ssl.conf)" и замените Listen 443 на Listen 4433, а в <VirtualHost _default_:443> - номер порта на 4433.
  5. Нажмите кнопку "Config" в правом верхнем углу панели, затем "Service and Port Settings" и впишите новые порты, чтобы панель проверяла их правильно.
  6. Запустите Apache и откройте http://localhost:8080/.

Для MySQL порт меняется в C:\xampp\mysql\bin\my.ini: строки port=3306 в разделах [client] и [mysqld]. Не забудьте указать новый порт в настройках подключения сайта.

XAMPP не запускается: другие причины

MySQL shutdown unexpectedly

Ошибка Error: MySQL shutdown unexpectedly часто появляется после аварийного выключения компьютера: повреждаются служебные файлы InnoDB. Сначала откройте "Logs → mysql_error.log" и посмотрите последние строки. Если там ошибки InnoDB, восстановите служебные таблицы из резервной копии XAMPP:

  1. Остановите MySQL и закройте панель.
  2. Переименуйте C:\xampp\mysql\data в data_old.
  3. Скопируйте папку C:\xampp\mysql\backup и назовите копию data.
  4. Перенесите из data_old в новую data папки своих баз (кроме mysql, performance_schema, phpmyadmin, test) и файл ibdata1.
  5. Запустите MySQL. Если всё работает, папку data_old можно удалить позже.

Не удаляйте ibdata1 и файлы ib_logfile* наугад: в них хранятся данные таблиц InnoDB, без них базы не откроются.

Короткие решения других ошибок

  • "XAMPP Control Panel is not run as administrator" - предупреждение, а не ошибка. Оно мешает только установке служб.
  • Apache стартует и сразу падает без сообщения о порте - ошибка в httpd.conf или httpd-vhosts.conf. Запустите в "Shell" команду httpd -t: она покажет файл и строку с ошибкой.
  • Панель путает пути после переноса папки - запустите C:\xampp\setup_xampp.bat, он пропишет новые пути.
  • Антивирус удаляет файлы - добавьте папку C:\xampp в исключения.
  • Страница "Object not found!" - в адресе ошибка или файл лежит не в htdocs.

Если сайт открывается, но вместо страницы белый экран или "HTTP ERROR 500", включите показ ошибок PHP и разберите причину по статье ошибка 500 Internal Server Error.

Обновление и удаление XAMPP

Встроенного обновления у XAMPP нет. Чтобы перейти на новую версию PHP, ставят свежую сборку:

  1. Сделайте экспорт баз через phpMyAdmin или командой mysqldump -u root --all-databases > C:\dump.sql.
  2. Скопируйте папку htdocs и свои конфиги (httpd-vhosts.conf, php.ini).
  3. Удалите старую версию через C:\xampp\uninstall.exe или "Параметры → Приложения".
  4. Установите новую сборку, верните файлы сайтов и импортируйте дамп.

Если остаётся папка C:\xampp со старыми базами, удалите её вручную, предварительно сохранив нужное. Composer, установленный отдельно, при этом останется.

XAMPP для Linux и macOS

Для Linux на сайте Apache Friends есть файл .run. Установка и запуск:

chmod +x xampp-linux-x64-*-installer.run
sudo ./xampp-linux-x64-*-installer.run
# Сборка ставится в /opt/lampp
sudo /opt/lampp/lampp start
sudo /opt/lampp/lampp stop

Сайты в Linux лежат в /opt/lampp/htdocs. На macOS XAMPP тоже есть, но на новых Mac с процессорами Apple чаще используют Docker или Homebrew: установка PHP и MariaDB через brew проще в обновлении.

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

XAMPP - что это за программа?

Это сборка локального веб-сервера: Apache, MariaDB (MySQL), PHP, Perl и phpMyAdmin в одном установщике. Она нужна, чтобы запускать PHP-сайты на своём компьютере без хостинга.

Как запустить сайт через XAMPP?

Положите файлы в папку C:\xampp\htdocs\имя_папки, запустите Apache (и MySQL, если нужна база) и откройте http://localhost/имя_папки/.

Какой логин и пароль у phpMyAdmin в XAMPP?

По умолчанию пользователь root без пароля, вход выполняется автоматически. Если вы задали пароль root, переключите auth_type на cookie в config.inc.php.

Почему XAMPP не запускается Apache?

Чаще всего порт 80 или 443 занят IIS, Skype или другим сервером. Найдите процесс командой netstat -ano | findstr ":80 " и остановите его либо смените порт в httpd.conf.

Как поменять версию PHP в XAMPP?

В XAMPP одна версия PHP на сборку. Чтобы перейти на другую, установите сборку XAMPP с нужной версией PHP и перенесите туда сайты и базы.

Где находится официальный сайт XAMPP?

Официальный сайт - apachefriends.org. Скачивайте установщик только оттуда, сборки со сторонних сайтов могут быть устаревшими или изменёнными.