VirtueMart Joomla! Administrator для iPhone

VirtueMart Administrator — это пакет клиент-серверных приложений для iPhone.
Используя данные приложения Администратор получает возможность производить управление электронным магазином VirtueMart работающий под управлением CMS Joomla!, а посетители просматривать, производить поиск Товаров и осуществлять покупки в Вашем электронном магазине.   VirtueMart Administrator состоит из приложений:

  • VirtueMart Viewer (VMart Viewer) — приложение для iPhone позволяющее посетителям электронного магазина просматривать, производить поиск Товаров и осуществлять покупки в Вашем электронном магазине
    http://itunes.apple.com/us/app/vmart-viewer/id408743175?mt=8
  • VirtueMart Updater (VMart Updater) — приложение для iPhone позволяющее Администратору производить управление электронным магазином
    http://itunes.apple.com/us/app/vmart-updater/id408624381?mt=8

Как работают приложения VirtueMart Administrator Приложения входящие в VirtueMart Administrator работают с модулем MOD_VIRTUEMART_VIPHONE.
Модуль устанавливается непосредственно перед началом работы с электронным магазином VirtueMart (Подробная инструкция по установке электронного магазина VirtueMart приведена на сайте разработчика). Модуль MOD_VIRTUEMART_VIPHONE может быть установлен с iPhone при запуске приложения, с удаленного сервера или локально через Административную панель управления.
Способ установки модуля выбирается в зависимости от уровня безопасности сервера, на котором установлен электронный магазин VirtueMart. Подробная инструкция по установке модуля MOD_VIRTUEMART_VIPHONE приведена в разделе «Установка Модуля MOD_VIRTUEMART_VIPHONE» на сайте разработчика.

Распространенные ошибки Joomla! и способы их решения

Эта статья содержит описание и способы избавления от наиболее распространенных ошибок, которые возникают в процессе установки и администрирования сайта на CMS Joomla! 1.5. Типичные ошибки ранних версий Joomla! 1.5.x в статье приводится не будут — для их решения достаточно обновится до последней актуальной версии — Joomla! 1.5.15.

Итак, начнем. Если у Вас версия Joomla! ниже 1.5.15, то вам необходимо обновить ядро:
1. Смотрим, какая версия Joomla! у нас установлена — в правом верхнем углу административной части сайта будут заветные циферки — например «Версия 1.5.12».
2. Далее идем на joomlacode.org, в списке архивов ищем файл Joomla_1.5.12_to_1.5.15-Stable-Patch_Package.zip
3. Скачиваем и содержимое архива распаковываем в корень сайта на хостинге, подтверждая замену всех файлов.

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

Fatal error: Maximum execution time of 30 seconds exceeded in …

Критическая ошибка при загрузке любой страницы
Комментарий: недостаточно времени для выполнения скрипта
Решение: возможны несколько способов решения данной ошибки.
1. Если сайт находится на хостинге, то попросить хостера увеличить время выполнения скриптов
2. Если сайт находится на локальном сервере — то в php.ini (для Denwer, например, php.ini находится по адресу — Z:\usr\local\php5\php.ini) находим параметр max_execution_time и увеличиваем его значение.
3. В .htaccess вставить строку (в любое место):
php_value max_execution_time 1000
4. В index.php (в корне сайта) вставить строку:

Следует помнить, что, как правило, на хостинге доступ к php.ini отсутствует, и манипуляции из п.3 и п.4 редко помогают. Тогда единственный выход — п.1.

Fatal error: Call to a member function merge() on a non-object in /home/…/public_html/
administrator/components/com_menus/models/item.php on line …

Критическая ошибка при создании и/или редактировании пунктов меню.
Решение: проверить целостность файла administrator/components/com_menus/models/item.php, при необходимости перезалить из установочного архива. Для гарантии — перезалить всю папку administrator из установочного архива Joomla!

Delete failed: ‘0a54a1212e802cc1ada1597885f9a59e.php’

Не критическая ошибка при сохранении материалов.
Комментарий: невозможно удалить файл кэша статьи.
Решение: проверить права записи (CHMOD) в папку /tmp (должны стоять 755 или 777). Проверить абсолютный путь к папке /tmp в конфиге сайта (configuration.php)

Database Error: Unable to connect to the database:Could not connect to database

Критическая ошибка соединения с базой данных.
Комментарий: нет подключения к базе данных.
Решение: проверить наличие базы данных сайта (в configuration.php в параметре var $db, имя базы данных должно соответствовать имени базы в phpMyAdmin). Проверить имя пользователя базы данных (var $user) и пароль доступа к базе данных (var $password). Если с этими параметрами все нормально — скорее всего упал MySQL, для устранения ошибки обратится к хостеру.

jtablesession::Store Failed
DB function failed with error number 1146
Table
‘database_name.jos_session’ doesn’t exist SQL=INSERT INTO `jos_session` (
`session_id`,`time`,`username`,`gid`,`guest`,`client_id` ) VALUES (
‘eb894feb5ff2dcc5f12cfc43f071fd8d’,’1270548439′,»,’0′,’1′,’0′ )

Критическая ошибка доступа к таблице сессий базы данных.
Комментарий: отсутствует таблица _session в базе данных.
Решение: проверить наличие таблицы _session в базе данных сайта. Проверить правильность префикса используемой базы данных (параметр var $dbprefix в configuration.php должен совпадать с префиксом таблиц базы данных, причем следует помнить, что таблицы в базе данных могут быть с разными префиксами, по умолчанию Joomla! использует префикс «jos_»).

JAuthentication::__construct: Could not load authentication libraries.
Имя пользователя и пароль не совпадают

Критическая ошибка авторизации в административной части сайта.
Комментарий: причиной ошибки является отключение (снятие с публикации) плагина Authentication — Joomla и/или плагина User — Joomla!
Решение: необходимо в phpMyAdmin включить два плагина (либо через интерфейс phpMyAdmin, либо выполнить два следующих SQL-запроса):
Активирование плагина Authentication — Joomla

UPDATE `jos_plugins` SET `name` = ‘Authentication — Joomla’, `element` = ‘joomla’, `folder` =
‘authentication’, `access` = ‘0’, `ordering` = ‘1’, `published` = ‘1’, `iscore` = ‘1’,
`client_id` = ‘0’, `checked_out` = ‘0’, `checked_out_time` = ‘0000-00-00 00:00:00’,
`params` = » WHERE `id` = ‘1’;

Активирование плагина User — Joomla!

UPDATE `jos_plugins` SET `name` = », `element` = ‘joomla’, `folder` = ‘user’, `access` = ‘0’,
`ordering` = ‘0’, `published` = ‘1’, `iscore` = ‘0’, `client_id` = ‘0’, `checked_out` = ‘0’,
`checked_out_time` = ‘0000-00-00 00:00:00’, `params` = ‘autoregister=1\r\n\r\n’
WHERE `id` = ‘5’;

JAuthentication::__construct: Невозможно загрузить библиотеки аутентификации.
Имя пользователя и пароль не совпадают или учетная запись отсутствует

Критическая ошибка авторизации в фронтальной части сайта.
Комментарий: причиной ошибки является отключение (снятие с публикации) плагина Authentication — Joomla и/или плагина User — Joomla!
Решение: необходимо в phpMyAdmin включить два плагина (либо через интерфейс phpMyAdmin, либо выполнить два следующих SQL-запроса):

UPDATE `jos_plugins` SET `name` = ‘Authentication — Joomla’, `element` = ‘joomla’, `folder` =
‘authentication’, `access` = ‘0’, `ordering` = ‘1’, `published` = ‘1’, `iscore` = ‘1’,
`client_id` = ‘0’, `checked_out` = ‘0’, `checked_out_time` = ‘0000-00-00 00:00:00’,
`params` = » WHERE `id` = ‘1’;

