13.11.2009Полигон для веб-кодинга
Начинающие web-программисты задаются вопросом: почему скрипт не запускается и как заставить его работать на локальной машине? Для этих целей существуют специальные пакеты, которые эмулируют веб-сервер на ОС под управлением Windows. С их помощью вы можете разрабатывать свои скрипты и использовать чужие. Такие пакеты созданы для облегчения ручной сборки необходимых компонентов для работы сервера и как правило имеют интуитивно понятную установку в несколько шагов, поэтому на этом мы не будем останавливаться.
Что же выбрать в качестве полигона для создания и использования ваших скриптов?
На очереди у нас три бесплатных пакета:
1) Denwer
2) Top Server
3) Wamp Server
И сегодня я помогу вам сделать правильный выбор =)
Начнем с самого распространенного, с Денвера.
- Джентльменский Набор Web-разработчика ("Д.н.w.р", читается "Денвер").
Состав базового пакета третьего Денвера:
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го Денвера, и я уверен что разработчики припасут нам что-то вкусненькое =)
Версия 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, вам придется полазить по форумам и не факт что получится решить проблему.
В целом сборка Вампа радует, вот характеристика июльской сборки(версия 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, а в случае с Вампом приходится часть работы делать вручную.
Добавить блог программиста в закладки:















17.11.2009 в 0:32
Они отличаются друг от друга как брюнетка от блондинки и рыжей.
А посто хороший, особенно для новичков, поможет определиться.
25.12.2009 в 18:41
I want to quote your post in my blog. It can?
And you et an account on Twitter?
13.01.2010 в 18:29
думаю,стоит зделать продолжение.как установить сккрипт на хостинг и реализовать сайт\форум.ну и что должно требоваться от хостера.
13.01.2010 в 23:33
Отлично, будет темой следующего поста =)
14.01.2010 в 17:34
СТАРЧЕ вот такой вопрос:почему чаще все всречаются сайты написаные на пхп и перле,а написаные на асп очень редко?
14.01.2010 в 22:54
Ну во-первых на них пишут из-за высокой распростаненности. Если ты начинающий разработчик, то тебе проще будет начать с PHP, т.к. в сети можно найти много мануалов, а на форумах всегда ответят на любой вопрос. Во-вторых асп работает гораздо медленее пхп и перла, а в нашем деле скорость очень важна
Ну и третьим, на мой взгляд самым плохим качеством асп является то, что он не может работать на unix подобных серверах, ему нужен windows, а именно веб-сервер IIS. Из этого вывод: ф топку асп =)