Предисловие переводчика
Имея совсем небольшой опыт работы с набором WAMP (Windows Apache/MySQL/PHP), я столкнулся с необходимостью его переустановки как с целью обновления версий составляющих его частей, так и с целью установки openssl. Openssl в свою очередь мне необходим для использования composer, а composer для установки Laravel 4. Laravel 4 мне нужна просто из любопытства — хочется попробовать новую версию популярного фреймворка. Теперь вы знаете, что привело меня к переводу этой статьи, на которую я наткнулся в ходе поиска советов бывалых, уже прошедших этот путь людей, на форуме forum.wampserver.com. Статья свежая, от 11 октября 2013 г., возможно кому-то из вас она и пригодится. Итак…
Этот процесс не является одним из тех, где вы несколько раз нажмёте кнопку “Next”, затем “Finish” и на этом сможете считать свою задачу выполненной. Здесь существует масса ловушек, в которые вы можете угодить. Но результат достижим, если привлечь толику здравого смысла!
Не начинайте этот процесс, если у вас есть всего 20 минут. Этого может и хватить, но, в зависимости от уровня вашего мастерства, а также количества выпусков всех 3-х частей программного обеспечения, которые вы пропустили, дело может и затянуться.
Весь процесс основывается на том факте, что инсталляция WAMPServer в основном просто копирует файлы на диск, зная лишь то, на какой диск выполняется установка. Лишь два сервиса Windows привязаны к папке размещения инсталляции — 'wampapache' и 'wampmysql'. Поэтому, если мы удалим их, а в wampmanager есть такая опция в меню (Service->Remove service, — прим.переводчика), то можно утверждать, что ваша оригинальная инсталляция удалена.
Первым делом, сделайте резервные копии всех ваших баз данных (БД) в формате Format=SQL, имея в виду, что ваши базы данных это не те, которые идут в поставке с MySQL. Сохраните ваши резервные копии в надёжном месте в полной готовности к использованию.
БД, которые поставляются с MySQL, это 'mysql', 'information_schema' и 'performance_schema', их резервные копии вам не нужны, если вы не уверены в обратном и вы точно знаете, что они вам необходимы.
Также вам не нужна БД 'test', если вы не использовали её для чего-то, что нуждается в сохранении.
Если ваши БД имеют размеры от небольшого до среднего, то для создания резервных копий вы вполне можете использовать phpMyAdmin.
Если БД велика и phpMyAdmin не смог создать резервную копию, (обычно это происходит из-за ограничения, установленного в настройке PHP max_runtime), то резервную копию можно создать с помощью утилиты mysqldump.exe. Подробнее о ней смотрите на сайте dev.mysql.com.
Далее, если все ваши сайты соединяются со своими базами данных, используя 'localhost','root' и '' (пустой пароль), то в этом отношении вам ничего больше делать не надо. (ХОТЯ ТАК ДЕЛАТЬ — ПЛОХАЯ ИДЕЯ).
Если у вас установлен пароль для пользователя root и вы пользуетесь ('localhost','root' и 'некий_вами_установленный_пароль'), то вам всего лишь нужно запомнить этот пароль, чтобы установить его в новой в��рсии MySQL (ТАК ДЕЛАТЬ — ТОЖЕ ПЛОХАЯ ИДЕЯ).
Если же вы ведете дела должным образом и создаёте уникального MySQL пользователя и пароль для каждой БД ваших сайтов, то вам следует записать идентификаторы пользователей и их пароли для того, чтобы восстановить их в новой версии MySQL.
Или же вы можете использовать phpMyAdmin для экспорта пользователей в виде операторов SQL, сохранить их и использовать в новой версии MySQL.
Итак перед установкой новой версии сервера WAMP
В действительности есть только 2 вещи, устанавливаемые WampServer — это сервисы Apache и MySQL.
Поэтому удалим эти 2 сервиса:
1. Запустим WampServer
2. wampmanager -> Stop all Services
3. wampmanager -> MySQL -> Service -> Remove service
4. wampmanager -> Apache -> Service -> Remove service
Теперь остановим wampmanager, нажав правой кнопкой мыши меню wampmanager -> Exit.
Переименуем папку wamp в нечто подобное wamp_old. Это ваша резервная копия!
Теперь можно установить новую копию сервера WAMP, сделаем это.
Скачаем и установим новый сервер WAMP, установку можно выполнить на любой диск C, D, E и т.д., можно установить в корневой каталог диска, например C:\wamp, но не устанавливайте пакет в каталог C:\Program Files\
Проверьте работоспособность вашей инсталляции следующим образом:
1. Иконка wampmanager в системной области должна стать ЗЕЛЁНОЙ.
2. Запустите: wampmanager -> localhost
3. Щёлкните на ссылке phpMyAdmin, убедитесь в его работоспособности.
WampServer 2.4 поставляется с другой конфигурацией phpmyadmin, поэтому изначально, при его запуске, загружается страница входа. Помните о том, что в новой инсталляции username = root, а пароль ПУСТОЙ.
Если всё же у вас возникли проблемы, помните о том, что эта новая инсталляция не содержит всех тех изменений, которые вы могли внести в предыдущей установке. Поэтому именно сейчас вы можете сравнить вашу старую и новую конфигурации и перенести необходимые настройки из старой конфигурации в новую.
Помните о том, что вы обновляете Apache, MySQL и PHP, а параметры всей этой троицы могли измениться/быть удалены или же добавиться новые!!!
Поэтому не копируйте их просто так из старой конфигурации wamp в новую.
У ВАС БУДУТ ПРОБЛЕМЫ!
(дословно было — ПОЯВЯТСЯ ДРАКОНЫ, — прим.переводчика)
Вот почему мы не удалили старую папку wamp, сначала нужно убедиться, что новая инсталляция работает корректно.
Вот каким файлам вы точно должны уделить внимание, но, в зависимости от того, что вы сделали с Apache/PHP/MySQL, могут быть и другие и только вы можете знать об этом.
Каждое изменение в этих файлах должно сопровождаться проверкой работоспособности Apache и MySQL:
https.conf,
\wamp\alias\phpmyadmin.conf,
\wamp\alias\sqlbuddy.conf,
\wamp\alias\webgrind.conf,
Если вы используете Apache 2.2.х, убедитесь в том, что безопасность в Apache настроена так:
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 localhost ::1
плюс те конкретные ip-адреса, которым вы дали доступ к Apache из вашей сети, например,
Allow from 192.168.0
даст доступ к серверу любому ip из вашей внутренней сети.
Если вы используете Apache 2.4.х
Самое время прочесть прикрепленный пост Wampserver 2.4 What to do after Installing.
Ваш php.ini используется Apache
(для доступа к файлу кликните wampmanager -> PHP -> php.ini), фактически файл находится в папке \wamp\bin\apache\apachex.y.z\bin\php.ini, но для редактирования открывайте его с помощью указанного меню.
Ваш php.ini используется PHP CLI
Если вы действительно используете PHP CLI (редактируйте файл \wamp\bin\php\phpx.y.z\php.ini)
Сравните ваши старые и новые версии файлов, помните, что настройки могли измениться, расширения могли добавиться в ядро php, а следовательно не нужны в качестве расширений и т.п.
Ваш my.ini
И снова помните о том, что многое могло измениться, одни параметры исчезнуть, другие добавиться и т.п.
Например, если вы используете БД INNODB, то вам необходимо активировать параметры innodb, закомментированные по умолчанию.
Вы можете посетить веб-сайт mysql, у них есть страница “Как обновиться” для всех версий этой СУБД.
Вот вам пример — dev.mysql.com.
Если вы обновляетесь до mysql 5.6, то можете захотеть добавить этот параметр с целью уменьшения объёма памяти, выделяемого для MySQL. По умолчанию выделяется около полугигабайта памяти, эта настройка уменьшит выделяемое количество до более приемлемого. Устанавливайте эту настройку в соответствии с возможностями вашей системы!!!
table_definition_cache = 800
Теперь можно вернуться к восстановлению пользователей MySQL и ваших БД в новой версии MySQL.
Если вы обновляете ОЧЕНЬ СТАРУЮ версию MySQL, не забудьте о том, что процесс восстановления может оказаться не таким простым. Возможно, вам придётся поправить пару вещей, прежде чем новая версия MySQL сможет принять ваши старые данные. ��то довольно редкая ситуация, но она может произойти. И снова напомню — не делайте обновление за 10 минут до того, как вам нужно будет показать презентацию с использованием новой версии WampServer.
Перенос ваших веб-сайтов на новую копию WAMP
Просто скопируйте ваш каталог \wamp_old\www\* в каталог \wamp\www\
Перенос виртуальных каталогов на новую копию WAMP
В данном случае вы можете перенести файл extras\https-vhost.conf из каталога, содержащего старую версию Apache в каталог с новой версией Apache.
Помните о том, что инструкции в этом файле могут нуждаться в исправлениях согласно правилам нового релиза Apache.
Как минимум, проверьте изменения 'Allow from', 'Require', а также уберите комментарий строчки 'Include conf/extra/httpd-vhosts.conf' в вашем новом файле httpd.conf.
Перенос старых версий Apache, MySQL и PHP из старой версии wamp в новую
Помните о том, что одной из сильных сторон WAMPServer является возможность переключения между несколькими версиями Apache, MySQL и PHP.
Поэтому вы можете перенести их в новую инсталляцию WampServer.
Copy ?:\wamp-old\bin\apache to ?:\wamp\bin
Copy ?:\wamp-old\bin\mysql to ?:\wamp\bin
Copy ?:\wamp-old\bin\php to ?:\wamp\bin
Нужно помнить о том, что возможно в первый раз вы устанавливали WampServer, который ничего не знает об Apache 2.4, а также о том, что НЕ ВСЕ версии PHP будут работать под Apache 2.4.
В основном потому, что когда они были скомпилированы и слинкованы, Apache 2.4 ещё не существовал, а взаимодействие между Apache и PHP изменили в версии Apache 2.4.
Итак, во ВСЕХ версиях вашего PHP в каталоге ?:\wamp\bin\php\phpx.y.z\ есть файл с именем wampserver.conf.
В старых выпусках PHP он, возможно, выглядит как-то так:
<?php
$phpConf['phpIniDir'] = '.';
$phpConf['phpExeDir'] = '.';
$phpConf['phpConfFile'] = 'php.ini';
$phpConf['apache']['1.3']['LoadModuleName'] = 'php5_module';
$phpConf['apache']['1.3']['LoadModuleFile'] = 'php5apache.dll';
$phpConf['apache']['1.3']['AddModule'] = 'mod_php5.c';
$phpConf['apache']['2.0']['LoadModuleName'] = 'php5_module';
$phpConf['apache']['2.0']['LoadModuleFile'] = 'php5apache2.dll';
$phpConf['apache']['2.0']['AddModule'] = '';
$phpConf['apache']['2.2']['LoadModuleName'] = 'php5_module';
$phpConf['apache']['2.2']['LoadModuleFile'] = 'php5apache2_2.dll';
$phpConf['apache']['2.2']['AddModule'] = '';
?>
Этот файл говорит wampmanager, какие библиотеки вызваны PHP-интерпретатором и с какой основной версией Apache они совместимы.
Эта информация используется при переключении между версиями Apache и PHP при помощи меню WampManager.
Старые версии могут и не содержать таких инструкций для Apache 2.4, поэтому вам придётся добавить их самостоятельно.
Добавляйте такую новую секцию только в том случае, если ваша версия PHP содержит в своем каталоге файл php5apache2_4.dll.
Если же он отсутствует, а они существуют только для версий PHP > 5.3.17 или около того, не добавляйте новую секцию в wampserver.conf.
$phpConf['apache']['2.4']['LoadModuleName'] = 'php5_module';
$phpConf['apache']['2.4']['LoadModuleFile'] = 'php5apache2_4.dll';
$phpConf['apache']['2.4']['AddModule'] = '';
Итак, если вы используете Apache 2.4.x, а ваша версия PHP не содержит файла php5apache2_4.dll, то вы увидите небольшую запрещающую вход иконку рядом с этой версией, если зайдете в меню WampManager и заглянете в раздел PHP -> Versions. Это визуальное подтверждение того, что вам не стоило переключаться на эту версию PHP при использовании текущей версии Apache. Конечно вы можете сменить вашу версию Apache на ту, которая совместима с этой версией PHP и визуальная индикация изменится.
Но помните о том, что этот механизм контролируется уникальным для каждой версии PHP файлом wampserver.conf. Вы не можете просто добавить информацию о версии 2.4 в каждый файл, а лишь в те, которые действительно идут с библиотекой php5apache2_4.dll. И, предваряя ваш вопрос, я предположу, всего лишь предположу, что может быть будет возможность рекомпиляции старых версий PHP с целью достижения совместимости с Apache 2.4, но может быть этого и не случится. Старые версии PHP стары не просто так, и вы должны брать их во внимание лишь при условии необходимости создания вашей среды разработки максимально близкой к среде развертывания вашего кода. Или же если вы используете какой-то очень старый и, возможно, плохо написанный php-код. В этом случае определенно можно использовать и старую версию Apache.
Если всё же всё пойдет чертовски не так, и вам придётся вернуться к предыдущей версии.
Мы можем вернуться к оригинальной версии wamp так:
Запустим новый WAMPServer и удалим сервисы MySQL и Apache.
wampmanager -> Stop all services
wampmanager -> MySQL -> Service -> Remove service
wampmanager -> Apache -> Service -> Remove service
Теперь остановим wampmanager.
Правой кнопкой мыши щёлкнем wampmanager -> Exit
Переименуем текущую папку \wamp в, например, \wamp_new (или же, если вы полностью сдались, можете просто удалить её и начать с нуля как-нибудь в другой раз).
Переименовываем папку \wamp_old назад в \wamp.
Запускаем wampmanager, иконка на вашем столе должна работать по-прежнему, устанавливаем сервисы MySQL и Apache.
wampmanager -> MySQL -> Service -> Install service
wampmanager -> Apache -> Service -> Install service
Вы должны вернуться к исходной точке начала процесса обновления.
Не забудьте очистить кэш вашего браузера (CTRL + F5), чтобы не столкнуться со странностями, случающимися по причине переключения между инсталляциями.
P.S. Хабр почему-то не считает это ссылкой, потому ссылку на оригинал даю в конце статьи.
P.S.S. Разметка статьи максимально близка к оригинальной.