Активирование плагина User — Joomla!

UPDATE `jos_plugins` SET `name` = », `element` = ‘joomla’, `folder` = ‘user’, `access` = ‘0’,
`ordering` = ‘0’, `published` = ‘1’, `iscore` = ‘0’, `client_id` = ‘0’, `checked_out` = ‘0’,
`checked_out_time` = ‘0000-00-00 00:00:00’, `params` = ‘autoregister=1\r\n\r\n’
WHERE `id` = ‘5’;

Warning: main(/путь/includes/phpInputFilter/class.inputfilter.php):failed to open stream:
No such file or directory in /путь/includes/joomla.php on line 81
Fatal error: main():
Failed opening required ‘/путь/includes/phpInputFilter/class.inputfilter.php’
(include_path=’.:/usr/lib/php:/usr/local/lib/php’) in /путь/includes/joomla.php on line 81

Критическая ошибка во время установки либо после установки Joomla!
Комментарий: папка /includes/phpInputFilter залилась не полностью либо в неправильном регистре.
Решение: проверить и/или заменить папку /includes/phpInputFilter из оригинального дистрибутива и проверить регистр имени папки — при необходимости переименовать (вместо phpinputfilter в phpInputFilter)

cURL extension is not available on your server

Некритическая ошибка появляется при публикации некоторых модулей на форнте сайта (в местах вывода модулей).
Комментарий: отсутствует расширение php_curl на хостинге.
Решение: Необходимо подключить расширение PHP cURL — либо в php.ini добавить extension=php_curl.dll, либо, если нет доступа к php.ini, обратится к хостеру.

Warning: session_start() [function.session-start]: Cannot send session cache limiter —
headers already sent (output started at /путь/configuration.php:1) in
/путь/libraries/joomla/session/session.php on line 423

Warning: Cannot modify header information — headers already sent by (output started at
/путь/configuration.php:1) in /путь/libraries/joomla/session/session.php on line 426

Критическая ошибка при загрузке сайта.
Решение: проверить кодировку файла конфигурации (configuration.php). Кодировка файла должна быть в utf-8 без BOM. Содержимое файла configuration.php должно начинаться с
1.2. В файл .htaccess (в корне сайта) добавлем строку:
php_value memory_limit 32M
1.3. В php.ini (если есть к нему доступ) увеличиваем параметр memory_limit:
memory_limit = 32M
1.4. В своем скрипте добавляем:
ini_set(‘memory_limit’, ’32M’)
1.5. Для Joomla! 1.5 существует плагин Memory Limit Plugin, который добавляет память для выполнения скриптов без ручного вмешательства в файлы сайта.
2. Если все вышеперечисленные способы не помогли — обращаемся к хостеру с просьбой об увеличении оперативной памяти для выполнения скриптов.

JFolder::create: Path not in open_basedir paths
Unable to create destination

Критическая ошибка при установке расширений.
Комментарий: ошибка связанная с open_basedir.
Решение: Для начала проверяем правильность пути к папке tmp (в файле сonfiguration.php). Если там все верно, то открываем файл /libraries/joomla/filesystem/folder.php и находим $obd = ini_get(‘open_basedir’) (примерно 194 стр.) и комментируем её, т.е. ставим впереди этой строки //

JFolder::create : Infinite loop detected

Критическая ошибка при установке расширений.
Решение: В большинстве случаев ошибка появляется тогда, когда для временной папки tmp указан неверный путь (в файле сonfiguration.php).

DB function failed with error number 1030

Критическая ошибка при сохранении и/или редактировании материалов или модулей.
Комментарий: повреждены таблицы базы данных.
Решение: необходимо проверить таблицы базы данных и восстановить их (в phpMyAdmin есть соответствующие функции). Также есть вероятность переполнения временной папки /tmp. Удалите ее содержимое, если не помогло — обратится к хостеру с сообщением об ошибке MySQL — 1030 SQLSTATE: HY000 (ER_GET_ERRNO)

XML Parsing Error at 1:37. Error 108: Unknown

Критическая ошибка при создании и/или установке модулей.
Комментарий: ошибка в xml-файле модуля.
Решение: необходимо проверить xml-файл устанавливаемого или создаваемого модуля. В начале файла должны содержатся следующие строки:


DB function failed with error number 1226
User ‘username’ has exceeded the ‘max_questions’ resource …
Ошибка MySQL 1226: превышено допустимое количество запросов

Критическая при загрузке страниц сайта
Комментарий: на сервере установлено ограничение количества запросов от одного пользователя базы данных.
Решение: в панели управления хостингом создаем двух или трех пользователей вашей базы данных, с правами, идентичными основному пользователю. Далее открываем файл configuration.php и вносим правки:
для Joomla! 1.0 — находим

$mosConfig_user = ‘main_user_joomla’;

и заменяем на следующее:

$mosConfig_users = array(«main_user_joomla», «main_user_joomla2», «main_user_joomla3», «main_user_joomla4»);
$mosConfig_user = $mosConfig_users[array_rand($mosConfig_users)];

где: main_user_joomla — главный пользователь БД
main_user_joomla2, main_user_joomla3, main_user_joomla4 — созданные копии главного пользователя.

