Когда разрабатываешь что-то для интернета, то без локального сервера не обойтись. Поставить руками сервер Apache, интерпретатор PHP и базу MySQL легко, но вот настроить их довольно сложно даже по подробному мануалу. А уж поддерживать и ставить новые версии компонентов вообще довольно заморочно.
Поэтому за бугром есть куча сборок для Windows, одна из которых называется XAMPP. А для русскоговорящих долгое время эталоном сервера для разработки была сборка Denwer, которая уже лет 5 не обновляется. Разные энтузиасты создавали проекты со своим видением такой сборки (EleanorServer, Endel), но со временем эти проекты умирали. Фактически остался OpenServer, который создал и поддерживает Максим Архипов.
Сравнение XAMPP и OpenServer
Если сравнивать XAMPP с OpenServer, то у каждого проекта есть свои плюсы и минусы.
XAMPP — это практически «голый» сервер, где нужно владеть азами знаний Apache, чтобы подстроить его под себя, создать руками виртуальные хосты. Зато работает он быстро и наиболее близок к нормальному хостингу. В последних версиях даже сделали заглушку для тестирования отправки почты, что часто требуется при создания всяких форм обратной связи.
OpenServer более автоматизированная сборка для разработки. К ней еще идут дополнительно программы в расширенном пакете, которые работают без инсталляции. А управлением сервером сделано из своей оболочки, которая позволяет автоматически создавать виртуальные хосты для отдельных сайтов, настраивать сервер под себя без лазанья в кучи конфигов. Однако запускается он существенно дольше, да и работает он тоже медленнее XAMPP (и то, и другое обычно не критично для разработки).
В принципе, если работаете с готовым движком, то особой разницы нет. Однако если копнуть чуть глубже, разница есть и существенная.
Очень много людей ушли именно с Denwer на XAMPP именно из-за того, что конфиги часто были не оптимальны и генерировались скриптами «на лету», так что править косяки было очень сложно и вместо работы, нужно было «раскапывать» проблемы.
Проблемы OpenServer, мешающие жить
Вот и я на днях столкнулся с такой же проблемой: на OpenServer неправильно работал движок KodiCMS Павла Бучнева (недавно статья была о этом движке даже на habrahabr.ru). И косяк был в том, что для работы с требовался не только обработка обработка запросов GET/POST, но и PUT, DELETE. Ошибка не сразу выяснилась, но даже когда я её обнаружил к консоли и пошел искать решение, его не обнаружилось даже на форуме сборки. Нет, топик был и есть, вот только решения не подходило. Максим писал, что это типа защита от взлома (на локальном сервере, на локальной машине ?!).
Поскольку я еще изучаю Laravel, там тоже есть такие запросы (хотя я до них еще не добрался), так что проблема есть и её надо решать.
В XAMPP это все прекрасно работает «из коробки».
Понятно, если бы я был «гуру» в Apache, я бы разобрался что и где подписать/подправить, но я такими знаниями не обладаю, поэтому мне проще сменить сборку.
Ну и не зря я уже писал о настройки OpenServer и PHPStorm из-за путей конфигов в предыдущих статья.
Так что все эти проблемы привели меня опять к XAMPP, которым я пользуюсь от случая к случаю.
Какую версию XAMPP ставить.
Для пользователя Windows предлагается только один инсталлятор на 32 бита. А вот версий предлагается 2: 1.8.3 с php 5.5 и 1.8.2 c php 5.4. Особой разнице вроде бы нет, так что я ставил последнюю версию.
И вот тут-то меня подстерегала большая птица ОБЛОМИНГА! Сервер ставился, сайты работали. Вот только страницы генерировались В РАЗЫ МЕДЛЕННЕЕ, чем на OpenServer.
«Ты же только что говорил, что XAMPP быстрее OpenServer?» — спросит меня внимательный читатель. Отвечаю: я сам был в шоке и искал причину в конфигах Apache, php, Windows. Но так я и не понял в чем дело.
Тогда я взял версию 1.8.2. и все стало просто летать! Так что новое не всегда лучше, чем проверенное старое ?
Да, еще хотел бы сказать о интересной особенности Apache, который я откопал случайно.
Параметр DocumentRoot в сервер Apache
При создании виртуального хоста, в httpd.conf прописывается DocumentRoot, где хранятся все хосты физически. Казалось бы, такая незаметная настройка, но вот если попробовать в сервере прописать виртуальный хост не в этой директории, то он работать не будет. От слова совсем!
Пока я не понял это, я пытался прописывать разные пути, шаблоны, перерыл интернет и не нашел ответ. Чисто случайно я где-то прочитал намек на эту настройку на английском, но дошло до меня её важность очень не скоро.
Так что если вы хотите создать для себя отдельную папку для сайтов где-нибудь в корне, как это сделано в OpenServer, то либо экспериментируйте с этой настройкой. Либо делайте как я:
- В парпе XAMPP/httdocs я создал папку localhost и перенес туда все файлы с папками из этой папки.
- Хосты создаю в папке XAMPP/httdocs в отдельных папках
- Прописываю названия в файле host в c:\windows\system32\drivers\etc
- А в настройках апача смотрим xampp\apache\conf\extra\httpd-vhosts.conf раскомментируем пример хоста и сначала создаю localhost, а потом уже копирую и добавляю свой хост. Получается что-то такое:
<virtualhost :80=""> ServerAdmin jean179@mail.ru DocumentRoot "D:/xampp/htdocs/localhost" ServerName localhost ErrorLog "logs/localhost-error.log" CustomLog "logs/localhost-access.log" common </virtualhost> <virtualhost :80=""> ServerAdmin jean179@mail.ru DocumentRoot "D:/xampp/htdocs/ kodi.dev" ServerName kodi.dev ErrorLog "logs/ kodi.dev-error.log" CustomLog "logs/ kodi.dev-access.log" common </virtualhost>
Таким образом я полностью контролирую создание виртуальных хостов, все настройки стандартны и понятно где их искать. А каждый сайт лежит в своей папке и для резервного копирования легко можно настроить архивацию на конкретную папку.
Заключение.
Таким образом, сейчас я перешел на XAMPP версии 1.8.2 и спокойно буду на ней сидеть еще долго. А на более новую версию перейду когда поправят ошибки. Ну или когда допилят OpenServer
какой смысл сравнивать этих мамонтов, если можно поднять проект внутри vagrant
А смысл ставить виртуальную машину, на неё накатывать убунту, ставить вагрант и поднимать все это для одного-двух проектов. Проще хамрр поднять и спокойно пользоваться без всяких напрягов. В 90% этого хватает за глаза.
VirtualBox/Vmware, Ubuntu/Debian/CentOS вот вам и локальный web-сервер.
Просто для создания сайта? Идиотизм чистой воды. Геморроя будет выше крыши, а выхлопа — чуть. Проще OpenServer или XAMPP накатить. А вот если разрабатывать и писать код, то Vagrant
ЛОЛ, всегда угорал с таких людей. Для таких проще поднять вируталку, чем просто веб-сервер. Полезно время расходуете )
Подскажите, а новая версия 7.1.30 лучше чем 1.8.2 ?
У меня на xampp не видятся css (с онтосительным путем /style.css)поскольку адрес должен быть через localhost. По итогу пишу полный путь с http://localhost/sitename/style.css иначе не видит. И вот потом еще придется дрочиться с заменой обратно.
Не знаю как OpenServer отработает, но у Денвера без локал хоста и все четко. Думаю и тут тоже будет четко.