Web разработка. Установка и настройка WAMP5

29 октября, 2007

Эта статья об установке и настройке WAMP – одного из самых распространенных наборов программ для web разработки. В его состав входят: Apache 2.2.4, PHP 5.2.4 + PECL, SQLiteManager, MySQL 5.0.45, PHPMyAdmin и общая панель управления. По идее, все программы набора должны быть готовы к работе сразу после установки. В принципе, так оно и есть, но чтобы получить такие же настройки, как и на сервере хостера, придется «поиграться» с конфигурационными файлами.

Прежде всего, несколько слов о самом WAMP’е. На сегодняшний день, таких дистрибутивов существует множество. Самый известный из них, наверное, Denwer, в основном из-за того, что его рекомендуют новичкам. Использовать его я никому не советую, слишком уж он урезанный.

UPD 17.06.2010. На данный момент ситуация с Denwer'ом изменилась. В состав Денвер-3 входят Apache 2 + SSL, PHP 5.3, MySQL 5.1, phpMyAdmin, работа с Flash-накопителем. Есть возможность выбрать между PHP 5.3 и PHP 5.2. Т.е. дистрибутив стал намного лучше и с ним можно комфортно работать.

В отличие от Denwer’а в состав WAMP входят практически последние версии программ. Поэтому после установки вам не придется ничего обновлять. Безусловно, можно установить каждый компонент отдельно. В этом нет ничего сложного, но придется дольше возиться с настройками, и не будет общей панели управления.

Так что, если у вас нет каких-нибудь специфических требований, то можете спокойно устанавливать WAMP. Никаких ограничений в смысле функциональности не будет.

Установка

Здесь все просто. Нужно указать папку, в которую будет установлен WAMP (например, c:\wamp\). Ответить на вопрос об автоматическом запуске при старте Windows (я отказался), и указать SMTP сервер (можно оставить localhost). Кроме того, вряд ли вы захотите размещать ваши сайты прямо в папке с WAMP’ом, поэтому укажите для DocumentRoot какую-нибудь более подходящую директорию (например, d:\www\).

Первые впечатления

Раз с установкой закончили, запускаем. В трее появляется иконка, которая отображает текущее состояние серверов Apache и MySQL. Щелчок по иконке открывает панель управления WAMP.

Панель управления WAMP

Кстати, эта панель – одна из основных причин, из-за которых я установил WAMP. Она позволяет в два клика остановить/запустить/перезапустить любой из серверов или оба одновременно, зайти в PHPMyAdmin, SQLitemanager, localhost, посмотреть лог-файлы и многое другое. В общем, очень удобно.

Настройка

Сразу после установки у меня возник вопрос: "А какой пароль доступа к базе данных (для root)?". Как оказалось, подключаться к БД нужно вообще без пароля. Естественно, это нужно сразу исправить. Поэтому заходим в папку C:\wamp\mysql\bin и выполняем команды:
mysql -u root
UPDATE mysql.user SET Password=PASSWORD('new_pass') WHERE user='root';
FLUSH PRIVILEGES;

Примечание: после смены пароля PHPMyAdmin не сможет подключиться к БД. О том, как это исправить, я расскажу чуть ниже.

Следующим этапом идет настройка сервера Apache

Его конфигурационный файл находится здесь:
C:\wamp\Apache2\conf\httpd.conf
Если вы планируете использовать виртуальные хосты, то добавьте в этот файл строку:
Include "d:/www/virtualhosts.conf".
В этом файле будут находиться настройки хостов (название и размещение файла роли не играет).

Еще можно сразу подключить модуль перезаписи URL (Apache mod rewrite). Этот модуль используют большинство современных движков и фрэймворков. Для этого удаляем точку с запятой в начале строки
LoadModule rewrite_module modules/mod_rewrite.so

PHP

Вот тут начинается самое интересное. WAMP содержит два (!)файла php.ini. Один расположен в папке C:\wamp\php, а второй – в папке C:\wamp\Apache2\bin. Учтите, что используется именно второй файл, и все настройки нужно вносить именно в него. Почему разработчики сделали именно так, для меня загадка. Наверное, хотели сказать, что программирование не должно быть слишком простым :-) .

