Предисловие переводчика
Имея совсем небольшой опыт работы с набором 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. Разметка статьи максимально близка к оригинальной.