Для Joomla! 1.5 — добвляем после class JConfig {

function __construct()
{
$this->user = $this->getUser();
}
private function getUser()
{
$users_a = array(‘main_user_joomla’,’main_user_joomla2′,’main_user_joomla3′);
$user_a = $users_a[array_rand($users_a)];
return $user_a;
}

Call to undefined function: xml_parse() in /…/libraries/joomla/utilities/simplexml.php on line xxx

Критическая ошибка при попытке установки CMS Joomla! ранних версий.
Комментарий: данная ошибка является следствием особенности хостинга.
Решение: необходимо обратится к хостеру с сообщением об ошибке библиотеки XML-парсинга. В некоторых случаях достаточно добавить в файл .htaccess следующие строки:

AddHandler x-httpd-php5all .php .inc .php5
AddHandler x-httpd-php4 .php4

JInstaller::install: Ошибка SQL DB function failed with error number 2006
MySQL server has gone away SQL= запрос

Критическая ошибка при установке объемных расширений, чаще всего компонентов, содержащих большое количество файлов.
Комментарий: MySQL сервер уходит в оффлайн, так как исчерпывается время ожидания сервера
Решение: необходимо обратится к хостеру с просьбой увеличить время в параметре mysql.connect_timeout. Но хостеры, идущие навстречу клиентам — редкость в наше время. Поэтому пробуем ручную установить расширение (с распаковкой архива расширения на хостинг) либо использовать хак от Martin Brampton: качаем файл JoomlaDBI.zip из файлового архива, делаем резервную копию файлов /libraries/joomla/database/database/mysql.php и /libraries/joomla/database/database/mysqli.php Далее заменяем эти файлы аналогичными модифицированными файлами из архива.

Fatal error: Call to undefined method JLanguage::getBackwardLang() in /…
/administrator/components/com_virtuemart/compat.joomla1.5.php on line 78

Критическая ошибка при установке VirtueMart.
Комментарий: Ошибка является следствием несовместимости устанавливаемой версии VirtueMart и линейки Joomla и возникает в результате установки VirtueMart версии 1.1.x на Joomla! 1.6 или 1.7
Решение: Проверьте соответствие версии компонента магазина VirtueMart и Вашей Joomla!. Линейка VirtueMart 1.1.x (например 1.1.9) предназначена только для Joomla! 1.5

JFolder::files: Path is not a folder

Некритическая ошибка в административной части сайта (в общих настройках и пр.).
Комментарий: Наиболее частой причиной этой ошибки есть удаление некоторых ненужных, как может показаться на первый взляд, папок по FTP, в первую очередь вложенных каталогов в папке images:
images/banners
images/M_images
images/smilies
images/stories
Решение: Проверьте наличие этих папок, если же они отсутствуют (все, или хотя бы одна из них) возьмите отсутствующие папки из установочного архива Joomla либо просто создайте их на хостинге. Если же папки имеются, проверьте также регистр имени папок — папка images/M_images должна называться именно так, а не images/m_images

JInstaller::install: Ошибка SQL DB function failed with error number 1064

Критическая ошибка при установке расширений.
Комментарий: Ошибка происходит при попытке установки расширений для Joomla и связанная с тем, что запрос в БД написан для устаревших версий MySQL и некорректно работает с новыми версиями.
Решение: найдите в вашем установочном запросе упоминание Type = MYISAM и замените на ENGINE = MYISAM либо, если это возможно, используйте новые версии расширений.

Отключение предупреждений и нотайсов (warning и notice) на сайте

Вопрос: Как отключить на сайте вывод предупреждений и нотайсов (warning и notice)?
Сообщения типа warning и notice не являются ошибками, это уведомления и предупреждения, которые выводятся для отладки кода разработчиком. Иногда эти предупреждения забывают исправить, и они появляются на рабочих сайтах.
Скрыть их можно несколькими способами.
Для начала в Общих настройках сайта — вкладка «Сервер» — блок «Установки сервера» — Сообщения об ошибках — установите «Нет».
Если предупреждения не изчезли, то пробуем следующее:
Если имеется доступ к файлу php.ini то находим в нем параметр error_reporting и выставляем значение:

error_reporting = E_ERROR

Также предупреждения можно отключить через .htaccess:

php_value error_reporting 1

Также можно добавить в index.php из корня сайта следующие строки:

Миграция c Joomla! 1.0 на 1.5

В свете туманной перспективы линейки Joomla! 1.0.x, после долгих взвешиваний все таки решился на переход на линейку, которая призвана покорять мир в будущем и настоящем – Joomla! 1.5.x
Получив целую тучу палок в колеса, решился на написание этой статьи, которая должна помочь избежать всяких проблем всем, кто займется миграцией.

Переход с 1.0 на 1.5 осуществляется либо с помощью компонентов, которые делают дамп базы данных, совместимый с Joomla! 1.5, либо вручную, путем того же выборочного дампа и некоторых правок. Пойдем по пути наименьшего сопротивления, тоесть мигрируем с помощью первого способа.


Изучив несколько компонентов, остановился на более простом и менее глючным по моему мнению – Migator от Sam Moffatt (http://pasamio.id.au), на текущий момент последняя версия — migrator_rc7.


Процесс миграции с помощью этого компонента подразумевает собой импортирование контента с Joomla! 1.0.x  в процессе создания нового сайта на Joomla! 1.5
Итак, вы скачали этот компонент с моего файлового архива, либо с официального сайта. Далее по порядку:


1. Резервный дамп базы и сайта

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


2. Установка компонента миграции

Ставим наш компонент на сайт Joomla! 1.0.x, с которого вы хотите перенести контент. На некоторых конфигурациях сервера компонент не устанавливается и выдает ошибку:
Fatal error: Call to undefined method DOMIT_Lite_TextNode::getAttribute() in Z:\home\1.ru\www\administrator\components\com_installer\installer.class.php on line 316
или другую.
Для корректной установки компонента нужно открыть файл migrator.xml из архива и удалить закомментированные строчки (примерно 64-68):

<!--        <filename>images/backup.png</filename>
            <filename>images/backup_f2.png</filename>
            <filename>images/delete.png</filename>
            <filename>images/download.png</filename>
            <filename>images/sql_info.png</filename>-->

Понятия не имею зачем это сделано, но те кто скачал компонент с моего файлового архива, от этой радостной процедуры освобождаются – там уже все поправлено.

3.Создание SQL-файла миграции

В административной части сайта заходим в компонент и жмем кнопку «Create Migration SQL File»

Далее выбираем плагины, которые будут активированы при создании файла миграции (по умолчанию выбраны все). Помимо контента (плагин Content ETL) также можно перенести на новый сайт разделы, категории, баннеры, опросы, модули, ссылки и пользователей. Далее жмем кнопку «Start Migration >>» и наблюдаем за процессом создания дампа. После успешного завершения вы увидите сообщение «Migration complete!» и имя созданного дампа.

После идете в /administrator/components/com_migrator/dumps и забираете этот файл, или, щелкнув “Download”, загружаете этот дамп на компьютер.

4. Установка Joomla! 1.5.x и импорт данных

Следующим шагом будет установка нового сайта на CMS Joomla! 1.5. Вплоть до шестого шага установка проводится стандартно. На шаге 6:Конфигурация сразу начинаем работать с разделом «Загрузка демо-данных / Миграция или Восстановление с резервной копии».
Далее ставим ratio-точку «Загрузить скрипт миграции», указываем префикс таблиц старого сайта (даже если на старом сайте у таблиц базы данных был префикс отличный от jos_ — все равно прописываем jos_ — так как скрипт мигратора прописывает этот префикс в дампе независимо от реального префикса таблиц), его кодировку (кодировка, которая была на старом сайте) и местонахождение дампа. Также ставим нижнюю галочку, гласящую о том, что это именно файл импорта из прошлой версии Joomla!

После процесса импорта появится сообщение об результате миграции  и будет предложено продолжить установку.

После миграции не забудьте скопировать изображения со старого сайта на новый — как правило достаточно перенести папку images, но, если изображения хранились в другой папки — их нужно перенести тоже.

Ошибки миграции с Joomla 1.0 на Joomla 1.5

Если мигрирование не состоялось то появится ошибка с описанием возможных причин.
Сбой загрузки! убедитесь, что папки ‘tmp’ и ‘installation/sql/migration’ доступны на запись. — в этом случае проверьте существование указанных папок а также их chmod (777). Если такая ошибка появляется при установке на локальном сервере (в частности на Denver) то возможно у вас слышком тяжелая база (более 2 Мб). В этом случае нужно в php.ini в строке upload_max_filesize = 2M выставить значение, не меньше размера вашей базы данных.
MySQL: Lost connection to MySQL server during query — утеряно соединение с базой данных во время миграции. Если мигрируете на Денвере, откройте файл /usr/local/mysql-5.5/my.ini и увеличьте все значения параметров — я увеличивал в 10 раз — добавлял в конце значения параметра нолик.
MySQL: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘ENGINE=MyISAM…» — ошибка, свидетельствующая о несовместимости бекапа с версией MySQL. Для решения ошибки необходимо в дампе миграции выполнить замену ENGINE=MyISAM на TYPE=MyISAM. Ошибка встречается при использовании, например, ETL плагина VirtueMart 1.0.

Поскольку поля таблицы jos_user уже заполнены, то введённые данные администратора будут проигнорированы — вместо них используйте пароль и адрес электронной почты администратора, которые были на старом сайте.

Некоторые особенности и полезные замечания.

•    Если у хостера либо на локальном сервере Denwer не установлена библиотека перекодировки iconv, то весь русский текст после импорта изчезнет. Имейте в виду.
Денвер изначально поставляется с библиотекой iconv.dll. Но несмотря на это у некоторых этой библиотеки небыло. У меня она была.
•    Возможно понадобится на локальном денвере в php.ini установить перед миграцией вместо max_execution_time = 30 хотя бы раз в 5 больше (и убедитесь что php.ini у вас подхватывается как надо).
•    В процессе миграции из содержания «псевдонимов» статей и разделов удаляются символы подчеркивания «_», поэтому если вы их использовали в предыдущей версии joomla для разделения транслит-слов, можно авансом запустить подобный запрос в базе, чтобы заменить этот символ «_» на символ «-«:

Update jos_content Set title_alias = replace(title_alias, '_', '-')

(Правильность запроса не гарантируется!)
•    Если вы мигрируете с версии 1.0.13 разработчики советуют поставить патч исправляющий ошибку сессии администратора от Rob Schley’s
Какие еще особенности миграции?
•    Все комментарии Jcomments со старого сайта перенес с помощью экспорта-импорта таблицы jos_jcomments.
•    Картинки, вставленные с помощью мамбота mosimage пришлось перегнать по новому, ибо при миграции они остались, но со ссылкой на старый сайт.

Удачи!

Заметаем следы Joomla!

В стремлении скрыть от хакеров все следы признаков CMS для затруднения ее идентификации и предотвращения неправомерных действий и посягательства на целостность интернет ресурса, пользователи часто забывают о многих признаках CMS Joomla! Попробую разложить по полочкам эти признаки и описать способы избавлений от них. Эта статья не претендует на полноту, но, по ходу поступлений комментариев и замечаний будет постоянно дополнятся и совершенствоваться.

Итак, сначала рассмотрим всевозможные признаки, по которым мы в первую очередь пытаемся идентифицировать систему управления контентом Joomla!

1.    Копирайты внизу страницы. Не все стремятся скрыть движок сайта и поэтому даже не убирают копирайты: например Joomla! is Free Software released under the GNU/GPL License.
2.    Ссылки на страницы. Стандартные ссылки у Joomla! выглядят подобным образом:
http://site.ru/index.php?option=com_frontpage&Itemid=1
http://site.ru/index.php?option=com_content&task=view&id=14&Itemid=1
http://site.ru/content/view/14/1/
и т.д. и т.п.
3.    Админка. Проверяем наличие админки по стандартному адресу Joomla! – site.ru/administrator
4.    Meta-теги. Некоторые доблестные сайтостроители забывают изменить описание сайта и его ключевые слова. В итоге в исходном коде страницы мы можем наблюдать следующее:

<meta name="description" 
content="Joomla - the dynamic portal engine and content management system" />
<meta name="keywords" content="Joomla, joomla" />

А также тег generator, который генерируется ядром:

<meta name="Generator" 
content="Joomla! - Copyright (C) 2005 - 2007 Open Source Matters. All rights reserved." />

5.    Просмотр позиций для модулей. При просмотре сайта по адресу site.ru/?tp=1 можно легко убедиться что сайт работает именно на CMS Joomla!
6.    Robots.txt. Просмотрев этот файлик по адресу site.ru/robots.txt можно также с большей долей вероятности определить CMS:

User-agent: * 
Disallow: /administrator/
Disallow: /cache/
Disallow: /components/

7.    Постраничная навигация сайта. Иногда достаточно одного взгляда на построение постраничной навигации:
<< В начало < Предыдущая 1 2 3 4 5 Следующая > В конец >>
8.    Содержимое папок сайта. На некоторых хостах можно посмотреть содержимое всех папок сайта: например site.ru/components/
9.    Стандартные пути к шаблону и название соответствующих классов (зашитых в ядро). 
10.  Стандартная иконка Joomla! Многие забывают о ней или не считают нужным сменить, но это ведь почти стопроцентный признак.
11. Ошибка 404. После ввода заведомо несуществующего адреса, Joomla! выдает стандартную, всем знакомую красненькую табличку с надписью 404 — Компонент не найден и пояснениями возможных причин.

Теперь способы избавления от вышеперечисленных следов:

1.Копирайты в подвале сайта
Joomla 1.0.x
После установки Joomla! внизу страницы мы можем наблюдать примерно такую картину:

© 2009 Site Name
Joomla! is Free Software released under the GNU/GPL License.

Изучив код шаблона (index.php вашего шаблона) мы обнаруживаем такую строку:

<?php include_once( $GLOBALS['mosConfig_absolute_path'] . '/includes/footer.php' ); ?>

Удалив ее, можно избавиться от вывода копирайтов в подвале сайта. Но только для этого шаблона. Если у вас есть вредная привычка часто менять шаблоны, есть смысл сделать небольшой хак, что б избавиться от этого раз и навсегда
Открываем файл includes/footer.php и видим следующие стоки:
Этот div выводит значок копирайта, текущий год и название вашего сайта.

<div align="center">
    &copy; <?php echo mosCurrentDate( '%Y' ) . ' ' . $GLOBALS['mosConfig_sitename'];?>
</div>

А этот div выводит версию движка и лицензию.

<div align="center">
    <?php echo $_VERSION->URL; ?>
</div>

Удаляем или редактируем как нужно.

Joomla 1.5.x
В линейке 1.5.x вывод копирайтов осуществляется в корне отличным способом и убрать его можно как минимум тремя способами:
а) В менеджере модулей отключить вывод модуля «Footer» (mod_footer). Но в этом случае исчезнуть все копирайты, а не только «joomla-овские».
б) В языковом файле \language\ru-RU\ru-RU.mod_footer.ini в строках:
FOOTER_LINE1=
FOOTER_LINE2=
Убрать все, что справа от знака равно
в) В файле \modules\mod_footer\tmpl\default.php отключить вывод 2-ой строки, удалив строку:

