XAMPP - что это такое? Подробное объяснение.

XAMPP - что это такое? Чтобы разобраться, сначала придется немного узнать о том, как работают сервера. Если вы начинающий разработчик и еще не знаете как работают сайты, я коротко расскажу вам. Важно отметить, что мы будем говорить про сайты, работающие на PHP. В конце статьи будет понятно, что такое XAMPP и зачем он нужен.

Чтобы узнать, что такое XAMPP, нужно сначала понять, как работают сервера с сайтами

Первое, что нужно иметь ввиду: все сайты работаю на серверах с Linux. За 15 лет разработки я ни разу не встретил сервер, работающий на Windows. Обусловленно это тем, что Linux надежнее, быстрее, а главное - бесплатный. Сам сервер может быть как физически отдельным компьютером, так и виртуальной машиной, эмулирующий компьютер, это нам сейчас не важно. Представьте, что вы купили новый компьютер - вот ваш сервер.

На сервере обычно установлена какая-нибудь Ubuntu или CentOS, т.к. с ними проще и быстрее работать. И разработчик (то есть - вы!) может установить туда любое программное обеспечение (программы, короче).

Вы знали, что когда вы открываете сайт, запрос от браузера обрабатывает не только конкретный компьютер (сервер), но и конкретная программа? Обычно эта программа называется "веб-сервер" и работает по порту 80. Когда вы открываете сайт, то порт 80 не указывается для краткости (является стандартом). А когда вы открываете сайт, работающий через https, то для работы используется порт 443, а не 80. Но на запрос отвечает та же программа - веб-сервер.

Сервер - это компьютер, на котором работает сайт. Веб-сервер - это программа, запущенная на этом компьютере, которая срабатывает при открытии вашего сайта.

Я пишу эту статью в 2019ом году, но уверен, что и много лет позже самым популярным сервером останется nginx. Чуть раньше самым популярным веб-сервером был Apache 2. Так называется программа, котороая откроет ваш сайт. Вы можете установить nginx на сервере простой командой (если на сервере Ubuntu):

apt install nginx

или apache 2

apt install apache2

Я не предлагаю ничего устанавливать. Просто мне хочется добавить конкретики в статью, чтобы было понятнее.

Окей, мы поняли, что нам нужен веб-сервер (программа!), чтобы обрабатывать запросы пользователя.

Теперь мы хотим генерировать страницы нашего сайта с помощью языка программирования. Пусть это будет PHP.

На самом деле не важно, какой язык - веб-сервер вам всё равно понадобится, просто он может называться по-другому (не nginx и apache).

Следующим шагом надо будет установить PHP и "соединить" его с веб-сервером таким образом, чтобы веб-сервер запускал интерпретатор PHP и передавал ему запрос, который пришел от пользователя. Сейчас я не буду писать как конкретно это сделать. Просто запомним: пользователь открывает сайт, веб-сервер получает запрос и запускает PHP-интерпретатор, чтобы последний скомпоновал страницу.

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

Таким образом полная схема выглядит так: пользователь открывает сайт, происходит запрос к вашему серверу-компьютеру (или виртуальному компьютеру), запрос принимает программа-веб-сервер, запускает интерпретатор PHP (или другой язык), в свою очередь PHP обращается к базе данных и забирает оттуда конкретные данные (статьи, комментарии и т.п.). Потом PHP собирает страничку, отдает ее обратно веб-серверу и веб-сервер возвращает ее пользователю. Давайте посмотрим на мега-картинку (которую я нашел в гугле):

Как работает XAMPP

Например, пост, который вы видите, отобразился по описанной схеме. Собственно, ВСЁ работает по описанной схеме, она универсальная и ничего другого человечество пока не придумало. Конечно, может быть разница, в зависимости от сложности сайта, но этот базис, по сути, не меняется принципиальным образом.

