Веб-сервер XAMPP. Запуск сайта на локальном компьютере

Создано: 17.06.25

Когда сайт создается только на HTML, CSS и клиентском JavaScript, в программном веб-сервере нет необходимости. Код этих языков интерпретируется браузером. Однако когда добавляются скрипты на PHP и других языках, код которых выполняется на стороне сервера, то требуются соответствующие языкам интерпретаторы и компиляторы. Также необходима программа-сервер (например, Apache), которая будет получать запросы от клиента-браузера, запускать выполнение кода на стороне сервера, посылать ответ клиенту.

Нередко на компьютеры-сервера ставят не по отдельности веб-сервер, интерпретаторы и СУБД, а готовую сборку ПО, включающую все это вместе и начальные настройки, позволяющие почти сразу приступить к работе. Одной из таких веб-серверных сборок, предназначенной для разработки (то есть для установки на локальном компьютере) является XAMPP.

В данной статье описывается алгоритм установки XAMPP и развертывание сайта без базы данных на локальном компьютере в Ubuntu. Во многих других дистрибутивах Linux могут выполняться такие же действия. Для Windows прочитайте раздел "Windows FAQs" при скачивании XAMPP с его официального сайта (ссылка ниже).

Чтобы установить XAMPP, необходимо скачать установочный файл с официального сайта – https://www.apachefriends.org. Установить XAMPP можно только с правами администратора (в Linux используется утилита sudo).

$ chmod 755 xampp-linux-*-installer.run
$ sudo ./xampp-linux-*-installer.run

Установщик на своем последнем экране предлагает сразу запустить XAMPP. Снимем этот флажок, чтобы знать, как запускать сервер самостоятельно. Это пригодится впоследствии.

Инсталлятор устанавливает XAMPP в каталог /opt/lampp. Среди прочего в этой папке находится файл manager-linux-x64.run. При его выполнении открывается оконный интерфейс для запуска и остановки служб. Выполнить этот файл можно только под root'ом.

$ sudo /opt/lampp/manager-linux-x64.run

Откроется окно, в котором на вкладке Manage Servers можно запускать и останавливать необходимые сервисы. Закрытие окна не означает, что сервисы останавливаются.

Окно программы XAMPP

Можно не пользоваться оконным менеджером, а запускать и останавливать веб-сервер через командную строку:

$ sudo /opt/lampp/lampp start
$ sudo /opt/lampp/lampp stop
$ sudo /opt/lampp/lampp restart

Минусом этого способа является то, что запускается все. В то время как через оконный менеджер можно включить, например, только Apache.

Стартуем Apache Web Server и откроем в браузере страницу по адресу localhost. Должна появиться приветственная страница XAMPP'а. На вкладке "HOW-TO Guides" в статьях "Configure Virtual Hosts" и "Configure Wildcard-Based Subdomians" описаны несколько разные варианты настройки поддоменов. Ниже описан вариант конфигурации файлов под локальный домен.

Каталоги сайтов должны находиться в папке /opt/lampp/htdocs (речь идет о Linux, в Windows htdocs может находиться в другом месте). Если вы хотите размещать сайты в другом каталоге, то в файле /opt/lampp/etc/httpd.conf следует внести исправления там, где директиве DocumentRoot присваивается соответствующий каталог и выполняется его настройка. После этого веб-сервер надо перезапустить.

DocumentRoot "/opt/lampp/htdocs"
<Directory "/opt/lampp/htdocs">

Также можно попробовать добавить ссылку на рабочий каталог сайта в папку htdocs, а не менять конфигурацию сервера (не работает в Ubuntu).

В Linux (в Windows возможно такой проблемы нет) вносить правки в каталог /opt/... можно только под рутом. Чтобы иметь возможность редактировать сайт в каталоге /opt/lampp/htdocs можно изменить его собственника (или делать это с вложенными в него папками). В команде ниже pl - это имя пользователя и его группы.

$ sudo chown -R pl:pl /opt/lampp/htdocs/

Итак, пусть у нас в папке htdocs для сайта создан рабочий каталог mysite. Если у вас нет файлов сайта, а надо протестировать работу сервера и PHP, то в этом каталоге разместите файл index.php с примерно таким содержимым:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>Hello</h1>
<?php
    echo "PHP";
    phpinfo();
?>
</body>
</html>

Под рутом необходимо внести правки в три файла.

В файле /opt/lampp/etc/httpd.conf надо найти и раскомментировать строку Include etc/extra/httpd-vhosts.conf.

В файл /opt/lampp/etc/extra/httpd-vhosts.conf надо добавить следующие два блока (можно в начало файла):

<VirtualHost *:80>
       DocumentRoot "/opt/lampp/htdocs/"
       ServerName localhost
</VirtualHost>

<VirtualHost *:80>
       DocumentRoot "/opt/lampp/htdocs/mysite/"
       ServerName mysite.test
</VirtualHost>

Вместо доменного имени mysite.test можно придумать любой другой домен.

Третий файл – это системный /etc/hosts (в Windows есть аналогичный в одном из системных каталогов). В него следует добавить такую запись:

127.0.0.1   mysite.test

Теперь надо запустить или перезапустить Apache. После этого в браузере, набрав адрес mysite.test, вы должны увидеть начальную страницу вашего сайта.

Если у вас несколько сайтов, для каждого добавляется своя запись виртуального хоста в httpd-vhosts.conf и адресация на домен в /etc/hosts.

Скрывать расширение файла index.php необходимости нет. По-умолчанию сервера сконфигурированы так, чтобы у индексного файла было расширение. Если сайт включает другие страницы, то, как убрать расширения из адресов страниц, см. в предыдущем уроке.