<div><?php echo JText::_( 'FOOTER_LINE2' ); ?></div>


2. Ссылки на страницы.
Чтобы изменить стандартный тип ссылок на внутренние страницы Joomla! сайта необходимо использовать сторонние компоненты, которые могут создавать любые ссылки на внутренние страницы вашего сайта – sh404SEF, ARTIO JoomSEF, NuSEF (бесплатные), SEF Advance (платный) и другие. Обзор этих компонентов выходит за рамки этой статьи.

3. Админка.
Всем известно что вход в административную часть сайта на CMS Joomla! осуществляется через site.ru/administrator
Есть два способа скрыть вход в админку.
а) Средствами сервера: поставить пароль на папку administrator
В папке administrator создаем такой .htaccess:

AuthName "For Registered Users Only"
AuthType Basic
AuthUserFile /pub/site.ru/.htpasswd
require valid-user
</Files>

где значение AuthName будет выводиться для посетителя и может использоваться для пояснения запроса авторизации. Значение AuthUserFile указывает на место, где хранится файл с паролями для доступа к данной директории. Этот файл создается специальной утилитой htpasswd.exe.

Но! У этого способа есть один очень существенный недостаток: если используются расширения у которых файлы обращаются к папке администратора (например языковый файл или другие), то вместо требуемого пользователь столкнется с предложением ввести логин и пароль (по отзывам посетителей, а именно SadowXak)
Поэтому способ б) является более предпочтительным:

б) Средствами Joomla: поставить специально предназначенные для этого расширения.

Например плагин для Joomla! 1.5 jSecure Authentication. При переходе на страницу site.ru/administrator он включает заданную переадресацию. В админку можно попасть, только задав ключевое слово в адресной строке: site.ru/administrator/?password

Существует масса подобных расширений на JED.


4. Meta – теги сайта. Description, keywords и Generator.
Содержимое meta-тегов Description и keywords прописывается в глобальных настройках сайта и означает не что иное, как описание сайта и его ключевые слова. Просто не забывайте заполнять эти данные (встречается и такое). А вот на meta-тег Generator без хака мы повлиять не сможем.
Generator для Joomla! 1.0.x:
В исходном коде страниц видим:

<meta name="Generator" content="Joomla! - Copyright (C) 2005 - 2007 Open Source Matters. 
All rights reserved." />

Данная строка выводится в функции mosShowHead() файла includes/frontend.php, строка 195 (для Joomla 1.0.15):

 $mainframe->addMetaTag( 'Generator', $_VERSION->PRODUCT . ' - ' . $_VERSION->COPYRIGHT);

Для удаления этой информации из кода страниц сайта необходимо закомментировать или удалить эту строчку.

smart

Generator для Joomla! 1.5.x:
В исходном коде страниц видим:

<meta name="generator" content="Joomla! 1.5 - Open Source Content Management" />

Есть два способа влияния на мета-тег Generator: путем хака ядра и внесением кода в шаблон.
Первый способ (хак ядра Joomla!) подходит тем, кто не планирует постоянно обновлять ядро сайта и/или часто меняет шаблоны сайта.
Открываем следующие файлы:
libraries\joomla\document\document.php
libraries\joomla\document\html\renderer\head.php

Если хотим просто изменить эту строку, то в файле document.php находим примерно 85 строку:

var $_generator = 'Joomla! 1.5 - Open Source Content Management';

и вставляем свое внутрь кавычек ‘ ‘
Если хотим совсем удалить этот мета тег, то в файле head.php, комментируем // строку (примерно 83):

$strHtml .= $tab.'<meta name="generator" content="'.$document->getGenerator().'" />'.$lnEnd;

Второй способ (правка шаблона), более мягкий и не требует вмешательства в код ядра Joomla! (при обновлениях ядра можно не беспокоиться о хаках, так как их просто не будет).
Где-то между тегами <head> и </head> вставляем следующую строку:

<?php $this->setGenerator('Ваш мета-тег geneator');?>

Или же оставляем пустое значение мета-тега:

<?php $this->setGenerator(''); ?>

5. Исключаем возможность просмотра позиций для модулей через site/?tp=1
Для Joomla! 1.0.x
Для этого нам надо сделать небольшой хак.
Открываем файл /includes/frontend.php
Ищем примерно 129-135 строки (для Joomla! 1.0.15):

$tp = intval( mosGetParam( $_GET, 'tp', 0 ) );
    if ($tp) {
        echo '<div style="height:50px;background-color:#eee;
margin:2px;padding:10px;border:1px solid #f00;color:#700;">';
        echo $position;
        echo '</div>';
        return;
    }

Удаляем их, либо комментируем.

Для Joomla! 1.5.x
Открываем файл /libraries/joomla/application/module/helper.php
Ищем примерно 96-103 строки:

if(count($result) == 0) {
if(JRequest::getBool('tp')) {
$result[0] = JModuleHelper::getModule( 'mod_'.$position );
$result[0]->title = $position;
$result[0]->content = $position;
$result[0]->position = $position;
}
}

Комментируем их, добавляя в начало каждой строки //.
Далее ищем примерно 199-201 строки:

if(JRequest::getBool('tp')) {
$attribs['style'] .= ' outline';
}

Комментируем их, добавляя в начало каждой строки //.

За решение спасибо nikonor


7. Постраничная навигация.
Для изменения внешнего вида постраничной навигации необходимо немного переработать ее вывод. В этом поможет статья «Хак постраничной навигации сайта на CMS Joomla!»

8. Запрет просмотра содержимого папок вашего сайта.
Если набрать адрес существующей папки, например, http://example.org/components/com_content/ и вы видите ее содержимое, то это значит, что на Вашем сервере настроенная выдача список директорий.
Это дает возможность злоумышленнику дополнительные плюсы при изучении вашего сайта. Избежать открытого списка можно двумя способами:
1. В .htaccess или в конфигурации apache создать директиву:

Options -Indexes

2. В каждую директорию положить пустой файл index.html. По умолчанию загружается файл с названием index (.htm, .html, .php и т.д.).

Dutch

10.  Стандартная иконка Joomla!
В первую очередь иконка сайта favicon.ico ищется в корне сайта. Вы можете создать свою иконку (например с помощью сервиса http://favicon.ru) и загрузить ее в корень. Второй вариант — иконка помещается в папку вашего шаблона. Для большей уверенности можно также прописать в index.php шаблона в блоке <head>

<link rel="icon" href="http://ваш-сайт.ru/путь_к_иконке/favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="http://ваш-сайт.ru/путь_к_иконке/favicon.ico" type="image/x-icon">

11. Ошибка 404.
Для скрытия этого признака нужно создать собственную страницу 404 ошибки и оформить ее в стиле шаблона либо как захочется. Все варианты решения этого вопроса приводить не буду а просто дам ссылку на тему из FAQ на joomlaforum.ru — Cобственная страница ошибок 404 в Joomla! 1.5

Заключение
Существуем множество ресурсов, которые в полуавтоматическом режиме определяют CMS, на которой построен сайт.
Если с помощью сервиса www.builtwith.com ваш сайт не определился, как сайт на Joomla!, значит, как минимум, статью вы прочитали не зря 🙂
Пример удачного скрытия следов Joomla! — http://builtwith.com/sanyzel-citi.ru
Пример определения сайта на CMS Joomla! — http://builtwith.com/eldia.org.ua

Миграция с Joomla! 1.5 на Joomla! 1.6 — Часть 2 (SP Upgrade)

Пока писалась статья «Миграция с Joomla! 1.5 на Joomla! 1.6» появился еще один компонент для миграции сайта с Joomla! 1.5 на Joomla! 1.6. Это расширение SP Ugrade, от Panayiotis Halouvas. В процессе тестирования компонента обнаружились проблемы при миграции рускоязычных сайтов, которые, однако, были оперативно решены разработчиком.
Компонент SP Upgrade позволяет перенести с вашего старого сайта на Joomla! 1.5 следующее:

  • Пользователи (com_users)
  • Статьи (вместе с их разделами и категориями) (com_content)
  • Контакты (com_contact)
  • Ссылки (com_weblinks)
  • Ленты новостей (com_newsfeeds)
  • Баннеры (com_banners)
  • Изображения (папка /images)
  • Меню
  • Модули
  • Стандартные шаблоны

Требования к миграции:

  • PHP 5.x
  • Joomla 1.6

Поскольку в процессе переноса будет производится только чтение базы данных действующего сайта на Joomla! 1.5 и копирование папки с изображениями, то бекап делать не обязательно.

Обновлять переносимый сайт до последней актуальной версии (Joomla! 1.5.22) не обязательно, поскольку для миграции нам понадобится только база данных и папка с изображениями.

Установка и использование SP Upgrade

Итак, мы имеем сайт на Joomla! 1.5 и непреодолимое желание перенести его на новую платформу — на Joomla! 1.6. Скачиваем последнюю версию Joomla! 1.6 — на данный момент это Joomla! 1.6.0 Stable. Распаковываем архив на сервер и начинаем установку.

Обратите внимание, что устанавливать Joomla! 1.6 нужно на ту же площадку, где находится и сайт на Joomla! 1.5. — на тот же хостинг, или на локальный сервер (например Denver).

Установку Joomla! 1.6 проводим стандартным способом.

Обратите внимание, что при установке Joomla! 1.6 демо-данные устанавливать не нужно. Это очень важно.

После установки J! 1.6 заходим в административную часть сайта и устанавливаем компонент SP Upgrade (com_spugrade_v1.0.x).

Сразу после установки компонента SP Ugrade осуществится переадресация в его настройки:

Миграция сайта Joomla! 1.5 на Joomla! 1.6 с помощью SP Ugrade

 1 В блоке “Insert Information for v1.5 Database” вводим параметры подключения к базе данных сайта на Joomla! 1.5:

  • Host name – вводим адрес базы данных (обычно это localhost)
  • Username – вводим имя пользователя базы данных (для локального сервера Denver это root)
  • Password – пароль пользователя базы данных
  • Database Name – имя базы данных
  • Table Prefix – префикс таблиц базы данных сайта на Joomla! 1.5
  • Installation Path – вводим абсолютный путь к корню сайта на Joomla! 1.5 (это нужно для копирования папок шаблона и рисунков). В качестве примера указан абсолютный путь к новому сайту.

 2  В блоке “Choose What To Upgrade” выбираем компоненты, которые необходимо перенести:

  • Users – пользователи (com_users)
  • Sections, Categories and Articles – Разделы, Категории и материалы.

Обратите внимание, что в Joomla! 1.6 Разделов нету, поскольку появилась неограниченная вложенность категорий. Разделы старого сайта на J! 1.5 после миграции становятся родительскими категориями категорий J! 1.5

  • Contacts – контакты сайта (com_contact)
  • Weblinks – ссылки компонента Weblinks (com_weblinks)
  • News Feeds – новостные ленты (com_newsfeeds)
  • Banners – баннеры сайта (com_banners)
  • Images – папка с рисунками /images
  • Template – введите имя шаблона (папки с файлами шаблона)
  • Menus – меню сайта
  • Modules – модули сайта

 3 После выбора необходимых элементов для переноса нажимаем кнопку “Upgrade”

Результат миграции и возможные ошибки

После завершения процесса миграции появится лог с результатами переноса. Разберем подробно все составляющие миграции:

 1 Сперва происходит инициализация и обработка данных, которые мы в настройках на предыдущем шаге миграции.

 2 Далее осуществляется подключение к базе данных старого сайта и выборка нужных таблиц тех элементов сайта, которые мы решили перенести. Предположим что мы выбрали все возможные элементы для миграции сайта.

  • Users: суперадминистратор старого сайта (который создается по умолчанию с id 62) будет сохранен с приставкой v15 (adminv15), к его почтовому адресу также добавится приставка v15 (email@email.ruv15). В случае, если email и/или имя пользователей старого и нового сайта совпадет, то такие пользователи не мигрируют.
  • Sections, Categories Articles: как было сказано ранее — разделы старого сайта мигрируют как родительские категории прочих категорий. В случае, если некоторые материалы имеют одинаковый псевдоним, то мигрирует только один такой материал, остальные не перенесутся.
  • Contacts: при миграции переносятся как категории контактов, так и сами контакты сайта
  • Weblinks: тоже самое и с компонентом ссылок — мигрируют категории и их ссылки
  • em>Newsfeeds: мигрируют категории и сами новостные ленты
  • Banners: мигрируют категории баннеров, клиенты и непосредственно баннеры
  • Images: осуществится копирование папки /images старого сайта, папка /images свежеустановленной Joomla! 1.6 будет переименована в /images_bak
  • Template: после миграции шабон надо установить вручную:
    • Зайдите в менеджер расширений (Extension Manager);
    • В разделе «Установка из папки» (Install from Directory) введите путь к папке tmp вашего нового сайта: …/tmp/ja_purity (где ja_purity — это имя шаблона, который мы переносим (у вас он может быть другим)
    • Нажмите «Установить» (Install)
  • Menus: псевдомим пункта меню по умолчанию в установленной Joomla! 1.6 будет переименован с home в home_v16 и с этого пункта меню снимется значение “по умолчанию
  • Modules: перенос стандартных модулей сайта.

 3 Вывод результатов миграции и лога (журнала). Лог миграции достаточно подробный и простой для понимания.

Ошибки миграции

Наиболее распространенные ошибки миграции — это дублирование ID и псевдонимов (alias) элементов.

В Joomla! 1.6 введены более жесткие по сравнению с Joomla! 1.5 ограничания на псевдонимы — для общего родителя псевдонимы элементов (пункты меню, категории, материалы и пр.) должны быть различными. Проблема состоит в том, что многие не используют SEF и могут иметь много дублирующих псевдонимов элементов.

Поскольку при миграции сохраняются уникальные идентификаторы (id) элементов старого сайта на J! 1.5, то при миграции могут возникнуть проблемы, если в установленной J! 1.6 есть аналогичные идентификаторы. Как правило это происходит в тех случаях, если вы установили J! 1.6 с демо-данными. Решением этой проблемы является только переустановка движка без демо-данных.

Если вы решили оставить шаблон сайта на J! 1.5 то вам нужно будет установить его вручную — так, как это описано чуть выше.

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

После миграции сайта необходимо выполнить следующие шаги:

  • Глобальная разблокировка — выполните разблокировку всех объектов — Site->Maintenance->Global Check-in
  • Пункт меню по умолчанию — установить нужный пункт меню пунктом меню по умолчанию
  • Устаревший кеш — удалите устаревший кеш сайта — Site->Maintenance->Purge Expired Cache
  • Проверьте весь свой контент
  • Переопределите, если нужно, позиции для модулей.
  • Удалите дублирующие модули (например после миграции у вас будут два модуля авторизации — родной и мигрировавший)
  • Проверьте весь функционал своего сайта — это самый важный шаг, перед тем как окончательно заменить свой старый сайт на новый.

Преимущества мигратора  SP Upgrade

  • Простота процедуры переноса — никаких технических знаний не требуется.
  • Автоматизация — процесс миграции полностью автоматизирован.
  • Совместимость — все элементы, которые будут перенесены со старого сайта будут рабочими и смогут полностью использовать функционал новой платформы CMS Joomla! 1.6
  • Кодировка — поддержка кодировки utf-8 на сайтах с любыми языками.
  • Сохранение идентификаторов (id) — по возможности сохраняются все идентификаторы элементов (пунктов меню, категорий, материалов), которые были на старом сайте.
  • Поддержка — бесплатная поддержка и выпуск обновлений.

Полезные ссылки

Сайт разработчика: http://cyend.com/extensions/extensions/components/5-upgrade-joomla-from-15-to-16
Расширение на JED: http://extensions.joomla.org/extensions/migration-a-conversion/joomla-migration/15609
Joomla! 1.6.0 Stable: http://joomlacode.org/gf/project/joomla/frs/?action=FrsReleaseBrowse&frs_package_id=5696 P.S.: Вышла новая версия компонента SP Uprade, которая устраняет некоторые недостатки прежней версии. А именно:

  • В случае, если идентификаторы (id) элементов сайта на Joomla! 1.5 и Joomla! 1.6 совпадают, эти элементы все равно мигрируют, но уже с другими идентификаторами. Тоесть теперь не критично — с демо-данными установлен сайт на Joomla! 1.6 или без них
  • Мониторинг экрана — обновление происходит в реальном времени (подходит для очень больших сайтов)
  • Можно осуществить перенос сайта с Joomla! 1.5 на Joomla! 1.6 даже если оба сайта находятся на разных серверах (в этом случае просто не скопируются изображения и файлы шаблона, что придется сделать вручную)
  • Процесс миграции происходит гораздо быстрее, чем это было в предыдущей версии (что актуально для очень больших сайтов)

Миграция сайта с Joomla! 1.5.x на Joomla! 2.5 с помощью RedMIGRATOR или JUpgrade Pro


Как перенести сайт с Joomla! 1.5 на Joomla! 2.5

Сейчас, на волне активной популяризации новой линейки Joomla! 2.5, в сети достаточно информации о миграции (обновлении) сайта с Joomla! 1.5 на Joomla! 2.5. Также достаточно и инструментов для обновления, которые, в большинстве своем, к сожалению, коммерческие. В этой статье я постараюсь обобщить всю информацию и выделить ключевые моменты миграции с помощью простейшего и одного из самых популярных бесплатных компонентов обновления JUpgrade Pro или redMIGRATOR.

Оба компонента обновления – и JUprgade Pro и redMIGRATOR суть одно и то же — созданы и поддерживаются одним разработчиком — датской командой redcomponent.com. Хотя изначально JUpgrade разрабатывался аргентинской компанией matware, сейчас на сайте matware.com.ar доступна для загрузки версия JUprgade Pro 3.1.2. Компонент jUpgrade 2.5.2 не затрагиваем в этой теме – там совершенно иная логика миграции, подробнее о нем – в статье Миграция с Joomla! 1.5 на Joomla! 1.6. С 1 октября 2013 года компонент JUprgade Pro переработали, перенесли на собственное ядро redCore и переименовали в компонент redMIGRATOR. Принцип работы этих компонентов идентичен, поэтому в этой статье будем рассматривать миграцию с помощью компонента redMIGRATOR, в то же время как действия по переносу сайта на Joomla! 2.5 будут актуальными и для компонента JUprgade Pro.

Компонент миграции redMigrator (JUprgade Pro) поддерживает два метода миграции сайта:

  • База данных: наиболее оптимальная и быстрая миграция сайта. Для использования этого метода необходимо иметь доступ к базе данных MySQL – имя базы данных сайта, префикс таблиц базы, пользователь базы и пароль;
  • RESTful: данный метод не требует доступа к базе данных сайта, однако миграция происходит гораздо медленнее. С помощью данного способа можно переносить данные с одного сервера на другой.

Минимальные требования для миграции

Для JUpgradePRO 3.1.2

  • PHP 5.2.4 или выше;
  • MySQL 5.0.4 (для Linux/Apache) или выше, MySQL 5.1 (для IIS/Windows);
  • Joomla! 2.5, Joomla! 3.0, Joomla! 3.1;
  • Браузер с поддержкой Javascript/jQuery.

Для redMIGRATOR 1.0.0

  • PHP 5.3.x или выше.

Переносим сайт с Joomla! 1.5 на Joomla! 2.5

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

1 Выполняем резервное архивирование сайта и базы данных. Для этого можно воспользоваться одним из множества способов создания бекапов – автоматическим архивированием, или ручным копированием сайта и базы данных. Подробнее об резервном архивировании в статье Резервное копирование сайта.

2 Все действия выполняем локально (по возможности), на локальном веб-сервере, во избежание непредвиденных ситуаций. Если локального сервера нет – вам поможет статья Локальный веб-сервер для сайта. Если веб-сервер у вас установлен, или же вы, по каким-то причинам, решили осуществлять миграцию на «живом» сайте, пропускайте этот пункт.

3 Устанавливаем на локальный сервер (или в поддомен на хостинге) свежий дистрибутив Joomla! 2.5 – например Joomla! 2.5.16. Демо-данные не устанавливаем (важно!). Также разворачиваем локально полную копию старого, работающего сайта. С него и будем мигрировать

4 Выполняем подготовку работающего сайта на Joomla! 1.5:

  • Проверяем работоспособность бекапа, выполненного по п.1 (можно пропустить, авось прокатит и так 🙂 );
  • Отключаем или удаляем устаревшие и неиспользуемые сторонние расширения (миграция сторонних расширений выходит за рамки этого материала – следите за обновлениями блога, позже будут материалы по миграции JDownloads, Phoca Gallery, Phoca Downloads, VirtueMart и др.). Заходим в Расширения -> Установка и удаление, во вкладках Компоненты, Модули и Плагины отключаем или удаляем сторонние расширения.
  • Очищаем на работающем сайте:
    • Кеш (действующий и устаревший)
    • Корзину (материалов и меню)
  • Выполняем разблокировку объектов  

5 Устанавливаем через стандартную установку расширений компонент JUprgade Pro или redMIGRATOR на чистый сайт на Joomla! 2.5. Плагин RESTful (plg_jupgradepro-restful-3.1.2-j1.5 или plg_redMIGRATOR_1.0.0_j15) устанавливаем на сайт, который работает на Joomla! 1.5.

6 Включаем и настраиваем системный плагин redMIGRATOR — System plugin (или System — jUpgrade)– указываем ключ в поле Key of the client side – этот же ключ нужно будет указать при миграции в настройках компонента redMIGRATOR.

7 Настраиваем компонент миграции redMigration на Joomla! 2.5. Описанные настройки полностью подходят и к jUpgradePro.

  • В общих настройках (Global) выбираете способ миграции – RESTful или Database (в чем разница – расписано выше).
  • В зависимости от выбранного способа заполняете поля в соответствующей вкладке – RESTful или Database. Hostname – указываете адрес старого сайта, Username и Password – данные суперадминистратора, и Security Key – секретный ключ, который вы прописали в плагине redMIGRATOR — System plugin (или System — jUpgrade). Если выбрали метод базы данных – в следующей вкладке указываете параметры подключения к БД.
  • Во вкладке Skips – можете отключить лишние элементы для миграции, например те стандартные компоненты, которые не использовались на сайте – дабы снизить нагрузку на сервер при миграции.
  • Миграция шаблона, конечно же не поддерживается. Во вкладке Templates можно включить/отключить перенос позиций для модулей. Подробнее о миграции шаблона смотрите в статье Адаптация шаблона для Joomla! 1.5 под Joomla! 2.5.
  • Вкладку Permission можно пропустить, там выставляются доступы пользователей.
  • Во вкладке Debug по умолчанию отключен вывод отладочных сообщений. Если во время переноса что то пойдет не так, нужно включить вывод дополнительной информации и отладки и отследить причину неудачной миграции.

8 Нажимаем кнопку START UPGRADE и наблюдаем за процессом переноса.

9 После сообщения об успешной миграции (Migration Successful!) проверьте все данные, которые должны были перенестись. Если все в порядке – скопируйте вручную все изображения (содержимое папки images и другие папки с изображениями и другим медиа-контентом (флеш, видео, аудио, архивы) в папках в корне сайта, например).

10 Все, мы перенесли основной контент со старого сайта на новый — Joomla! 2.5. Теперь осталось внести изменения в конфигурацию сайта – если на сайте использовался SEF, включаем его, прописываем название сайта, описание, ключевые слова и т.д. из конфигурации старого сайта.

Замечания к миграции

Справедливости ради надо сказать что миграция с помощью метода RESTful на данный момент сыровата, поэтому рекомендую использовать миграцию с помощью Database.

Если все сделаете правильно – ошибок во время миграции быть не должно. Если все же какие-то ошибки появились – внимательно прочтите п.3-7 данной инструкции, скорее всего вы что то упустили из виду. Если не идет миграция каким-то одиним способом – попробуйте мигрировать другим методом.

После миграции могут измениться идентификаторы ID модулей.

Также проверьте пункт меню, который был назначен по умолчанию. Скорее всего после миграции главным будет пункт с алиасом home, которого небыло на старом сайте (поскольку даже без демо данных данный пункт уже существует после установки чистой Joomla! 2.5.

Если у вас на старом сайте существовали копии пунктов меню (одинаковые пункты меню с идентичными алиасами) в разных меню, то после миграции к алиасам таких пунктов будет добавлен суффикс, поскольку в Joomla! 2.5 не может существовать два пункта с одинаковым алиасом (даже в разных меню).

Важно! Если вы мигрируете на сайт, который находится на другом сервере, с помощью метода RESTful, то вы должны убедится что MySQL открыт для удаленного доступа.

Резервное копирование сайта

Резервное архивирование (копирование) сайта является очень важным этапом в поддержке работоспособности сайта. Представим ситуацию — случилось непоправимое: на сайт проник вирус и безнадежно заразил его. Сайт надежно защищен? Вирус может проникнуть через другие сайты на аккаунте хостинга, если вы используете виртуальный хостинг. Бекапа нет? Вам предстоит громадная работа по восстановлению прежнего вида и работоспособности сайта. Произошел сбой на хостинге, сайт утерян. Нет бекапа? Восстановить сайт невозможно, придется создавать все с начала. Вы, по неопытности, внесли правки в ядро сайта, и добились критической ошибки? Если нет бекапа — с большой долей вероятности вам предстоит бессонная ночь, а то и не одна, в поисках собственной ошибки. Таких ситуаций много, все не перечислишь.

Избежать всех вышеуказанных проблем очень просто. Достаточно выполнять резервное копирование сайта. Чем чаще вы это будете делать — тем выше вероятность того, что при форс-мажорной ситуации информация на сайте не будет утеряна.Резервное копирование (англ. backup) — процесс создания копии данных на носителе (жёстком диске, дискете и т. д.), предназначенном для восстановления данных в оригинальном или новом месте их расположения в случае их повреждения или разрушения. Википедия

Существует два типа резервирования сайта:

  1. ручное копирование;
  2. автоматическое копирование.

Ручное архивирование

Ручное архивирование предполагает некоторые действия, которые вам нужно произвести вручную, для создания копии вашего сайта.

Для копирования сайта необходимо скопировать все файлы и папки, которые находятся в корне сайта. Если ваш сайт построен на CMS, то, наверняка, он использует Базы данных (CMS без использования Баз данных мы во внимание не принимаем в силу малого количества таких CMS). В этом случае архивирование файлов и папок недостаточно — необходимо выполнить и копирование Базы данных сайта.

Скопировать файлы и папки сайта можно несколькими способами:
1. Подключиться к серверу по протоколу FTP с помощью любого FTP-менеджера (например FileZilla, встроенный FTP-менеджер в Total Commander, CuteFTP и другие).

2. С помощью панели управления хостинга, где имеется свой менеджер файлов (в большинстве популярных панелей — ISP Manager, cPanel, vDeck, Plesk и многие другие).

3. По протоколу ssh — в случае если хостинг предоставляет вам доступ к серверу по ssh-протоколу.

Расписывать и описывать работу каждой FTP-программы и особенности каждой панели управления хостингом не имеет смысла, поскольку Вы без проблем найдете любую информацию о них в сети. Здесь я задам нужное направление в решении вопроса копирования Вашего сайта.

Копирование Базы данных выполняется через веб-интерфейс MySQL. Наиболее популярный из подобных приложений — phpMyAdmin. Также существуют удобные альтернативы — Chive или Adminer . Существуют и win-приложения для удаленной работы с базами данных — например dbForge Studio for MySQL.

Автоматическое архивирование сайта на CMS Joomla!

Автоматическое архивирование подразумевае первичную настройку скриптов резерирования с последующим автоматическим созданием копий сайта. Ниже перечислены наиболее популярные расширения для создания резервных копий сайта и БД.

Akeeba Backup

Akeeba Backup являет собой, пожалуй, наиболее популярный и мощный компонент для резервного архивирования сайтов на CMS Joomla! Существует два вида компонента — бесплатный и коммерческий. Функционала бесплатного расширения Akeeba вполне достаточно для удобного и быстрого архивирования сайта. Устанавливается расширение с помощью стандартного установщика Joomla! Бекап сайта Akeeba содержит в себе файлы и папки сайта, копию базы данных и скрипт для быстрого восстановления сайта. Бекап создается в zip-формате, или в собственном формате Akeebajpa. Компонент Akeeba Backup удобно использовать также для переноса сайта на другой сервер в случае, например, переезда на другой хостинг. Есть возможность создавать точки восстановления и выполнять архивирование на облачные сервисы. Присутвует русская локализация компонента.
Компонент Akeeba Backup совместим с Joomla! 1.5, Joomla! 2.5 и Joomla! 3.x
Официальный сайт — www.akeebabackup.com

XCloner

Компонент XCloner является универсальным скриптом для создания резервных копий любых сайтов на PHP/MySQL. Имеет функцию автоматического копирования посредством cron‘а. Позволяет делать архивирование больших Баз данных. Имеет собственный скрипт для восстановления бекапов. Умеет выполнять копирование на облачные сервисы. Имеется русификация компонента.
XCloner совместим с Joomla! 1.5, Joomla! 2.5 и Joomla! 3.x
Официальный сайт — www.xcloner.com

LazyDbBackup

LazyDbBackup — простой но достаточно популярный и полезный плагин для резервного копирования Базы данных сайта. Плагин является усовершенствованой модификации популярного плагина LazyBackup. К сожалению не имеет русского языка. Есть возможность загружать бекапы Базы данных в отдельную папку на сайте, либо отправлять копию Базы данных на email. Распространяется свободно.
LazyDbBackup совместим с Joomla! 1.5 и Joomla! 2.5
Официальный сайт — www.joomxtensions.com/en/how-to-use-lazydbbackup.html

DataSafe Pro

DataSafe Pro — расширение для Joomla которое позволяет делать бекапы Базы данных. Очень удобно делать резервное копирование БД прежде чем вносить какие либо изменения на сайт. Также расширение позволяет делать копию базы данных по расписанию и отправлять дамп на email. Русского языка в стандартном пакете нет. Распространяется свободно.
DataSafe Pro совместим с Joomla! 1.5, Joomla! 2.5 и Joomla! 3.xl
Официальный сайт — www.php-web-design.com/Joomla-Components/datasafe-pro.html

SYPEXDumper

SYPEXDumper существует как в виде отдельного скрипта для бекапов баз данных, так и компонента под Joomla. Отличается высокой скоростью работы с базами данных и возможностью бекапить большие базы. Также есть возможность выполнять различные операции с таблицами базы. Скрипт разработан украинской компанией, поэтому с русификацией проблем нет. Есть как бесплатная так и платная версия.
SYPEXDumper совместим с Joomla! 2.5 и Joomla! 3.x а также с любыми сайтами в виде php-скрипта.
Официальный сайт скрипта — sypex.net
Официальный сайт компонента — joomalungma.com/ru/com/sypexdumper

Easy Joomla Backup

Easy Joomla Backup — расширение для создания бекапов базы данных и файлов сайта от немецких разработчиков расширений. Имеет вполне достаточный функционал для резервирования баз данных и файлов сайта. Русификатора не имеет. Распространяется свободно.
Easy Joomla Backup совместим с Joomla! 2.5 и Joomla! 3.x.
Официальный сайт — joomla-extensions.kubik-rubik.de/ejb-easy-joomla-backup

jBackup

jBackup — плагин для создания бекапов базы данных от японского разработчика. Имеет вполне достаточный функционал для резервирования баз данных сайта. Русификатора не имеет. Распространяется свободно.
jBackup совместим с Joomla! 1.5
Официальный сайт — www.joomler.net/extensions/71-jbackupdaily-db-backup.html

Выделю несколько тезисов:

Чем чаще вы обновляете свой сайт (добавляете контент, функционал, производите другие изменения) тем чаще необходимо делать резервирование сайта.

Периодически проверяйте работоспособность сделанных бекапов. Бывают ситуации, когда резервирование делается регулярно, но, когда приходит время восстановить сайт из копии, оказывается что копия неработоспособная.