программирование

Начинающие web-программисты задаются вопросом: почему скрипт не запускается и как заставить его работать на локальной машине? Для этих целей существуют специальные пакеты, которые эмулируют веб-сервер на ОС под управлением Windows. С их помощью вы можете разрабатывать  свои  скрипты и использовать чужие. Такие пакеты созданы для облегчения ручной сборки необходимых компонентов для работы сервера и как правило имеют интуитивно понятную установку в несколько шагов, поэтому на этом мы не будем останавливаться.

Что же выбрать в качестве полигона для создания и использования ваших скриптов?
На очереди у нас три бесплатных пакета:
1) Denwer
2) Top Server
3) Wamp Server
И сегодня я помогу вам сделать правильный выбор =)

Начнем с самого распространенного, с Денвера.

Denwer - Джентльменский Набор Web-разработчика ("Д.н.w.р", читается "Денвер").

denwer

Состав базового пакета третьего Денвера:

1. Apache 2 с поддержкой SSL и mod_rewrite.
2. PHP5: выполняемые файлы, модуль для веб-сервера Apache, дистрибутивный и адаптированный конфигурационный файл, библиотека GD, модули поддержки MySQL и sqLite.
3. MySQL5 с поддержкой InnoDB, транзакций и русских кодировок (windows-1251).
4. phpMyAdmin - панель управления базой данных MySQL, а также скрипт, упрощающий добавление нового пользователя MySQL.
6. Отладочный эмулятор sendmail (/usr/sbin/sendmail), не отправляющий письма, а записывающий их в директорию /tmp/!sendmail.
7. Система автоматического поиска виртуальных хостов и обновления системного файла hosts, а также конфигурации Apache. Благодаря ей,  добавление нового  виртуального хоста (или домена третьего уровня) заключается в простом  создании каталога в /home (см. по аналогии с уже существующими хостами)  и перезапуске комплекса. Все изменения вносятся в конфигурационные и  системные файлы автоматически, но вы можете управлять этим процессом при помощи механизма шаблонов хостов (см. /usr/local/apache/conf/httpd.conf  за детальными разъяснениями).

На сайте Денвера доступны дополнения:

- PHP версии 3 в виде CGI-программы;
- PHP версии 4 в виде CGI-программы;
- дополнитльные модули для Apache;
- дополнительные модули для PHP;
- полная версия ActivePerl;
- интерпретатор ActivePython.
- сервер MySQL версии 4;
- модули поддержки технологии Parser;
- СУБД PostgreSQL;
- СУБД FireBird версий 2 и 1.3
- другие популярные модули.

Расположение конфигурационных файлов:
C:\denwer\usr\local\apache\conf\httpd.conf
C:\denwer\usr\local\php5\php.ini
C:\denwer\usr\local\mysql5\my.cnf (файл "my" обычно отображается без расширения, открыть его можно в любом текстовом редакторе)

Т.е. при необходимости вы сможете добавить нужные PHP расширения, не парясь с их установкой и ручным ковырянием конфигов. Безупречная работа mod_rewrite и простота установки делает этот пакет наиболее привлекательным для программистов. Создать БД и пользователя MySql проще простого, в админке для этого есть специальная функция. На данный момент ведется разработка 4го Денвера, и я уверен что разработчики припасут нам что-то вкусненькое =)

Top Server

topserver

Версия TopServer 2.1
Apache 2.0.59
PHP 5.1.6
PERL 5.6.1
MySQL 5.0.18-nt-max
phpMyAdmin 2.6.1
SQLite 2.8.17
SQLiteManager 1.2.0
SlimFTPd 3.17
Sendmail: Virtual Sendmail Stub
Расширения PHP : BCmath, Calendar, Date, FTP, GD2, MySQL, ODBC, pcre v6.6, Session, Hash, Com_dotnet, Ctype, DOM, XML, LibXML, SimpleXML, XMLreader, XMLwriter, Zlib, iconv, Reflection, SPL, Tokenizer, WDDX (встроенные библиотеки)
+ MySQL, MySQLi, SQLite, GMP, Sockets, bzip2, XSL (библиотеки PECL)

Дополнительно:
Менеджер виртуальных хостов
Менеджер пользовательских каталогов
Редактор файлов конфигурации Apache, PHP, MySQL
Менеджер FTP сервера PHPsFTPd 0.5
Файловый менеджер PHPFM 1.0
Примеры простых PHP скриптов для начинающих (~400 шт)

Расположение конфигурационных файлов:
C:\Program Files\TopServer 2.1\usr\local\Apache\conf\httpd.conf
C:\Program Files\TopServer 2.1\usr\local\mysql5\my.ini
C:\Program Files\TopServer 2.1\usr\local\Apache\bin\php.ini

