В очередной раз столкнулся с обновлением движка Drupal 6 для своего сайта. На этот раз всё было немного сложнее чем обычно. Во первых я некоторое время игнорировал обновления. Во вторых с каждым днем всё больше модулей, которыми я пользуюсь и которые тоже нужно обновлять. И вот незадача – я каждый раз забываю очередность – что нужно сделать.
Поэтому я решил заодно все свои шаги набросать в доку (о том, выложить на суд народа или нет вопрос уже и не стоял))) ).
Конечно же описаний установки и обновления довольно много в рунэте. Да и приложенные к движку описания тоже нечего, хотя они и на английском. Но к многим описаниям есть замечания, например, мне не понравилось то, что народ делает бэкап сайта не введя сайт в режим тех обслуживания – также можно и статистику потерять, или чей-то комментарий. В общем хотелось бы иметь свою писульку, с блэк-джеком и шлюхами)))))
Пошаговое описание смотри далее…
В очередной раз столкнулся с обновлением движка Drupal 6 для своего сайта. На этот раз всё было немного сложнее чем обычно. Во первых я некоторое время игнорировал обновления. Во вторых с каждым днем растет всё большее количество модулей, которыми я пользуюсь. И вот незадача – я каждый раз забываю очередность – что нужно сделать.
Поэтому я решил заодно все свои шаги набросать в доку (о том, выложить на суд народа или нет вопрос уже и не стоял))) ).
Конечно же описаний установки и обновления довольно много в рунэте. Да и приложенные к движку описания тоже нечего, хотя они и на английском. Но к многим описаниям есть замечания, например, мне не понравилось то, что народ делает бэкап сайта не введя сайт в режим тех обслуживания – также можно и статистику потерять, или чей-то комментарий. В общем хотелось бы иметь свою писульку, с блэк-джеком и шлюхами)))))
В общем вот что я делаю каждый раз (правда всего второй раз в жизни:) ) :
1. Переводим сайт в режим на тех обслуживании (admin/settings/site-maintenance).
2. Делаем бекапы файлов и базы данных.
3. Выключаем все левые модули предварительно запомнив какие были включены – можно просто сохранить страничку с модулями.
4. Удаляем все папки кроме:
files\ — этой папки даже в обновлении нет
sites\ — если залить в неё поверх новую, то просто обновится default.settings.php, а
settings.php будет жить дальше. У меня там больше ничего и нет.
5. В папке sites\ изменяем права на запись с 0644 на 0755.
6. Заливаем все файлы нового движка.
7. Сморим как изменился файл \sites\default\default.settings.php в новой версии движка по сравнению с нашим \sites\default\settings.php и если он таки поменялся, добавляем изменения в наш \sites\default\settings.php.
8. Заливает с бекапа поверх нового движка файлы:
.htaccess
robots.txt
фалы подтверждения гугла, яндекса, и другие файлы – которые менялись в процессе.
Советую здесь перед заменой сравнить файлы через Shift + F1 в тотале чтобы, не дай бог, не потерять пару строчек изменения.
9. В папке sites\ изменяем права на запись обратно с 0755 на 0644.
10. Запускаем /update.php и выбираем все максимальные циферки в обновлениях модулей.
11. После обновления проверяем Отчёт о состоянии (admin/reports/status) и если никаких замечаний по обновлению нет – также запускаем cron и проверяем вдруг что-то еще обновилось.
12. Если всё нормально – в папку модулей копируем наши отличные от ядра модули. Также не помешало бы на данном этапе удалить не нужные стандартные модули, т.к. не использую я много модулей и места под сайт выделено не густо.
13. Заходим в раздел Модули и подключаем все необходимые (подглядывая в ранее сохраненную HTML).
После этого может появится много предложений обновить наши нестандартные модули. Если предложат — качаем все обновившиеся модули.
• После этого запустить /update.php и в перечне модулей выбрать наиболее высокие циферки.
При обновлении могут возникать различные ошибки. На ниже перечисленные ошибки я не реагировал:
user warning: Table ‘captcha_sessions’ already exists query
user warning: Duplicate key name ‘pid’ query
user warning: Table ‘taxonomy_menu’ already exists query
Тут всё просто – кое что не смогло добавиться из за того что оно уже есть… Это, как мне показалось, не критично.
А вот такие ошибки настораживают:
user warning: Unknown column ‘access’
user warning: Key column ‘access’ doesn’t exist in table query
Эти ошибки означали что в запросах есть поле ‘access’ , которого нет в базе. Обновление относилось к модулю xmlsitemap. В результате у меня не создавался моя карта сайта и в логах постоянно светились ошибки о неизвестном поле ‘access’. Ошибку удалось исправить переустановкой обновлений модуля xmlsitemap, предварительно отчистив все записи таблицы xmlsitemap. Почему ошибка возникла – сказать затрудняюсь. Мне кажется, вовремя обновления мог запуститься cron и не дать изменить базу. Но тем не менее ошибка ушла.
14. Можно, а пожалуй даже нужно из корня сайта удалить следующие файлы:
CHANGELOG.txt
COPYRIGHT.txt
install.php
INSTALL.txt
INSTALL.mysql.txt
INSTALL.pgsql.txt
LICENSE.txt
MAINTAINERS.txt
update.php
UPGRADE.txt
Они нам уже не пригодятся =).
15. Когда всё обновлено и работает – выводим сайт из режима техобслуживание.
Вот собственно и все. Далее было бы не лишним ещё раз сделать бэкап – когда всё работает (чем я в данный момент занимаюсь). После этого можно обмыть обновку сайта бутылочкой пива, как я обычно и делаю 🙂 .
Пы.Сы. Если кто-то хотел бы что-то добавить – добавляем в комментариях.