На самом деле веб-сервер (программа) и база данных (тоже просто программа) всегда загружены в память сервера (компьютера) и, как говорят, "крутятся" там всегда. Они, как говорится, "слушают" запросы и отвечают на них, если запросы приходят. А вот PHP (именно PHP!) не висит в памяти, он запускается веб-сервером каждый раз, когда он нужен. Ведь можно обойтись и без него: например, PHP не нужен, чтобы передать пользователю обычную HTML-страницу или

Что же это такое - XAMPP? Отвечаем!

Теперь мы знаем, что для работы сайта нам нужно три программы: веб-сервер (Apache 2 или nginx), PHP-интерпретатор (PHP 7) и база данных (MySQL). И XAMPP - это всего лишь набор программ. Это как бы "пакет программ", среди которых есть Apache, PHP и MySQL. И всё! Он ВСЕГО ЛИШЬ устанавливает эти программы на ваш компьютер. Точка.

Другими словами: вы можете всё установить и настроить самостоятельно. Но плюс XAMPP'а в том, что он здорово экономит время: достаточно его скачать и установить и вы сразу же можете начать разрабатывать на PHP, не тратя время на настройку всех программ по отдельности.

Я рекомендую его использовать. Особенно, если вы начинающий разработчик. Это очень удобно.

Замечу только одно: nginx очень сложно установить в Windows. Поэтому в составе XAMPP идет Apache 2. Что делает XAMPP кросс-платформенным.

Если вы разрабатываете под Linux, лучше разобраться как всё настроить самостоятельно! В Linux всё устанавливается и настраивается гораздо проще, никакого смысла в XAMPP там нет, как я считаю.

MariaDB вместо MySQL

Некоторое время назад в состав XAMPP перестала входить база данных MySQL. Вместо нее там теперь MariaDB. Эти базы практически одинаковые. Мария сделана разработчиками MySQL (по сути является чуть ли не его копией) и ее разработчики гарантируют, что она навсегда останется свободной. Так что выдыхаем и не обращаем на это внимание.

Что еще включает в себя XAMPP?

В состав XAMPP входит несколько больше того, что я описал. Давайте быстренько разберемся, что это и зачем.

На самом деле всё остальное практически никогда или вообще никогда не нужно PHP-разработчику.

  • Apache 2 — веб-сервер, который может работать на разных платформах (Windows, Linux и другие)
  • MariaDB — замена базе данных MySQL, являющаяся достаточной для PHP-разработки и практически копией MySQL
  • PHP — интерпретатор PHP последней или предпоследней версии
  • phpMyAdmin — веб-интерфейс для управления базой данных MariaDB, по сути это всего лишь веб-сайт (я предпочитаю ставить последнюю версию самостоятельно)
  • OpenSSL — программа для работы с SSL
  • XAMPP Control Panel — панель управления самим XAMPP (через нее можно запускать и останавливать Apache, MySQL, Tomcat и другое)
  • Webalizer — позволяет анализировать логи веб-сервера Apache (для разработки не нужно, совсем)
  • Mercury Mail Transport System — почтовый сервер, в теории может использоваться для работы с почтой на компьютере разработчика, но по факту обычно никому не нужен
  • FileZilla FTP Server — FTP-сервер, который, опять же, может использоваться на компьютере разработчика; но зачем, если у нас есть прямой доступ к файловой системе?
  • Tomcat — эта штука нужна для Java-разработчиков, и если вы только что не знали, что такое XAMPP, то не забивайте себе голову, это не для PHP-разработки
  • Strawberry Perl — это реализация Perl для Windows; совершенно непонятно, кому это нужно; во-первых, Perl давно устарел и всё чаще используется Python; во-вторых - в Windows особо нечего администрировать этим языком

Надеюсь, теперь вы знаете, что это такое - XAMPP. Закончу просто: XAMPP - это всего лишь набор программ для разработчика, каждую из которых можно установить вручную и без него (что дает больше возможностей для настройки, между прочим!). Удачи!

Комментарии

Комментариев пока нет. Станьте первым! Конечно, если вы не хотите написать мне гадости.
Обязательное поле.
Подсказка по Markdown, используется для оформления.

DeveloperNotes.ru © 2018 — 2020