Top Server обладает дружественной админкой и полезными инструментами. Но к сожалению не хватает жизненно важных PHP расширений и корректной обработки .htaccess, поэтому, что бы грамотно настроить mod_rewrite, вам придется полазить по форумам и не факт что получится решить проблему.

Wamp Server

wamp

В целом сборка Вампа радует, вот характеристика июльской сборки(версия 2.0i):

Apache 2.2.11
PHP 5.3.0
PHP расширения:
* Core * bcmath * calendar * com_dotnet * ctype * date * ereg
* filter * ftp * hash * iconv * json * mcrypt * mysqlnd * odbc
* pcre * Reflection * session * SPL * standard * tokenizer * zip
* zlib * libxml * dom * PDO * Phar * SimpleXML * wddx * xml
* xmlwriter * apache2handler * gd * mbstring * mysql * mysqli
* pdo_mysql * pdo_sqlite * mhash * xmlreader
MySQL 5.1.36
phpMyAdmin 3.2.0.1

Расположение конфигурационных файлов:
C:\wamp\bin\apache\Apache2.2.11\conf\httpd.conf
C:\wamp\bin\mysql\mysql5.1.36\my.ini
C:\wamp\bin\php\php5.3.0\php.ini
C:\wamp\bin\apache\Apache2.2.11\bin\php.ini - используется именно этот файл, я не знаю с чем связано такое извращение разработчиков, но вероятно на то  были веские причины.

Wamp Server хорош тем, что в нем есть все необходимые PHP расширения и заморачиваться с их установкой не придется, также он прекрасно обрабатывает mod_rewrite в отличие от Top Server. Но есть небольшой "минус" - разработчики поленились оформить админку к пакету. Что бы элементарно создать юзера и базу mysql придется лезть в phpmyadmin, в то время как в других пакетах это делается в пару кликов. Еще больше не понравилось геморное создание алиасов, конфиг правится вручную в подкаталоге alias.

Код конфига имеет следующий вид:
Alias /folder "c:/folder/folder/"

<Directory "c:/folder/folder/">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Directory>

Использование виртуальных хостов

Перед тем как начать создание виртуального хоста, запустите службу «DNS-клиент»: Панель управления — Администрирование — Службы. Без нее виртуальные хосты работать не будут.

1) В файле C:\wamp\bin\apache\Apache2.2.11\conf\httpd.conf находим строку #Include conf/extra/httpd-vhosts.conf и убираем "#"
2) В файле C:\WINDOWS\system32\drivers\etc\hosts добавляем адрес вашего сайта, к примеру
127.0.0.1 casual-coder.ru
127.0.0.1 www.casual-coder.ru
3) В файле C:\wamp\bin\apache\Apache2.2.11\conf\extra\httpd-vhosts.conf задаем основные настройки виртуального хоста
<VirtualHost 127.0.0.1:80>
ServerName casual-coder.ru
ServerAlias www.casual-coder.ru
DocumentRoot "C:/wamp/www/casual-coder"
</VirtualHost>

Виртуальные хосты в Денвере создаются намного легче, нужно добавить в /home каталог с названием нужного домена и с подпапкой www. После перезагрузки сервера домен будет доступен.

Теперь пару слов о первоначальной настройке пакетов после установки.
my.ini(my.cnf) - увеличиваем параметр max_allowed_packet, что бы бэкапы успешно заливались через phpmyadmin
php.ini - max_execution_time стоит существенно увеличить, особенно если вы используете серверные скрипты для спама (спамить нехорошо =)), генерации дорвеев и т.д. Порой установленного лимита в 30 секунд, не хватает даже на то, что бы установить CMS. Также стоит обратить внимание на параметр upload_max_filesize.
Находим строку "Windows Extensions", после нее идет список установленных PHP расширений. Для подключения необходимого расширения необходимо удалить ; в начале строки.

Настройка mod_rewrite


В httpd.conf находим строку похожую на #LoadModule rewrite_module modules/mod_rewrite.so или ;LoadModule rewrite_module modules/mod_rewrite.so и удаляем знак ; или # в начале строки.
Таким образом можно подключить другие необходимые модули.

Чуть не забыл... После правки конфигурационных файлов, нужно перезапустить веб-сервер, только после этого изменения вступят в силу.
...
Существует ручной способ установки связки PHP+MySql, но на его реализацию придется затратить не мало времени и нервов, особенно при частых переустановках =) Такой способ наиболее удобен, связку можно заточить под свои нужды и установить необходимые компоненты. О такой настройке я постараюсь написать в одном из следующих постов.

В качестве заключения хочу сказать что я отдаю предпочтение Денверу, Wamp в чем-то его превосходит, но пакет он для того и создан, что бы автоматизировать установку связки PHP+MySql, а в случае с Вампом приходится часть работы делать вручную.

Добавить блог программиста в закладки:



Похожие записи в блоге программиста: