Главная arrow Программирование arrow HTML arrow Как я переносил сайт с html на Joomla Friday, June 23 2017  
ГлавнаяКонтактыАдминистрированиеПрограммированиеСсылки
UK-flag-ico.png English Version
GERMAN-flag-ico.png Die deutsche Version
map.gif карта сайта
нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Поделиться:

Как я переносил сайт с html на Joomla Версия для печати
Написал microsin   
22.12.2007
Предварительно сайт на Joomla был подготовлен и тщательно протестирован на системе Denwer, туда перенесены руками все статьи старого html-сайта. Далее необходимо установить на сервер хостера новый протестированный сайт на Joomla, и так, чтобы в случае неудачи можно было быстро и безболезненно вернуть старую html-версию обратно. Рассмотрим процесс по шагам.

1. Сливаем все содержимое корня приватного ftp и архивируем. Для этого удобно использовать ftp-клиент Total Commander.

2. Подготавливаем 2 скрипта, один из которых перемещает старые файлы и папки в новое место, а другой - восстанавливает их первоначальное положение (чтобы потом при желании можно все было вернуть назад). Для этого я сделал следующее:
- подключился по ftp Total Commanderom, в корневой папке моей домашней директории создал папку scripts (она не видна пользователям, заходящим на сайт). В корневой папке, кроме только что созданной папки scripts, находится также и папка public_html, в которой на Agava полагается хранить файлы сайта. Другими словами, папка public_html является корневой для сайта (там находится стартовый файл index.html и все файлы и папки сайта).
- подготовил поле для тестов - создал папку sour1 в папке public_html (тем же Total Commander-ом). В эту папку sour положил несколько файлов и создал несколько вложенных папок с файлами - это содержимое должно корректно переноситься в новое место и возвращаться обратно при работе скриптов. Создал также в корневом каталоге, где и папка sour, папку для месторасположения старых данных удаляемого сайта - oldsite. Записал в папку public_html тестовый файл dummy1.txt (он тоже должен переноситься скриптом). Итого, у меня получилась такая структура корневого каталога (некоторый вывод команды ls я опустил):
$ ls -Fa
log/
 ..
public_ftp/     тут находится корень анонимного ftp
public_html/    тут находится корень публикуемого сайта (там я создал oldsite)
scriptsfold/        место для скриптов переноса данных сайта
tmp/
 ..
dummy.txt
 ..
- создал два файла для скриптов remove_old_site.sh и restore_old_site.sh.
- в их записал тест, проверяющий перемещение нужных мне данных:
[Содержимое remove_old_site.sh]
#!/bin/sh
SOUR=public_html
DEST=public_html/oldsite/
mv -v $SOUR/sour1/ $DEST
cp $SOUR/dummy1.txt $DEST
rm $SOUR/dummy1.txt
[Содержимое restore_old_site.sh]
#!/bin/sh
SOUR=public_html/oldsite
DEST=public_html/
mv -v $SOUR/sour1/ $DEST
cp $SOUR/dummy1.txt $DEST
rm $SOUR/dummy1.txt
- перекопировал по ftp в папку scriptsfold два мои будущие скрипта remove_old_site.sh и restore_old_site.sh.
- тем же Total Commander-ом добавил владельцу право на выполнение этих файлов (меню Файл\Изменить атрибуты...). Теперь мои файлы стали взаправдашными скриптами.
- протестировал работу скриптов. Для этого зашел на BSD-шелл моего хостера по ssh и выполнил команды:
$ scriptsfold/remove_old_site.sh
$ scriptsfold/restore_old_site.sh
  Как и следовало ожидать, тестируемая папка sour и файл dummy.txt при запуске remove_old_site.sh перекачивались в папку oldsite (папка sour вместе со своим содержимым), а при запуске restore_old_site.sh перекачивались назад в папку public_html.

3. Теперь сделаем более удобный перенос сайта - нужно, чтобы копировались те файлы папки, которые есть в изначально подготовленных списках. В итоге это у меня вылилось в 5 файлов, которые я положил в папку scriptsfold:
file_list.txt         список файлов для переноса из корневого каталога сайта
folder_list.txt       список папок  для переноса из корневого каталога сайта
movesite.sh           скрипт, который переносит файлы и папки по спискам в заданном направлении
remove_old_site.sh    запускает movesite.sh для удаления       старого сайта
restore_old_site.sh   запускает movesite.sh для восстановления старого сайта
    Требования к файлам - они должны иметь unix-like строки (в конце строк должен быть только байт перевода строки символ LF == 0xA), и последняя строка в списках file_list.txt и folder_list.txt должна обязательно кончаться на перевод строки.

4. Удаляем старый сайт скриптом remove_old_site.sh, и переписываем туда инсталляцию с Denwer.

5. Импортируем базу данных MySQL (в командной строке FreeBSD хостера):
$ mysql --user=hostinguserlogin --password=hostinguserpass -hlocalhost --execute="CREATE DATABASE jdatabase DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci"
   Или через панель управления Agava по ссылке https://panel33.agava.net/ добавляем новую базу данных, например jdatabase (окошко "База данных:", кнопка "Добавить БД"). Если указать имя jdatabase, то добавится база данных с именем hostinguserlogin_jdatabase (автоматически добавляется префикс их имени логина пользователя хостинга).

6. Создаем пользователя mysqluser и указываем ему пароль, например bla-bla-bla-mysqlpass.

7. Привязывем пользователя hostinguserlogin_mysqluser к базе данных hostinguserlogin_jdatabase (кнопка "Дoбaвить пoльзoвaтeля в БД").

8. Импортируем базу данных. Для этого копируем дамп базы данных dump.txt в каталог scriptsfold, и выполняем команду:
$ mysql --user=hostinguserlogin_mysqluser --password=bla-bla-bla-mysqlpass -hlocalhost --default-character-set=cp1251 --character-sets-dir=/usr/local/share/mysql/charsets hostinguserlogin_jdatabase < scriptsfold/dump.txt
   Немного пояснений. Опция --character-sets-dir требует найти каталог с чарсетами. Этот каталог находим командой
$ locate charsets
   и найденный путь, где есть кодировка cp1251.xml (/usr/local/share/mysql/charsets), подставляем в командную строку. Остальное по опциям все очевидно.

9. Правим конфиг Joomla (public_html/configuration.php):
$mosConfig_absolute_path = '/home/hostinguserlogin/public_html';
$mosConfig_cachepath = '/home/hostinguserlogin/public_html/cache';
$mosConfig_db = 'hostinguserlogin_jdatabase';
$mosConfig_live_site = 'http://yourdomain.ru';
$mosConfig_password = 'bla-bla-bla-mysqlpass';
$mosConfig_user = 'hostinguserlogin_mysqluser';

10. Меняем пароль админа:
admin
admin_joomla_pass

11. Меняем пароль пользователя:
user1
user1password

12. Защищаемся от уязвимостей:
Меняем в файле globals.php
define( 'RG_EMULATION', 1 );
    на
define( 'RG_EMULATION', 0 );
В файл .htaccess в начало добавляем строчку:
php_value register_globals 0
В папку administrator записываем файл .htaccess нулевой длины, убеждаемся, что на него нет прав на запись у пользователей группы и других пользователей. Идеальный вариант - режим только для чтения для всех, в том числе и для владельца.

13. Делаем автопереадресацию со старых страниц сайта (когда он был на html) на новое содержимое сайта. Как это делать, описано здесь.

Последнее обновление ( 06.03.2008 )
 

Добавить комментарий

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:

Защитный код
Обновить

< Пред.   След. >

Top of Page
 
microsin © 2017