В этом файле я изменил только количество памяти, выделяемое для скриптов:
memory_limit = 16M (по умолчанию установлено 8М, но этого не достаточно даже для запуска WordPress).

CLI режим. Если вы попробуете запустить скрипт не через сервер, а из командной строки, то получите сообщение об ошибке (PHP пишет, что не может найти какую-то библиотеку). Проблема в том, что при запуске через Apache используется php.ini, расположенный в C:\wamp\Apache2\bin, а при запуске из командной строки – php.ini из C:\wamp\php. Поэтому просто копируем php.ini из C:\wamp\Apache2\bin в C:\wamp\php.

Чтобы каждый раз не вводить путь к php.exe, добавьте C:\wamp\php в системную переменную PATH.

MySQL

Пароль для root’а мы уже установили. Теперь, при желании, можно перенести сами базы данных в какую-нибудь отдельную папку (так удобнее будет делать backup’ы).
Для этого:
1) создаем папку, в которой будут находиться базы (например, e:\mysql_data);
2) останавливаем сервер MySQL;
3) изменяем параметр datadir в файле C:\wamp\mysql\my.ini:
datadir= e:/mysql_data
4) переносим содержимое папки C:\wamp\mysql\data\ в e:\mysql_data\;
5) запускаем сервер.

Кроме того, я изменил кодировку БД:
default-character-set=utf8

PHPMyAdmin

Если вы попытаетесь сейчас запустить PHPMyAdmin, то увидите сообщение об ошибке. Помните, мы установили новый пароль для root’а. Естественно, PHPMyAdmin его не знает. Поэтому, открываем C:\wamp\phpmyadmin\config.inc.php и указываем пароль:
$cfg['Servers'][$i]['password'] = 'new_pass';
Кроме пароля, я изменил еще два параметра:
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['compress'] = TRUE;

Создание виртуальных хостов

При настройке сервера Apache в httpd.conf мы подключили файл "d:/www/virtualhosts.conf".

Для создания хоста выполняем следующие шаги:
1) останавливаем Apache;
2) придумываем название хоста и создаем для него папку (она будет задана в параметре DocumentRoot). Например, название – www.simplecoding.orgl; а папка – d:/www/my_site;
Примечание: я задал название корневого домена orgl. Вы можете использовать любое название, главное чтобы локальные хосты не путались с интернетовскими.
3) открываем файл C:\WINDOWS\system32\drivers\etc\hosts и добавляем в него строку с названием нашего локального хоста и его IP адресом:
127.0.0.1 www.simplecoding.orgl
Примечание: адрес 127.0.0.1 всегда указывает на локальный компьютер.
4) В файле virtualhosts.conf задаем настройки хоста:
<VirtualHost 127.0.0.1>
ServerName www.simplecoding.orgl
DocumentRoot "d:/www/sites/my_site"
</VirtualHost>

5) запускаем сервер.

Все, хост создан. В этом примере показаны только минимальные настройки. Полная информация о создании виртуальных хостов находится в документации к серверу Apache.

В завершение хочу сказать, что, несмотря на некоторые недостатки, я считаю WAMP5 одним из лучших наборов программ для web разработки.

Постовой

На сегодняшний день фриланс может стать реальной альтернативой обычной работе. Заработать в интернете не сложно, главное, приложить усилия ;)

Понравилась статья? Подписывайтесь на продолжение rss link !

Или на мой твиттер twitter link

]]>

Добавьте эту страницу в google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

]]>

