При разработке веб-сайтов часто удобнее работать не с «настоящим» веб-сервером Интернет-провайдера, а сделать его программную копию, эмулировать этот веб-сервер на компьютере разработчика. Такую эмуляцию и называют локальным сервером.
Локальный сервер — что это?
Локальный сервер – это набор программного обеспечения, который выполняет функции сервера, работающий на локальном компьютере или в локальной сети предприятия.
Такой подход может быть полезен, например, для разработчиков веб-сайтов, чтобы вначале создать общую структуру сайта, отладить его работу и отработать его дизайн у себя на компьютере, а затем перенести готовый к использованию веб-сайт на внешний веб-сервер, где он станет доступным для широкого круга пользователей.
Локальный сервер содержит, в принципе, то же программное обеспечение, что и обычный веб-сервер, только работает в пределах локальной сети или отдельного компьютера.

Local server и localhost
Иногда локальный сервер (local server) могут называть localhost, хотя это не совсем верно. Localhost – это компьютер пользователя в сети, на котором осуществляется доступ к удалённому веб-сайту или приложению. Однако, этот веб-сайт или приложение могут физически располагаться на компьютере пользователя и работать по тем же протоколам, как и при удалённом доступе.
Для этих целей используется т.н. «обратный IP-адрес» (loopback address) 127.0.0.1, который используется для тестирования программ на компьютере разработчика, так как будто с ними работает конечный пользователь, без пересылки информации через сеть Интернет.
При вызове какого-либо IP-адреса, вызов с компьютера уходит в Интернет. Однако, вызов адреса 127.0.0.1 не вызывает никакого взаимодействия с внешней сетью, но заставляет компьютер пользователя вести себя как внешний сервер. В этом случае компьютер и называется «localhost». Адресное пространство для localhost составляет от 127.0.0.0 до 127.255.255.255, но обычно используется адрес 127.0.0.1. Однако для того, чтобы компьютер работал как локальный сервер, на нем должно быть установлено соответствующее программное обеспечение.
ПО для локального сервера
ПО локального сервера обозначается аббревиатурой xAMP, от его самых необходимых компонентов: Apache, MySQL, PHP. Данным сокращением описывается комплектация пакетов программ под соответствующую операционную систему, обозначаемую буквой «х». Например, для Windows это будет WAMP, для Linux – LAMP, для Mac OS – MAMP.
Системы xAMP представляют собой пакеты программ (сборки), которые не нужно устанавливать и настраивать по отдельности.
Для WAMP наиболее популярны локальные серверы: OpenServer, Денвер, XAMPP. В платформу WAMP также входят открытое ПО Apache, СУБД MySQL, интерпретатор PHP для работы с языками программирования, автоматический установщик расширений.
Open Server
Open Server - многофункциональный инструмент, очень популярный среди разработчиков. Имеет простой и понятный интерфейс и навигацию, удобную управляющую программу, а также большой выбор подключаемых компонентов. В полную версию включён необходимый набор программ для быстрого начала работы с ним (Opera, Sublime, WinSCP, Simplewall, Jcpicker, Bright Master). В состав входит несколько HTTP-серверов (Apache или Nginx), различные версии модулей PHP и СУБД.
Преимущества Open Server: многофункциональность, поддержка многих языков интерфейса, подробная инструкция пользователя, возможность работы через командную строку, быстрота запуска, просмотр логов в реальном времени.
К недостаткам следует отнести невозможность автоматического обновления пакета программ (только вручную).
Денвер
Название «Денвер», как ни странно, имеет российское происхождение. Это сокращение фарзы «джентльменский набор Web-разработчика», ДНВР). В английском варианте используется название Denwer. Денвер представляет собой набор дистрибутивов и программную оболочку, предназначенные для создания и отладки сайтов, веб-приложений и прочего динамического содержимого интернет-страниц на локальном ПК без необходимости подключения к сети Интернет под управлением ОС Windows.
К достоинствам Денвера можно отнести простоту и небольшой объём, к недостаткам – в целом не очень широкий функционал, который, однако, каждый разработчик может «добирать» для себя самостоятельно.
XAMPP
XAMPP (читается как «Зэмп») — кроссплатформенная сборка локального веб-сервера, которая состоит содержащая сервер Apache, систему управления баз данных Maria SQL (либо MySQL), интерпретатор скриптов PHP, язык программирования Perl и большое количество дополнительных библиотек, позволяющих запустить полноценный веб-сервер.
Кроме этого, пакет XAMPP содержит также FTP-сервер FileZilla, сервер POP3/SMTP, а также утилиту phpMyAdmin. XAMPP работает со всеми 32-х разрядными ОС Microsoft (98[2]/2000/XP/2003/Vista/7), а также с Linux, Mac OS X и Solaris. Программа свободно распространяется согласно лицензии GNU General Public License.
Достоинства XAMPP – широкой функционал. К недостаткам можно отнести требовательность к квалификации разработчика, который должен хорошо ориентироваться, как правильно работать со всеми его компонентами.
Другие варианты сборок локальных серверов
Есть также много других вариантов наборов программ локального сервера: EasyPHP, VertrigoServ, WampServer, MoWeS Portable, AppServ, Bitnami, Endels, Uniform Server, Usbwebserver, EleanorServer, VVV.
Для чего может понадобиться локальный сервер
Локальный сервер может быть полезен, например для следующих случаев:
- Установка различных систем управления контентом (CMS) для знакомства с их интерфейсом и административной панелью.
Сейчас уже практически никто не создаёт веб-сайты с нуля, как никто, например, не шьёт костюм, начиная с изготовления ткани на ткацком станке. Для этого, в основном, используются различные т.н. «системы управления контентом» CMS (Content Management System), как WordPress, или многие другие.
Однако, чтобы убыстрить знакомство с ними, понять различные аспекты взаимодействия и сэкономить время, усилия и стоимость удалённого доступа, можно установить CMS как локальный сервер, и отработать в такой лаборатории все требуемые детали.
- Для обучения программированию, работе в различных программах вёрстки, обработки изображений и пр.
Разработки программ часто ведётся удалённо на облачных платформах PaaS (Platform as a Service). Это даёт возможность коллективу разработчиков ПО значительно сэкономить на начальных инвестициях, поскольку в этом случае не нужно закупать дорогостоящее серверное оборудование, чтобы развернуть аппаратную среду разработки у себя в офисе или дома. Вместо этого, можно воспользоваться облачными услугами PaaS, которые предоставят разработчику весь необходимый спектр сервисов.
Однако, эту среду разработки нужно вначале изучить, и понять все её особенности. Если сразу начать работать с облачным провайдером PaaS, это может быть чревато нерациональными затратами на удалённый доступ, возможностью приобретения функционала, который в дальнейшем не потребуется, да и время будет тратиться больше.
Поэтому, рациональным решением будет развёртывание среды PaaS в минимальной конфигурации в виде локального сервера, а затем, после получения необходимого опыта можно будет переходить на взаимодействие с полнофункциональной платформой в удалённом режиме.
- Для тестирования корректности работы систем резервирования и катастрофоустойчивости
При использовании систем резервного копирования необходимо проверять их работоспособность. Если этого не делать, то возможны ошибки, например при кодировке или форматировании данных. Поэтому, корректность работы системы резервного копирования лучше вначале проверять на локальном сервере.
- Для корректировки структуры веб-сайта
Изменение какой-либо информации на сайте, например, при установке новых модулей, изменение вёрстки, импорт и экспорт большого количества информации лучше вначале делать на локальной копии сайта, которая работает в среде локального сервера. Иногда крупные изменения структуры сайта могут приводить к искажению его внешнего вида, скрытию на экране важной для пользователя информации и даже к нарушению его нормальной работы.
Конечно, если необходимо поменять, скажем, только номер контактного телефона ила добавить пункт меню, то это безбоязненно можно сделать и прямо на веб-сервере, без того, чтобы тратить время на проверку результата такого элементарного действия на локальном сервере.
Однако, более глубокие изменения структуры сайта лучше в начала тестировать на локальной копии веб-сайта, а потом уже запускать её «в производство».
Заключение
Итак, локальный сервер – один из самый востребованных инструментов веб-разработчика. Локальный сервер для него – это и «производственный станок», и «нагрузочный стенд» (подобный стенду для настройки режимов двигателя в гараже) и «мольберт» дизайнера.
Хотя Денвер является старейшим из наборов ПО локального сервера, многие разработчики продолжают используют Денвер, и не желают его менять на что-то другое. Его достоинством является простота, стабильность работы и нетребовательность к системным ресурсам. Некоторые недочёты или недостающие функции Денвера разработчики предпочитают исправлять или дополнять самостоятельно.
Например, для создания лендинг-страниц применим и Денвер, и OpenServer и другие платформы. При изменении круга задач, разработчик часто не меняет всю платформу, а изменяет уже используемые инструменты. Для новичка в разработке, в плане иллюстрации работы настоящего веб-сервера, ни одна программа не будет иметь преимуществ.
В целом, можно сказать, что все платформы хороши для того или иного применения. Большую роль играет задача, для которой используется локальный сервер. Рекомендовать какую-то платформу, как наилучшую для локального сервера – некорректно, как нельзя рекомендовать универсальный двигатель автомобиля, который подойдёт и для гонок, и для поездок в супермаркет.
Некоторые разработчики используют довольно редкие виды локальных серверов: WampServer, EasyPHP, AppServ и др. Однако, повторим, что идеального и универсального решения для выбора локального сервера не существует. Всё зависит от круга задач, который необходимо решать в той или иной ситуации.