Переход этого сайта с Drupal 6 на Drupal 7. Некоторые заморочки

Данный сайт построен на движке Drupal.
Никаких особо навороченностей внутри нет. Дополнительных модулей немного.

В связи с выходом Drupal 7 в релиз прежде чем обновлять сурьезные сайты - обновил на своем движок сайта с Drupal 6 на Drupal 7.

А вообще - н-да, хорошо что у меня свой сервер. Для установки Drupal 7 пришлось настройки менять, кои на виртуальном (shared) хостинге недоступы. Ибо требования к настройке PHP и Apache у Drupal 7 другие.

Подробности проблем и пути их решения:

0. Перевел Drupal в режим обслуживания сайта. Отключил дополнительные модуля (не входящие в ядро Drupal). Сделал резервную копию. Обновил до последней версии ветки Drupal 6.x

1. После копирования новых файлов (от 7-ой версии) получил сообщение об ошибке:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, my@email and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

2. Логи Apache сказали что не нравится .htaccess, идущий с Drupal 7, а именно слово "MultiViews"

3. В том же .htaccess непосредственно перед отключением MultiViews (строка "Options -MultiViews", очевидно является отключением опции "MultiViews") написано, что MultiViews мешает работе технологии "Clean URLs", используемой в Drupal и посему опция MultiViews должна быть отключена.

4. У меня на сервере нет MultiViews вовсе, именно потому Apache и ругается - он просто не находит этого слова среди допустимых названий опций. Закомментировал "Options -MultiViews" в файле ".htaccess" в корневом каталоге Drupal и перезапустил Apache. На тех серверах, где MultiViews включен ничего менять не нужно, очевидно.

5. Более внятное сообщение об ошибке, уже от самого Drupal: что нужен в PHP модуль "pdo.so" для работы с базой данных. Поставил.

6. Затем Drupal запросил "pdo_mysql.so". Поставилось с кучей ошибок в зависимостях, при запуске PHP (включил лог ошибок, смотрел в нем) написал, что не совпало API и не будет использовать этот файл. Это было на сервере с FreeBSD 6.3. Обновлять всю PHP на сервере с множеством сайтов не счел целесообразным. Установил на другом физическом сервере с более свежим набором ПО - на базе FreeBSD 8.1

6. Базу данных перенес на новый сервер замечательной утилитой "Sypix Dumper Lite 1.0.8 (c) 2006 zapimir" (это такой малюсенький PHP-файл, заливаемый на хостинг). Проще и надежнее phpMyAdmin, даже с сравнительно большими базами данных работает. Приходилось мне сталкиваться с ситуацией, когда phpMyAdmin не справлялся по причине слишком большого дампа базы, а Sypix Dumper отлично работал с очень большой базой.

7. Получил совершенно белый экран. Включил в Drupal в файле "update.php" строчку "ini_set('display_errors', FALSE);" в "TRUE"

8. Увидел, что Drupal хочет определенные расширения для PHP "Fatal error: Call to undefined function ...", причем в названии функции есть слово "hash". Очевидно, что это вопль о желании PHP работать с "hash.so". Поставил. Обновил страницу.

9. Аналогично другое сообщение о желании вызывать функцию в названии которой есть слово "json", понятно что хочет расширение PHP "json.so". Поставил. Обновил страницу.

10. Затем более культурные сообщения (с красивой картинкой формируемой самим Drupal) - о необходимости расширений PHP которые называются "dom.so", "xml.so". Поставил. Обновил страницу.

11. Сообщение "Notice: date_default_timezone_set() [function.date-default-timezone-set]" счет некритичным, решил проигнорировать и поставить часовой пояс позже, после обновления.

12. Перед обновлением Drupal все нестандартные модули удалил. После обновления - решил не обновлять (и не включать, разумеется) все модуля, на которых был построен сайт. Обошелся минимумом: Views, CAPTCHA, Taxonomy_Menu.

13. Пришлось заново пересоздать в настройках модуля Views представление первой страницы. Взял за основу другую тему оформления сайта. Сейчас думаю, что можно было обойтись и без полной переделки. Что-то вроде "upgrade views" видел где-то в настройках Drupal.

Усе.

P.S.:
14. Попробовал перенести обновленный сайт обратно на FreeBSD 6 - понадобилось обновить PHP, MySQL... Так и не добился. Чего-то для счастия не хватило - не удалось подключиться к БД. Ну и ладно - мы будем жить теперь на FreeBSD 8.1, тем более, что она давно существует и довольно стабильна.

Компьютерные вопросы: 
2002-2012 ©