Опубликовано в PHP, Разное View Comments

]]>
  • Владимир, подскажите, поставил wampserver, не открывает php admin, не видит localhost - на windows xp ставил работал, на windows 7 не хочет. Сталкивались с такой проблемой?
  • Сам не сталкивался. У меня нормально с Win7 работает. Нужно проверить запустились ли службы wampapache и wampmysqld.
    Были проблемы из-за скайпа (он использует 80 порт, тот же, что и apache).
    Еще может быть проблема из-за системы контроля аккаунтов пользователей. При запуске wamp должно появляться окно с просьбой подтвердить действие (если эта система не отключена). Если окна нет, нужно в свойствах wampmanager.exe отметить чекбокс "Запускать от имени администратора".
  • Luba
    Добрый день!
    а подскажите, какой коспонент надо подключить чтобы нормально работать с СOM-обьектами? Я щапускала на денвере,все работает. На Вампе -тишина.

    Напрмер:
    $xls = new COM("Excel.Application");
    $xls->Application->Visible = 1;
    $xls->Workbooks->Open("C:\\test.xls");
  • К сожалению, с COM объектами я не работал.
  • Сергей
    такая же проблема что и описывал DesweR , но отключать сеть я не пробовал так как делаю через удаленный рабочий стол ...
  • А другие скрипты (не DLE) работают? Например, тотже phpMyAdmin?
  • serg777z
    нет,фишка в чём !? в том что IP модема определяю а не компа,как узнать ИП самого компа чтоб к нему прилинковаться, сейчас вводя ИП линковка идёт к модему запрашивается код и пароль для доступа к его настройкам
  • У вас IP компьютера и модема разные? Т.е. модем работает как роутер?
    Если да, поищите настройки демилитаризированной зоны (DMZ)
  • serg777z
    Обьясните пожалуйста как быть с динамическим IP.постоянно нужно в конфигах переписывать айпи компа? и проблема такого характера:
    при пределении IP компа пишет один адрес,но это адрес самого модема,при вводе в строку адреса ооткрывается сразу окно с логином и паролем.как можно настроить копм чтобы с внешки можно было просматривать сайт? заранее благодарю.
  • Насчёт доступа из внешней сети.
    Если ip меняется, можно использовать Dynamic DNS сервисы.
    Есть статья на эту тему
    http://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_DNS
  • Вы установили WAMP на тот компьютер, с которого хотите открывать сайты?
    Если да, то используйте адрес 127.0.0.1 - он всегда указывает на данный компьютер. При этом внешний IP не играет роли.
  • serg777z
    в том то и дело что, установив сервер на своём компьютере,хочу чтобы сайт можно было просматривать с внешки...
  • Dynamic DNS тоже не подходит?
  • DeannRie
    Добрый вечер!
    А что вы скажите по поводу WIMP'а. Хотелось бы побольше узнать о нём и на ваше мнение и пользовались ли вообще.
    СПАСИБО!
  • Речь об этом wimp'е? Если да, то пользуюсь постоянно :)
  • DeannRie
    Нет я имел ввиду это :)
  • Тут ничего конкретного не скажу. С IIS я практически не работал. Если на хостинге установлен apache, то и тестировать лучше под ним.
  • Игорь
    помогите пожалуйсто я ставлю дле а он ошибку на странице даёт!и как можно сделать эти шаги на windows 7

    "Установите для папки templates и всех вложенных в нее папок права на
    запись (CHMOD 777)"

    или дайте норм DLE тока не демо а полную и free) чё делать??!!
  • CHMOD 777 - эта команда устанавливает права на запись в nix системах. Если вы работаете под win вам ее выполнять не нужно.

    а он ошибку на странице даёт


    Какую именно?

    норм DLE тока не демо а полную и free)


    У меня такой нет :)
  • Здрасте! Вот такой вопросик - второй раз уже вампсервер глюканул одинаково - доходит в трее до желтенькой загрузки (т.е. не догружается до конца) и соответственно дальше не идет...перезагрузка не помогает...не помогла в прошлый раз даже переустановка винды..что такое понять совершенно не могу.
  • Зря вы windows переустанавливали.
    Нужно посмотреть логи серверов (C:\wamp\logs), там будет описана причина сбоя.
    Часто возникает из-за skype с настройками по умолчанию (он использует 80 порт, который пытается использовать и apache).

    В общем, конкретно можно что-то сказать только взглянув на лог.
  • starro_serge
    Здравствуйте!
    Подскажите, пожалуйста, какой рнр-отладчик выбрать и как прикрутить к последнему WAMP 2.0i?

    Заранее благодарен
  • Я использую xdebug. Последнюю версию WAMP не ставил, сейчас работаю с 2.0h. Особых проблем с прикручиванием не было, нужно добавить одну строчку в php.ini. На оф.сайте подробная инструкция.
  • Антон
    Доброго времени суток, есть вопрос. Добавил новый проект, но когда перехожу со стартовой страницы WAMP, то выводит следующий текст
    Unable to open WampServer's config file, please change path in index.php file
  • Я хочу уточнить. Сообщение выводится когда вы пытаетесь открыть свой проект? Или стартовую страницу WAMP? Во втором случае такое происходит если вы перенесли папку www, но в index.php не указали размещение конфига.
    Если вы пытаетесь открыть свой проект, то значит вместо него вы открываете стартовую страницу WAMP ;) . Проверьте еще раз размещение и адрес своего скрипта.
  • виталий
    я извиняюсь полный чайник что значит выполняем команды
    зашол я в эту папку там три файла и как мне выполнить эти команды
    заходим в папку C:\wamp\mysql\bin и выполняем команды:
    mysql -u root
    UPDATE mysql.user SET Password=PASSWORD('new_pass') WHERE user='root';
    FLUSH PRIVILEGES;
  • 1) Пуск - Выполнить - cmd.exe. Откроется консоль.
    2) Выполняем команду cd C:\wamp\mysql\bin (это мы перешли в папку).
    3) Выполняем команду mysql -u root
    4) Выполняем команду UPDATE mysql.user SET Password=PASSWORD('new_pass') WHERE user='root';
    5) Выполняем команду FLUSH PRIVILEGES;
    6) Выполняем команду exit
  • Валерий
    А как в нем воспользоваться pecl?
  • pecl входит в дистрибутив (pecl.bat находится в папке с php). Так что проблем быть не должно.
  • Валерий
    В том то и дело, что этого файла у меня нет.
  • Я не уверен, но может быть он появляется после установки pear. Файл go-pear.bat должен быть однозначно (в папке с PHP).

    Кстати, это довольно устаревшая статья. Новая версия WAMP называется WAMPSERVER. О его настройке у меня есть статья.
  • kalistro
    помогите пожайлуста, я новичек(уже 2 недели мучаюсь);
    1.
    сменила пароль на c:\wamp\bin\mysql\mysql5.1.36\bin\mysql.exe командой:
    SET PASSWORD FOR peter@localhost = OLD_PASSWORD('something');
    flush privileges;
    (консоль запускается через пароль 123 нормально)

    2.
    открываем
    C:\wamp\apps\phpmyadmin3.2.0.1\config.inc.php
    внесла
    $cfg['Servers'][$i]['password'] = '123';
    (НовПасс=123);
    3. В результате на localhost\phpmyadmin:
    #1045 - Access denied for user 'root'@'localhost' (using password: NO)
    phpMyAdmin не смог установить соединение с сервером MySQL.
    Проверьте хост, имя пользователя и пароль установленные в конфигурационном файле
    config.inc.php
    и удостоверьтесь, что они соответствуют данным
    полученным от администратора сервера MySQL
    МОЖЕТ В КАКОМ-ТО ЕЩЕ ФАЙЛЕ ПРОПИСАТЬ пасс НАДО?
  • Нет, пароль указывается один раз.
    Но вы его устанавливали для пользователя с именем peter, а phpMyAdmin пытается использовать имя root без пароля, т.е. в config.inc.php нужно указать
    $cfg['Servers'][$i]['user'] = 'peter';
    $cfg['Servers'][$i]['password'] = '123';
  • WEBAdmin
    Ребят с такой проблемой сталкнулся Wamp не хочет обрабатывать PHP скрипты вот например в коде ::

    <?
    название сайта
    "); ?>

    Он мне так и выводит ::

    <?
    название сайта
    "); ?>

    Помогите может в конфигах какойто модуль нужно включить или еще что
  • В httpd.conf должен быть подключен модуль

    LoadModule php5_module "c:/wamp/.../php5apache2_2.dll"

    и установлены типы

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .php3
  • WEBAdmin
    Данные модули раскаментированы и находятся там куда указывает путь ! пример ниже ::

    LoadModule php5_module "c:/server/php/php5apache2_2.dll"


    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .php3
  • Попробуйте просто переустановить WAMP. Из упаковки все работает. Сохраните текущие конфиги, а потом сравните их с файлами из дистрибутива. Будет проще найти причину.
  • ххх
    Подскажите пожайлуста, как настроить почту на этой сборки,
    точнее Sendmail, чтобы почта уходила.
    заранее спасибо.
  • Работа Sendmail не зависит от сборки. Достаточно настроить php.ini и конфиг Sendmail. Есть подробная статья о настройке Sendmail.
  • Scratch
    (почему-то ссылки "ответить" перестают выводиться после третьего уровня овложенности)
    Вообще, как можно сделать вывод из обсуждения -- на локальном хосте все работает, а у хостера -- нет.
    То есть, нужно вообще выяснить, работает ли у хостера MySQL как таковой, не находится ли он на другом хосте и так далее...

    to Владимир: PHP не создавался для низкого порога. Просто так получилось... Кажущаяся простота, из-за возможности встраивать PHP в HTML, и многие думают что PHP это такое расширение HTML, а не полновесный язык.
  • Tatiana
    На хосте всё работает и MySQL и PHP5 и предедущие версии, там даже можно всё сделать на месте. Так же я звонила туда по моей проблеме, мне ответили, что не могут помочь мне потому, что эта ошибка не связана с ними, что это в моих настройках.
  • Scratch
    Хгм... Так. Властью данной мне разрешаю Владимиру дать тебе мое мыло (оно у него в админке высвечивается, и твое тоже). А то тут очень уж неудобно.

    А пока что -- что за хостер? (желательно ссылочку). Будем разбираться, что там и как...
  • Спрашивайте, постараюсь ответить ;)
  • Tatiana
    Здравствуйте Владимир. Всё моя история закончилась удачно. Благодаря уважаемому Scratch. Оказалось, что я просто полная дурочка. Не буду вдаваться в подробности, мне стыдно. Впрочем спросите подробности у Scratch если очень хотите всё узнать.
    Вобщем хотела поблагодорить вас в участии разрешения проблемы. Большое спасибо за помощь. Но я не прощаюсь. У меня ещё будет масса вопросов. Но чуть по позже.
  • Tatiana
    Вы согласны быть моим "персональным наставником"? Давать мне домашние задания, проверять мои ошибки и вести в нужном направлении.
    Кстати, ну если нет такого курса который мне больше нравится, так почему бы не сделать его? Я не одна такая, которая находится в поисках. И хочу вам сказать здесь в Испании отдадут любые деньги за толковый курс, думаю что и в России, и на Украине такая же история.Так чем же мы хуже Попова?
  • Scratch
    Возьмите электронный учебник, там тоже перематывать несложно :)
    К тому же, более удобное разбиение на темы (в хороших учебниках).
    Ну и, конечно, очень полезен "персональный наставник", который сможет проверять и направлять. ;)
  • Tatiana
    А я и не имела в виду быстрый способ научится, так не бывает. Просто это видеокурс его всегда можно перемотать на начало, это намного лучше, чем перелистать одну книгу на 590 страниц в поисках забытой темы.
  • @Scratch Прошу прощения, я немного запутался в этой ветке комментариев :)

    @Tatiana вам придется пообщаться с хостером. Вообще не понятно как они работают. Если начнут рассказывать, что проблема в ваших скриптах, попросите их запустить любой их php скрипт, работающий с базой. И пусть покажут вам, что он работает.
  • Scratch
    Владимир, я уже писал, повторюсь -- там действительно проблема у хостера, и я даже написал какая -- сокет "по умолчанию" для соединения с базой не соответствует реальному сокету базы.
  • Я этот видеокурс не видел... но согласен со Scratch быстрых способов научится программировать не существует. К тому же программирование - это не копирование чужих действий, какими профессиональными бы они ни были, тут важны собственные эксперименты.
    Поэтому советую взять книгу.

    @Scratch проблема действительно у хостера. Чтобы лишний раз убедиться, я попросил Tatiana запустить стандартный скрипт из php manual (пример к mysql_connect). Жду результатов. Но, похоже, надо разбираться с тех. поддержкой.
blog comments powered by Disqus ]]>