Веб-сервер (Web Server): для чего он нужен, как устроен и как работает. W3Tech: доля nginx в мире выросла до трети, Apache упал ниже половины Как это все работает
Прежде чем выложить сайт или блог в интернет, его следует протестировать, насколько правильно будет выглядеть дизайн сайта, как будут работать скрипты, форма обратной связи, плагины и так далее.
Вот по этой причине многие Веб-разработчики (блогеры, веб-дизайнеры или веб-программисты
) используют тестовые площадки, на которых они проводят проверки, пробы, эксперименты, в общем, любую тестовую работу над будущим проектом.
Существуют два способа по созданию тестовых площадок
.
1. Тестовая площадка на хостинге
Некоторые новички используют для тестирования проектов платные хостинги, размещая при этом два сайта – один основной (рабочий) и второй дополнительный, тестовый.
Минусы такого способа
:
- нехватка места на хостинге;
- низкая скорость интернета;
- не всегда есть деньги, чтобы купить платный хостинг для тестирования проектов.
2. Тестовая площадка на вашем компьютере
Этот способ, на мой взгляд, лучший. Его я хочу рассмотреть с вами более подробней. Вначале скажу о плюсах:
- не нуждается в подключении интернета;
- не нужны финансовые затраты
Что это за тестовая площадка на компьютере?
Речь идет о локальном сервере
, который устанавливается на ваш компьютер. С помощью локального сервера вы сможете легко и быстро протестировать проект.
Кто-то может сказать: а зачем вообще проводить тестирование своего проекта через локальный сервер? Ведь достаточно открыть файл «index.html » и мы увидим, как будет выглядеть сайт в интернете. Да, это правда, достаточно и этого, но если вы используете на сайте , чаты, форумы, различные (WordPress, Joomla, drupal), то здесь без локального сервера никак . Тем более, если вы используете для своего проекта CMS движок (WordPress, Joomla, drupal), то там нужна не только поддержка php, но еще и база данных MySQL.
Итак, локальный сервер – это специальный набор программ, обеспечивающий правильную работу скриптов прямо у вас на компьютере. В сборку входят: сам сервер, компилятор PHP (с его помощью браузер может прочитать php код и обработать правильно страницу ), компоненты для работы с БД (База Данных) и многие другие программы.
Подготовил для вас список популярных локальных серверов для сайта. Читайте, оценивайте, качайте и пользуйтесь.
Список популярных локальных серверов для сайта.
Denwer
– это бесплатный локальный сервер для тестирования сайтов, веб-приложений или Интернет страниц. В Denwer входит: веб-сервер Apache, панель phpMyAdmin и MySQL для работы с БД (базами данных) и другие программы.
Локальный сервер Denwer работает только на операционную систему Windows.
Скачать можно с официального сайта denwer.ru
XAMPP – это бесплатный локальный сервер для тестирования сайтов, веб-приложений или Интернет страниц с простым пользовательским интерфейсом. Поддерживает работу в системе Windows, Solaris, Mac OS X и Linux.
Скачать можно с официального сайта www.apachefriends.org/en/xampp.html
AppServ - еще один бесплатный локальный сервер. Быстрая и легкая установка.
Скачать можно с официального сайта www.appservnetwork.com
VertigoServ
- простенький по установке локальный сервер.
Работает только в операционной системе Windows.
Скачать можно с официального сайта vertrigo.sourceforge.net
Zend Server Community Edition - бесплатный локальный сервер.
Скачать можно с официального сайта www.zend.com
Open Server - это бесплатный локальный сервер с высоким функционалом по разработке и созданию сайтов. Работает в операционной системе Windows.
Скачать можно с официального сайта open-server.ru
Лично я пользуюсь бесплатным локальным сервером . Почему Denwer, а не какой-то другой? Скорей всего привычка. Я начинал с локального сервера Denwer, потому только им и пользуюсь. А вам нужно самим выбрать, с каким локальным сервером будете работать.
Скачивайте локальный сервер, устанавливайте на компьютер, читайте или смотрите видео урок или инструкцию по использованию. Тестируйте свои веб-проекты и пусть они вам приносят много дохода!
Самые популярные веб-серверы в разных странах. Источник: W3Tech.com
Казалось бы, совсем недавно в 2012 году мы , что веб-сервер nginx обогнал Microsoft IIS и вышел на второе место в интернете среди активных сайтов (у nginx было 12,18%, у Microsoft - 12,14%). За прошедшие пять лет nginx сильно укрепил позиции. По статистике Netcraft за март 2017 года в той же категории его доля составляет 19,67%, а Microsoft IIS опустился до 8,95%. Лидер прежний - Apache с 45,82%.
Nginx был единственным веб-сервером, доля которого выросла во всех метриках Netcraft в марте 2017 года. Это был единственный веб-сервер, доля которого стабильно росла.
Статистика Netcraft по доле веб-серверов на активных сайтах, март 2017 года
Кроме Netcraft, есть и другая статистика по веб-серверам. Например, W3Tech.com вчера выдал очень красивые «круглые» цифры . По их оценке, nginx сейчас установлен на каждом третьем веб-сервере в мире.
Семь лет назад доля nginx составляла всего 3,9%, а сейчас уже 33,3%.
За тот же срок 2010-2017 гг доля Apache упала с 71,5% чуть ниже 50%, а доля Microsoft IIS упала с 20,6% до 11,3%.
По статистике переходов , чаще всего на nginx переходят с Apache. Обратный процесс тоже наблюдается.
Мировым лидером по внедрению nginx является Россия с показателем 76,8%. Это и понятно, ведь автор nginx - российский Игорь Сысоев. Он написал программу в 2004 году. Кроме России, абсолютное лидерство nginx имеет в Беларуси, Казахстане и Украине, в отдельных странах Азии, Африки и Южной Америки.
Почти во всём остальном мире лидирует Apache, за исключением Китая, Турции, Египта и нескольких арабских стран, где первое место сохраняет Microsoft IIS.
Почему доля nginx растёт, а Apache падает? Возможно, это связано с более простой установкой и настройкой, поддержкой более современных протоколов. Среди новых сайтов доля nginx 36,4%, а Apache - 47,7%.
76,8% сайтов с поддержкой HTTP/2 работают на nginx, и только 2,3% на Apache (модуль HTTP/2 для Apache до сих пор имеет статус «экспериментального»). Похожая ситуация среди сайтов с поддержкой IPv6 : 63,6% из них работает на nginx, втрое меньше - на Apache. Nginx является выбором № 1 среди сайтов, написанных на Ruby, Python и Scala, а также у тех, кто использует современные JavaScript-библиотеки вроде AngularJS, Vue,js и React. Создаётся впечатление, что всё самое современное работает на nginx.
Среди операционных систем чёткого тренда нет, но серверы на Red Hat/CentOS в подавляющем большинстве используют Apache, а системы на Gentoo предпочитают nginx.
Работа с Web-сервером Russian Apache. Русский Apache
Самый распространенный Web-сервер в мире - это Apache. По данным компании Netcraft (http://www.netcraft.com/ Survey/ ) общее число Web-узлов, работающих под его управлением, к концу 1998 г. достигло 2 млн. (55% общего числа узлов) и постоянно растет. Для сравнения: на долю серверов Microsoft приходится 25%, Netscape -7%. Будучи бесплатной открытой программой, предназначенной для бесплатных же Unix-систем (FreeBSD, Linux и др.), Apache по функциональным возможностям и надежности не уступает коммерческим серверам, а широкие возможности конфигурирования позволяют настроить его для работы практически с любой конкретной системой. Существуют локализации сервера для различных языков, в том числе и для русского.
Исторически сложилось так, что русские тексты в Internet могут быть представлены в разных кодировках, из которых наиболее распространены koi8-r (или просто koi8) и Windows-1251: с первой работает большинство серверов и рабочих станций под управлением Unix, вторая является стандартной для всех версий Windows. Поскольку кодировка Windows-1251, естественно, применяется на подавляющем большинстве клиентских машин, доля тех, кто путешествует по русской части WWW, используя koi8, не превышает сейчас 5%. Однако в этой кодировке хранятся документы на многих Unix-серверах, в ней чаще всего передаются почтовые сообщения и практически всегда - письма в телеконференции, с ней же работают многие русскоязычные каналы IRC (кстати, аббревиатура КОИ расшифровывается как "код обмена информацией"). Чтобы решить проблемы, возникающие при несовпадении кодировок текста на сервере и клиентской машине, и был создан русский модуль Apache-RUS для Web-сервера Apache.
В статье мы рассмотрим процесс установки и настройки как самого сервера, так и механизма перекодирования документов "на лету".
Установка
Свежую версию Apache-RUS можно получить по адресу ftp://apache.lexa.ru/pub/apache-rus/ ("старшая" часть номера версии, например 1.3.3, соответствует версии оригинального Apache, "младшая", например PL27.3, - так называемому patch level, т. е. версии русского модуля). Рекомендуется устанавливать те версии, которые зарекомендовали себя как "стабильные". Здесь настройка сервера описывается на примере Apache_1.3.3rusPL27.3.
Итак, первым делом мы переписываем на свою машину архив (менее 1,5 Мбайт) и распаковываем его:
# ftp ftp://apache.lexa.ru/pub/apache-rus/ apache_1.3.3rusPL27.3.tar.gz
# tar xvzf apache_1.3.3rusPL27.3.tar.gz
После этого входим в созданный при распаковке каталог apache_1.3.3rusPL27.3 и запускаем сценарий configure:
# cd apache_1.3.3rusPL27.3
При необходимости сценарию можно в явной форме указать аргументы (их список выдается по команде configure -help). Так, если требуется установить сервер в иной каталог, нежели стандартный, нужно выполнить "configure -prefix=
Когда configure отработает, следует, как обычно, дать команды make и make install (эти действия выполняются пользователем root).
Теперь сервер установлен в каталоге /usr/local/apache, но запускать его пока нельзя - сначала мы должны отредактировать файлы настройки httpd.conf, access.conf и srm.conf в каталоге /usr/local/apache/etc/ (начиная с версии 27.4 - /usr/local/apache/conf).
Настройка
Настройка конфигурационных файлов Web-сервера - самый ответственный шаг при его установке. Здесь мы рассмотрим только наиболее распространенные директивы и их параметры, поскольку полный перечень с описанием займет не один десяток страниц. Сервер перечитывает конфигурационные файлы при запуске, а также при получении сигнала -HUP (жесткий рестарт) или -uSR1 (мягкий рестарт). Если сервер находится в рабочем состоянии, то при изменении конфигурации его рекомендуется перезапустить командой
# kill -USR1 `cat /usr/local/apache/logs/httpd.pid`
В этом случае имеющиеся соединения не закрываются принудительно и завершаются обычным образом, а следующие клиенты работают уже с новыми конфигурационными файлами.
Файл access.conf
В access.conf содержатся директивы, описывающие права доступа к каталогам и файлам Web-сервера. Прежде всего решите, в каком каталоге будут храниться документы. По умолчанию это /usr/local/apache/share/htdocs, однако многие администраторы предпочитают размещать документы начиная с каталога /www/<имя_сервера>/, поскольку при такой организации проще ориентироваться в структуре файлов. Пусть, например, мы создали каталоги:
/www/radio-msu.net/
/www/people.radio-msu.net/
Они будут корневыми для соответствующих виртуальных серверов.
Файл access.conf может содержать секции Directory, Location и Files, которые ограничены одноименными директивами. В параметрах этих директив могут использоваться символы "?" и "*" , а также регулярные выражения, предваряемые тильдой, например
# директивы, относящиеся ко всем документам, хранящимся в
каталоге /www/rmt.ru и вложенных в него
# директивы, относящиеся ко всем документам, доступным по адресу http://<имя_сервера>/cgi-bin/ <путь_к_файлу>
# директивы, относящиеся к файлу form.html из каталога
Различие между секциями Directory и Location состоит в том, что первая относится к каталогам на диске, вторая - к виртуальному пути (URL), который браузер запрашивает у Web-сервера. И в той, и в другой могут присутствовать директивы order, allow и deny, которые позволяют ограничить доступ к каталогу или URL с различных машин.
Следующие две директивы относятся к секции
Options
Возможные значения параметров:
ExecCGI - разрешить выполнение CGI-сценариев в данном каталоге и его поддереве;
FollowSymLinks - разрешить переходы по символическим ссылкам (создаваемым командой ln);
Includes - разрешить SSI (Server Side Includes);
Indexes - разрешить выдачу листинга каталога, если в нем нет файла index.html (или файла индекса, заданного директивой DirectoryIndex);
MultiViews - разрешить поддержку многих языков; по умолчанию она отключена, и включать ее, как правило, не нужно; поддержка перекодирования "на лету" для русского языка устанавливается с помощью других директив, которые мы рассмотрим позже;
All - установить сразу все перечисленные режимы кроме MultiViews.
При отсутствии специальных требований к безопасности вполне допустимо указать "Options All" в секции
AllowOverride
Большинство директив могут задаваться не только в конфигурационных файлах сервера, но и в файлах.htaccess в каталогах сервера. Директива AllowOverride определяет набор директив, допустимых в файлах.htaccess. Параметры могут быть указаны следующие:
FileInfo - разрешить директивы, отвечающие за типы документов;
Indexes - разрешить директивы, связанные с листингом каталогов;
Limit - разрешить команды allow и deny, которые ограничивают доступ к файлам в зависимости от адреса клиентского компьютера;
Options - разрешить описанную выше директиву Options.
Учтите, что при включении последнего режима пользователи получают возможность создавать собственные файлы.htaccess и разрешать в них выполнение CGI-сценариев. Поэтому если нужно контролировать CGI-сценарии пользователей, не следует распространять на пользовательские каталоги действие директивы AllowOverride Options.
Однако во многих случаях (в частности, когда права на изменение содержимого сервера есть только у администратора) файл access.conf может выглядеть так, как в.
Файл srm.conf
Файл srm.conf содержит директивы, связанные с общими настройками структуры каталогов сервера. Как правило, в нем достаточно изменить лишь несколько строк.
DocumentRoot <первый каталог сервера>
Путь к каталогу по умолчанию, индексный файл которого пользователь получит при обращении к серверу (http://<имя_сервера>/). Эту директиву следует задать и для каждого из виртуальных серверов (в секции
UserDir <имя пользовательского каталога>
Каталог, в котором пользователи должны размещать свои файлы, чтобы они были доступны по адресу http://<имя_сервера>/~<имя_пользователя>/. Стандартно public_html. Иногда, чтобы облегчить жизнь пользователям, администраторы дают директиву "UserDir www".
DirectoryIndex <список файлов индекса>
Файл индекса - это тот файл, который будет передан клиенту при обращении к каталогу. Если указать несколько имен, сервер будет искать подходящий файл "слева направо". По умолчанию список содержит всего одно имя - index.html, но принято добавлять в него и другие распространенные имена индексных файлов. Например, директива может иметь вид: DirectoryIndex .index.html index.html index.htm index.cgi index.shtml home.html home.htm default htm default html
Чтобы включить на сервере поддержку CGI-сценариев, следует убрать знак комментария перед директивами ScriptAlias и AddHandler cgi-script .cgi. Первая задает каталог на диске, в котором будут храниться исполняемые программы, а вторая определяет, что все файлы с расширением.cgi должны обрабатываться как сценарии.
Директива ErrorDocument позволяет заменять стандартные сообщения сервера об ошибках на свои. Например, в случае самой распространенной ошибки - 404 (файл не найден) - считается хорошим тоном выдавать пользователю страницу с предложением продолжить свой путь по серверу или форму для поиска по узлу. Реализуется это достаточно просто: в настройках сервера мы убираем знак комментария со строки
ErrorDocument 404 /missing.html
B корневом каталоге каждого виртуального сервера создаем файл missing.html. Рекомендуется дать в нем ссылки на основные разделы сервера - и для удобства пользователей, и для того, чтобы предоставить необходимую информацию поисковым роботам, индексирующим серверы.
Файл httpd.conf
Конфигурационный файл httpd.conf является основным и содержит настройки, связанные с работой Web-сервера, виртуальных серверов, а также всех его программных модулей. Кроме того, именно в нем настраивается перекодирование русских букв при передаче от сервера к клиенту и обратно.
Директива Port, помещенная в самом начале файла, определяет номер порта для http-сервера; по умолчанию это 80. При необходимости можно приписать серверу другой порт или несколько портов, для чего служит директива Listen.
Директива HostnameLookups с параметром on или off включает или, соответственно, отключает преобразование численных IP-адресов клиентов, получивших документы с сервера, в доменные имена. Такое преобразование несколько замедляет работу сервера, но при числе посещений менее 10 000 в сутки это, как правило, практически не заметно.
Директивы User и Group задают пользователя, который будет администрировать сервер. С точки зрения безопасности нежелательно указывать здесь существующего пользователя, имеющего доступ к каким-либо другим ресурсам или файлам. Лучше создать отдельного пользователя и группу специально для http-сервера, например:
Директивы ServerRoot, ErrorLog, CustomLog определяют соответственно корневой каталог http-сервера, путь к журналу регистрации ошибок (error_log) и путь к общему журналу обращений к серверу (access_log).
Директива CacheNegotiatedDocs разрешает кэширование документов, полученных с сервера. По умолчанию этот режим отключен, но, поскольку пропускная способность отечественных Internet-каналов еще долго будет оставлять желать лучшего, хорошо бы его включить: тогда пользователю не придется ждать загрузки картинок при каждом обращении к вашей странице.
Настройка виртуальных серверов в файле httpd.conf
В большинстве случаев один http-сервер способен обрабатывать запросы, поступающие на различные, так называемые виртуальные, Web-серверы. Виртуальные серверы могут иметь как один и тот же IP-адрес, но разные доменные имена, так и разные IP-адреса. С точки зрения пользователя второй вариант чуть более предпочтителен, поскольку запрос к серверу, отличающемуся от основного только доменным именем, должен содержать его имя, а некоторые старые браузеры, не поддерживающие протокол HTTP/1.1 (например, Microsoft Internet Explorer 2.0), не включают в запрос эту информацию. Однако такие браузеры выходят из употребления (сейчас их уже менее 0,5% общего числа); с другой стороны, выделение собственного IP-адреса каждому виртуальному серверу может быть неоправданной растратой адресного пространства компании.
Для описания адресов и доменных имен виртуальных серверов служат директивы ServerName, ServerAlias, NameVirtualHost и VirtualHost. Они необходимы, только если вам нужно установить более одного виртуального сервера.
http://www.apache.org/ - официальный сервер разработчиков Apache
http://apache.lexa.ru/ - сервер группы разработчиков русского модуля Apache
Согласно статистическим данным проекта W3techs, более 80% веб-приложений и сайтов работают на серверах с открытым исходным кодом. Не зря именно о «доминировании в сети» чаще всего говорят сторонники Open Source, когда заходит речь о доле Linux на рынке.
На какие проекты следует обратить внимание в первую очередь? Какие открытые серверы лучше всего подойдут для решения пользовательских задач?
Эксперт в области e-Government Робин Мульвижк на страницах сайта OpenSource.com предлагает пять наиболее популярных открытых веб-серверов.
Apache HTTP Server
В феврале 2015 года этот проект отметил своё двадцатилетие. Это самый популярный веб-сервер в мире - по данным W3techs, на нём работает 52% всех сайтов в мире.
Чаще всего платформой для Apache HTTP Server является Linux. Но приложение мультиплатформенное - сервер можно развернуть на OS X или Windows. Решение построено по модульному принципу, поэтому при необходимости его функциональность расширяется. Например, при помощи модуля mod_proxy на сервере создаётся шлюз, модуль mod_proxy_balancer сбалансирует нагрузку для всех поддерживаемых протоколов, а модуль mod_http2 отвечает за поддержку HTTP/2.
Проект сопровождается прекрасной документацией и комплексной поддержкой со стороны других пользователей. Распространяется решение на условиях Apache License v. 2.
NGINX
Разработка этого сервера началась в 2002 году российским программистом Игорем Сысоевым. Первый публичный выпуск приложения состоялся в 2004 году и по сути являлся ответом на проблему C10K - задачи по построению высокопроизводительного сервера, способного одновременно обслуживать 10 тысяч соединений.
Согласно данным W3techs, этот сервер занимает второе место по популярности в мире среди решений с открытым исходным кодом. На нём работает чуть больше 30% всех сайтов.
Чаще всего системные администраторы выбирают NGINX из-за высокой производительности и способности к масштабированию. Решение прекрасно подходит для обработки множества параллельных сеансов.
Распространяется приложение на условиях очень короткой BSD-подобной лицензии.
Apache Tomcat
Apache Tomcat - открытое приложение, разрабатываемое Apache Software Foundation и представляющее собой контейнер сервлетов, который функционирует в качестве веб-сервера, расширяя таким образом его функциональность. Написан на языке Java. Изначально права на решение принадлежали компании Sun Microsystems, которая в 1999 году безвозмездно передала их фонду.
Как правило, Apache Tomcat используется либо как обслуживающий локальные файлы самостоятельный веб-сервер, либо как сервер приложений на Apache HTTP Server. По данным W3techs, он применяется на 1% всех сайтов Интернета.
Распространяется приложение на условиях Apache License v. 2.
Node.js
Разработка Node.js началась в 2009 году Райаном Далем. В настоящее время проектом управляет Node.js Foundation при поддержке Linux Foundation. Согласно данным W3techs, рыночная доля решения составляет 0,2%.
Node.js представляет собой платформу для выполнения сетевых приложений и зачастую играет роль самостоятельного веб-сервера. Благодаря своим конструктивным особенностям он позволяет добиться высокой пропускной способности и масштабируемости веб-приложений, работающих в режиме реального времени, что весьма актуально для браузерных игр.
Распространяется приложение на условиях оригинальной лицензии.
Lighttpd
Первый выпуск этого приложения датирован мартом 2003 года. Как и NGINX, веб-сервер Lighttpd способен поддерживать 10 тыс. соединений одновременно, что стало возможно благодаря их асинхронной обработке. По данным W3techs, этот сервер обслуживает 0,1% всех сайтов.
Отличительные особенности Lighttpd - небольшая нагрузка на процессор и высокая скорость оптимизации. Заложенные в его работу принципы позволяют сделать загруженность платформы независимой от числа текущих соединений.
Распространяется решение на условиях лицензии BSD.
Во времена моей юности в русскоязычном сегменте сети интернет был популярен только один единственный локальный веб-сервер. Это, как вы уже догадались, старый добрый Denwer. Он прочно обосновался на моём компьютере еще в далёком 2003 году. Другие альтернативы если и существовали в то время, то были известны в узких кругах и были не столь популярны.
Давайте посмотрим на то, что мы можем использовать сегодня, спустя столько лет. Я предлагаю рассмотреть, протестировать и сравнить 14-ть! программных комплексов предназначенных для использования в качестве локального веб-сервера для Windows.
1. AMPPS
Последняя версия: 1.7
Русский язык: есть (частично)
Portable версия: Нет
Домашняя страница: http://www.ampps.com/
Базовый комплект:
- Softaculous AMPPS 1.7
- Apache 2.2.22
- MySQL 5.5.22
- PHP 5.3.10 and 5.2.17
- PERL 5.10.1
- Python 2.7.2
- MongoDB 2.0.4
AMPPS - это не просто локальный сервер, это целая библиотека приложений, где каждое из них можно быстро установить, повертеть и поковырять не отходя от кассы. Всё это хозяйство кропотливо каталогизировано и подробно описано.
Несомненным плюсом данной сборки является поддержка многих распространенных CMS, блог-платформ, веб-форумов, досок объявлений, фотогалерей и проч. Всего доступных приложений более 200! Набор включённых в пакет компонентов так же не отстает от жизни, все модули довольно свежие и, что примечательно, здесь мы можем найти такую экзотику как Python и MongoDB.
Из минусов я хочу отметить частичный русский перевод, который присутствует только в каталоге скриптов, да и то не везде. После перезапуска Apache трей-меню отказалось работать, перезагрузка Windows не помогла. Еще одним минусом является отсутствие портативности. На мой взгляд AMPPS больше пригодится новичкам для изучения скриптов, нежели серьёзным разработчикам. Работать с этим сервером мне было не очень комфортно, есть варианты и получше.
Последняя версия: 2.5.10
Русский язык: Нет
Portable версия: Нет
Домашняя страница: http://www.appservnetwork.com/
Базовый комплект:
- Apache 2.2.8
- PHP 5.2.6
- MySQL 5.0.51b
- phpMyAdmin-2.10.3
Apache и MySQL устанавливаются как сервисы. Никакой управляющей программы нет, только страница сомнительного дизайна со ссылкой на PhpMyAdmin. По своей сути AppServ является графическим установщиком Apache, PHP, MySQL и более ничем. Если тот же Denwer сам запускает компоненты, то здесь они просто устанавливаются в качестве сервисов и управляются самой Windows.
Последняя версия: 3.2010-11-07
Русский язык: Есть
Portable версия: Да
Домашняя страница: http://www.denwer.ru/
Базовый комплект:
- Apache 2.2
- PHP 5.3.3
- MySQL 5.1.40
- phpMyAdmin 3.2.3
Denwer… старый добрый Denwer. Мы видим всё тот же скудный набор не очень свежих компонентов (урезанных по самые яйца), чёрное окно и никакого GUI. К плюсам этого локального веб-сервера можно отнести его предельно малый размер и хорошую «базу знаний» на форуме, накопленную за многие годы. Фактически управление сервером осуществляется через выполнение.BAT скриптов по запуску и остановке модулей, как таковой управляющей программы нет вообще.
Denwer предельно прост и понятен, а потому имеет самую большую армию поклонников среди «чайников». Наиболее полным описанием данного веб-сервера будет следующая фраза, сказанная одним из пользователей: «Денвер выполняет основные задачи и ладно, а чем больше примочек тем больше заморочек (никто ими на все 100 не пользуется)».
Последняя версия: 5.3.9
Русский язык: Да
Portable версия: Да
Домашняя страница: http://www.easyphp.org/
Базовый комплект:
- PHP 5.3.9
- PhpMyAdmin 3.4.9
- Apache 2.2.21
- MySQL 5.5.20
Довольно простая и ничем не примечательная сборка. Нам предлагают обычное трей-меню без излишеств, незамысловатые настройки и запутанную стартовую страницу без русского языка. Данный программный комплекс не произвел на меня какого-либо впечатления, работает и то хорошо. EasyPHP вполне подходит в качестве замены Denwer на «версию с окошками» (если не пугает стартовая страница).
Замечу, что EasyPHP управляет сервером самостоятельно, никаких пугающих черных окон не выскакивает, запуск и остановка сервера выполняются довольно быстро.
Последняя версия: 2.0.2.0
Русский язык: Есть
Portable версия: Нет
Домашняя страница: http://eleanor-cms.ru/server
Базовый комплект:
- Apache 2.2.19
- PHP 5.3.6
- MySQL: MariaDB 5.2.6
- PhpMyAdmin 3.4.2
- SlimFTPd 3.1.81
- DNS Unbound 1.4.10
EleanorServ сперва показался мне тёмной лошадкой, а точнее неким специализированным сервером для одноименной Eleanor CMS. После рассмотрения оказалось что это обычный локальный веб-сервер.
В этой сборке мне понравилось оформление меню, которое оказалось довольно привлекательным, что большая редкость среди такого рода программ. Так же мне приглянулась панель управления, а точнее стартовая страница, которая имеет довольно необычное исполнение.
Радость от использования этого программного комплекса длилась не долго. После создания нового домена панель управления просто исчезла. Да да, она просто испарилась и в папке./www/localhost/ я даже не нашел каких-либо файлов кроме заглушки index.php. Еще одним огорчением было невозможность открыть папку с доменами из трей-меню, мне пришлось искать куда же я установил EleanorServ…
Ну и наконец самый главный недостаток - этот сервер не портативный, что не позволяет нам установить его на флешку и использовать на разных компьютерах.
6. Nimp
Последняя версия: 1.5.0
Русский язык: Есть
Portable версия: Да
Домашняя страница: http://nimpbox.ru/
Базовый комплект:
- Apache 2.2.17
- Nginx 0.9.3
- MySQL 5.5.8
- PHP 5.3.5
- Sendmail 31
- phpMyAdmin 3.3.9
- Sypex Dumper 2.0.8
- FileZilla 0.9.37 beta
- Memcached 1.2.4
Здесь мы видим ужасную реализацию панели управления с элементами порнографии, но есть довольно интересное трей-меню. Самое странное в этой сборке - это аж целых 4! иконки в трее с абсолютно одинаковым меню. Заставить работать сервер мне удалось далеко не с первого раза. Как оказалось Nimp может работать только из корня диска, что без сомнения является ещё одним жирным минусом этого программного комплекса.
Во время использования этого сервера постоянно что-то сбоило, FileZilla никогда сам не останавливался (пришлось убивать через диспетчер задач), а Memcached вообще не запускался. Некоторое недоумение вызвали слова автора программы о том, что «данная сборка прекрасно подойдет для высоко нагруженных сайтов в корпоративных и городских сетях», программе явно далеко до использования в корпоративной среде.
«Фишка» этого локального веб-сервера в том, что Nginx работает как frontend и предназначен для раздачи статического контента, а Apache работает в качестве backend для генерации динамического контента. В целом моё впечатление от этой сборки осталось двояким, оно плавно менялось от резко негативного вначале до нормально-приемлемого в процессе работы с программой.
Последняя версия: 4.5.2
Русский язык: Есть
Portable версия: Да
Домашняя страница: http://open-server.ru/
Базовый комплект:
- Apache 2.2.22;
- Apache 2.4.2;
- Nginx 1.2.0;
- MySQL 5.1.63;
- MySQL 5.5.24;
- PostgreSQL 9.1.2;
- PHP 5.2.17 (IMagick 2.2.1, Zend Optimizer 3.3.3, IonCube Loader 4.0.7, Memcache 2.2.4);
- PHP 5.3.13 (IMagick 2.3.0, Xdebug 2.2.0, IonCube Loader 4.0.14, Memcache 2.2.6);
- PHP 5.4.3 (Xdebug 2.2.0);
- Perl 5.12.3.0 (расширение);
- SlimFTPd 3.181;
- Fake Sendmail 32;
- NNCron Lite 1.17;
- Memcached 1.2.6;
- Adminer 3.3.4;
- HeidiSQL 7.0;
- Webgrind 1.0;
- PHPMyAdmin 3.5.1;
- PHPPgAdmin 5.0.4;
- PHPMemcachedAdmin 1.2.1;
В противовес другим участникам нашего обзора Open Server имеет наиболее приятный и продуманный интерфейс, обладает мощными возможностями по настройке и администрированию компонентов. К несомненным плюсам можно отнести поддержку профилей настроек, переключение HTTP/MySQL/PHP модулей, планировщик заданий (cron), удобное управление доменами и алиасами, а для «чайников» имеется толковое руководство пользователя.
Приятной особенностью Open Server является возможность использовать программу в качестве портативного персонального стартового меню. Можно установить сервер на USB накопитель, перенести туда свои portable программы, создать закладки для часто посещаемых сайтов и везде, где бы вы не находились, вы будете иметь удобное меню быстрого доступа к своим любимым сайтам и программам.
Последняя версия: 1.8.2
Русский язык: Нет
Portable версия: Да
Домашняя страница: http://www.server2go-web.de/
Базовый комплект:
- Apache 2.2
- PHP 5.3.2
- SQLITE
- MYSQL 5.1.46
- PERL 5.8
От этой гадости я долго плевался и несколько минут занимался поиском и убийством дочерних процессов. Оказалось что при запуске программы Server2go локальный веб-сервер просто стартует и всё. ВСЁ - в прямом смысле этого слова, нет никакой управляющей программы, никакого монитора, сервер нельзя ни остановить, ни даже просто перезапустить. Всё что есть у этого программного комплекса - это стартовая страница, где можно посмотреть безобидную информацию на подобие вывода PHP Info.
Впечатление крайне отрицательное, хотя казалось бы: сервер стартует, PhpMyadmin открывается, а что ещё надо? Нет, сервер который нельзя остановить - это не для меня. Гори оно в аду!
Последняя версия: 8.5.4
Русский язык: Да
Portable версия: Нет
Домашняя страница: http://www.uniformserver.com/
Базовый комплект:
- Apache 2.4.2
- PHP 5.4.0
- MySQL 5.5.24
- phpMyAdmin 3.5.1
Uniformserver - это очередная поделка на коленке и сказать хоть что-либо хорошее о ней я не могу. Кривой русский перевод, огромный уродский логотип в трей-меню, само меню совершенно не продумано, а из-за кривого перевода вообще невозможно что-либо понять. Все что может эта сборка - запуститься и открыть PhpMyadmin. С помощью меню еще можно добраться до логов и файлов конфигурации. Единственной приятной неожиданностью было найти там Сron.
Последняя версия: 8.5
Русский язык: Нет
Portable версия: Да
Домашняя страница: http://www.usbwebserver.net/
Базовый комплект:
- Apache 2.2.21
- MySQL 5.5
- PHP 5.3.9
- PhpMyAdmin 3.4.9.0
Простой и лёгкий веб-сервер. Панель управления незамысловатая, её можно спрятать в трей. Русского языка к сожалению нет. Сборку можно порекомендовать нетребовательным пользователям и новичкам. Каких-либо особенностей или плюшек, о которых я мог бы рассказать, в этом программном комплексе нет.
По своей функциональности USBWebserver напоминает Denwer, разве что Perl не хватает. В панели управления можно выполнить запуск/остановку модулей, открыть логи, еще есть парочка полезных функций и настроек, на этом всё. Я бы рекомендовал эту сборку как GUI замену Denwer-а для тех, кому необходима схожая функциональность, но хочется иметь панель управления с кнопочками и рюшечками.
Последняя версия: 2.27
Русский язык: Нет
Portable версия: Нет
Домашняя страница:
Базовый комплект:
- Apache 2.2.22
- PHP 5.3.10
- MySQL 5.5.20
- SQLite 3.7.10
- Smarty 3.1.7
- PhpMyAdmin 3.4.9
- Xdebug 2.1.3
- SQLiteManager 1.2.4
Хороший и функциональный локальный веб-сервер, довольно известный, простой в освоении. Имеет удобное меню, хорошие возможности по настройке PHP и Apache. Сборка мне очень понравилась, в своё время я использовал Vertrigo довольно длительное время.
Но не всё так радужно в нашем королевстве, конечно же есть и минусы. Самый главный и существенный минус - сервер не портативен, его нельзя установить на флешку и использовать на разных машинах. Из других проблем хочу отметить трудности с созданием домена или алиаса, а так же отсутствие русского языка.
Последняя версия: 2.2d
Русский язык: Да
Portable версия: Нет
Домашняя страница: http://www.wampserver.com/
Базовый комплект:
- Apache 2.2.21
- Php 5.3.10
- Mysql 5.5.20
- XDebug 2.1.2
- XDC 1.5
- PhpMyadmin 3.4.10.1
- SQLBuddy 1.3.3
- webGrind 1.0
Как и XAMPP, эта сборка широко известна на западе. Возможно причиной тому является поддержка большого количества языков, возможность установить любую версию Apache, MySQL и PHP в качестве аддона и привлекательная домашняя страница, чего нельзя сказать о самой управляющей программе.
Сборка работает хорошо, имеет страшное, но вполне понятное меню. В ней нет ничего такого, чтобы выделяло этот локальный веб-сервер из общей массы. Если честно, то я был очень удивлен увидеть такое убожество в оформлении программы после посещения стильной и красочной домашней страницы.
Последняя версия: 0.4.0.4
Русский язык: Есть
Portable версия: Да
Домашняя страница: http://winginx.ru/
Базовый комплект:
- Nginx 1.2.0;
- PHP 5.3.13;
- PHP 5.4.3;
- Node.js 0.6.17;
- MySQL 5.1.62;
- MongoDB 2.0.5;
- memcached 1.2.6;
- phpMyAdmin 3.5.0;
- Adminer 3.3.3;
- RockMongo 1.1.1;
- phpMemcachedAdmin 1.2.1;
- Xdebug 2.2.0.5, Zend Guard Loader 5.5, ionCube 4.0.14
Данная сборка может похвастаться наличием MongoDB и Node.js, а так же быстро набирающего популярность веб-сервера Nginx. Меня так же порадовало наличие нормального трей-меню и раздела настроек, однако в процессе работы оказалось что окно с настройками имеет 3 вкладки где всего по 1-2 опции (зачем?).
Довольно странно в Winginx выглядит работа с логами. Для их просмотра нам предлагается меню выбора файлов вида error.log, access.log и так далее, однако к какому именно модулю относятся эти логи понять невозможно: Nginx, PHP, а может Node.js?
Хоть Winginx и имеет управляющую программу, однако командование самим веб-сервером, так же как и в Denwer, осуществляется через.BAT файлы. Я сделал такой вывод по всплывающим из ниоткуда чёрным окнам во время запуска или остановки сервера.
Возможно, что кому-то (в первую очередь новичкам) будет очень полезна функция автоматической установки скриптов (PhpBB, WordPress, Joomla и т.д.) при создании домена, особенно если учитывать что скрипты сконфигурированы для работы с Nginx (переписывать правила реврайта самому довольно сложно). Однако лично я такими функциями никогда не пользуюсь и предпочитаю выполнять инсталляцию сам, поскольку никогда не знаешь что и как там устанавливается и какие сюрпризы могут поджидать тебя в будущем.
14. Xampp USB Lite
Последняя версия: 1.7.7
Русский язык: Нет
Portable версия: Да
Домашняя страница: http://www.apachefriends.org/en/xampp-windows.html
Базовый комплект:
- Apache 2.2.21
- MySQL 5.5.16
- PHP 5.3.8
- phpMyAdmin 3.4.5
XAMPP - это очень популярный за рубежом локальный веб-сервер. Думаю популярность обусловлена тем, что эта сборка довольно надёжна и имеет версии под все основные операционные системы: Windows, Linux, Mac OS X и даже Solaris.
Старт и остановка модулей происходят достаточно быстро, страница приветствия не запутана и понятна, хоть и на английском. В целом довольно хороший программный комплекс (с кучей плюшек в desktop версии) в котором нет ничего лишнего или отталкивающего. Чёрные окна из-за угла не атакуют, панель управления вполне обычная, однако малополезная.
Из минусов этого программного комплекса я могу отметить как раз эту панель управления, а точнее отсутствие этого самого управления, в ней нет ничего кроме запуска и остановки сервера. Здесь нет удобного меню со списком сайтов, нет раздела настроек веб-сервера, отсутствуют какие-либо полезные инструменты. Настраивать рабочее окружение в этой сборке вам придется вручную.
Сравнение
Portable | Русский язык | Наличие GUI | Полезный GUI | Просмотр логов | |
---|---|---|---|---|---|
AMPPS | - | + | + | - | + |
- | - | - | - | - | |
+ | + | - | - | - | |
+ | + | + | + | + | |
- | + | + | + | + | |
Nimp | + | + | + | + | - |
+ | + | + | + | + | |
+ | - | - | - | - | |
- | + | + | - | + | |
+ | - | + | - | - | |
- | - | + | + | + | |
- | + | + | + | + | |
+ | + | + | + | + | |
Xampp USB Lite | + | - | + | - | - |
Лучшие результаты: EasyPHP, Open Server, Winginx.
Тестирование
Тест №1 - Ложный запуск
Суть теста заключается в преднамеренной порче конфигурации Apache с целью проверить получим ли мы какое-либо предупреждение или все индикаторы будут гореть зеленым светом, а работать ничего не будет. Согласитесь, что использовать сборку, которая обманчиво сообщает об успешном запуске и выставляет вас идиотом, желания мало. Если сервер не подаёт никаких сигналов или работает скрытно, то тест так же будет считаться проваленным.
Тест №2 - Сложные пути
Суть теста заключается в преднамеренной установке сервера в папку со сложным именем, в нашем тесте мы будем использовать папку с именем «C:testMys$ka!._-()zlo{}+~%&2% Files». Если PhpMyAdmin (он взят просто для удобства, поскольку есть в каждой сборке) не откроется, то тест соответственно будет провален. Каждый человек - это индивидуальность, папки порой называют самыми неожиданными именами. Название папки, выбранное для теста, корректно для Windows и должно быть правильно обработано.
Тест №3 - SSL из коробки
Тест предельно простой - запускаем сервер и пытаемся открыть PhpMyAdmin по SSL протоколу.
Обозначения: "+" означает что тест пройден успешно, "-" означает что тест провален.
Ложный запуск | Сложные пути | SSL из коробки | |
---|---|---|---|
AMPPS | + | + | + |
- | + | - | |
- | + | + | |
+ | + | - | |
+ | + | - | |
Nimp | + | - | - |
+ | + | + | |
- | + | - | |
+ | - | - | |
+ | - | - | |
+ | + | - | |
+ | + | - | |
- | - | - | |
Xampp USB Lite | + | - | + |
Лучшие результаты: AMPPS, Open Server.
Заключение
Рассмотрев и протестировав столько программных комплексов возникает вопрос - а что же в итоге выбрать для повседневной работы? Ответить на этот вопрос не так-то просто, каждая сборка будет хороша для определённого типа задач.
Для новичков я предлагаю использовать Denwer, как самый простой и проверенный временем локальный веб-сервер. Всем остальным веб-разработчикам, а так же и тем новичкам, кому недостаточно функциональности Denwer, я рекомендую использовать Open Server.
Если вам необходимо быстро ознакомиться с каким-либо известным скриптом, форумом, фотогалереей или гостевой книгой и не хочется заморачиваться с его установкой и поиском подходящей платформы, то можно попробовать AMPPS. Конечно при условии, что интересующий вас скрипт поддерживается данной разработкой.
В случае если у кого-то возникнет необходимость использовать такие редкие модули как локальный почтовый сервер, Node.js, MongoDB и т.д., то я думаю каждый сможет подобрать себе подходящий вариант среди других участников нашего обзора.