Перенесення Wordpress блогу на інший хостинг
Рано чи пізно, але напевно, перед багатьма з вас постане задача перенести свій Wordpress блог на новий хостинг. Причин цьому може бути декілька - вам не подобається ваш теперішній хостер, місця стало замало, ви знайшли кращі тарифи, переїжджаєте з безкоштовного на платний.
Якою б не була причина вашого переїзду, знайте, що цей процес є не надто приємним, а в окремих випадках - жахливим. Саме такий окремий випадок трапився минулих вихідних на Блогорідері, коли цей сайт покидав лави TOPUA, безкоштовного хостингу, на якому він тримався цілий рік. Саме тому, як ви вже можливо помітили, публікацій на минулому тижні практично не було, а в неділю сайт нагадував першоквітневий жарт (хто цього жаху не бачив, тому пощастило). Однак часи міняються, і треба рухатися далі. А щоб у вас не трапилося таких помилок чи збоїв під час переходу на інший хостинг, як у мене, варто дотриматися кількох порад.
Отже, що потрібно зробити, щоб без проблем Wordpress блог фізично перемістити на інший сервер?
Частина 1. Все як по маслу.
1. Змінити DNS-записи вашого домену. DNS-записи - це рядок, що вказує, де сайт знаходиться фізично, тобто на якому сервері міститься папка public_html з усім вмістом. зазвичай ці записи мають вигляд ns1.server.com, ns2.server.com, один основний та один запасний. Ці дані має надати ваш хостинг-провайдер, до якого ви хочете перейти. Записи DNS змінюються за допомогою компанії, де ви реєстрували свій домен. Примітка: якщо ваш домен було зареєстровано за допомогою пошти (автовідповідач зони org.ua), то необхідно надіслати на адресу auto-query@org.ua листа без зайвих форматувань, у темі вказати MODIFY адреса_сайту.org.ua, а в тілі повідомлення - дані для домену. всі дані залишайте незмінними, окрім рядків для DNS - відповідно, замініть їх на нові, на ті, до яких хочете перейти. Детальніше про реєстрацію доменів поштою читайте на блозі Ласета.
Цей пункт (1) можна зробити і після переносу сайту. Однак якщо ви хочете побачити зміни вживу, то краще спочатку змініть записи DNS. Особисто я робив так.
2. Перенести папку з сайтом та базу даних блогу. А ось тут у вас вже є різні варіанти, як діяти.
а) перенести все вручну. Архівуєте всі дані сайту (папку public_html), скачуєте архів собі на ПК, і знову завантажуєте в інтернет, але вже на сервер нового хостингу. Переносите базу даних блогу : заходите на старому хостингу в панель керування базами даних phpMyAdmin, обираєте базу даних вашого блогу, натискаєте експорт, скачуєте собі на ПК дамп бази даних (тобто те все, що ви експортували буде в одному файлі. Це і є ваш блог з усіма постами, коментарями та інтерфейсом). На новому хостингу створюєте пусту базу даних. Заходите в аналогічну панель php MyAdmin на новому хостингу та через опцію Import імпортуєте той дамп, який ви щойно експортували зі старого хостингу. Імпорт робите, звісно, в упсту базу даних. Після цього залишається лише Змінити файл wp-config.php - там ви прописуєте ім"я та пароль до нової бази даних, яку перед цим створили, та в яку імпортували дамп. Цей спосіб є дуже незручним, особливо коли сайт дуже великий, а швидкість інтернету у вас маленька. А ще можуть виникнути різноманітні проблеми з кодуванням, про які йтиметься нижче.
б) попросити зробити все вашого хостинг-провайдера. Якщо ви залізли у шалені дебрі, нічого не виходить, або ж ви взагалі нічого не зрозуміли з вищесказаного, то можна попросити зробити перенесення блогу у вашого хостера. Зазвичай хостери добрі і роблять це. Вам треба буде надати йому логін і пароль до старого аккаунту.
в) перенести блог за допомогою протоколу SSH (Secure Shell). Цей протокол допомогає переносити бази даних з одного хостингу на інший напряму, без ваших посередніх дій. Він є дуже легким у роботі, однак перед цим його треба налаштувати (що в мене не вийшло). Детальніше про SSH читайте у Dimox’a. Для таких операцій вам знадобиться програма WinSCP.
Частина 2. Віднесені блогом.
Теоретично, після проведених дій, ваш сайт має щасливо переїхати. Однак так буває не завжди (практично - рідко). Найчастішими проблемами є ті, що пов"язані з кодуванням.
- все пройшло нормально, але замість тексту - знаки питання. Поламалось кодування. перевірте в phpMyAdmin, в якому кодуванні були ваша база даних на старому хостингу, і якою вона є на новому. Все має бути в utf-8.
- Warning: Cannot modify header information - headers already sent by (output started at… Якийсь із файлів збережено у невірному кодуванні або у utf-8 з підписом BOM. Щоб це виправити, відкрийте файл за допомогою програми Notepad++ (або будь-якої іншої, що підтримує зберігання в різних кодуваннях) та збережіть його як UTF-8 without BOM. Те саме стосується файлу wp-config.php.
- warning-помилки + ієрогліфи на сайті. Не хочеться вас розчаровувати, але це може бути одним з найважчих випадків. Наприклад, як цей, що був 8 червня. Про цю помилку ми поговоримо детальніше.
Якщо замість тексту на вашому блозі одні ієрогліфи та кракозябри незрозумілого змісту, то проблема з кодуванням є пріоритетною. Вона полягає у тому, що деякі хостинг-сервери автоматично налаштовані на кодування Latin1, зокрема, таким виявився і TOPUA. Вся база даних, всі таблиці, що становили собою блог, були у кодуванні latin1, хоча сам сайт відображався кирилицею. Ця проблема виявилася при переносі на інший хостинг. Найважче в цьому те, що безпосередньо перекодувати будь-який файл, навіть ту ж саму базу даних з latin1 в життєво важливий utf-8 практично неможливо (практично тому, що я не знайшов такого способу). Якщо в phphMyAdmin просто змінити кодування таблиць, то кракозябри залишаться, не допоможе тут навіть програма Notepad++ та їй подібні, що зберігають UTF-8 without BOM signature.
Одним з варіантів вирішення проблеми є такий: всі таблиці з latin1 вам потрібно вручну перевести у режим BLOB (режим, що не має ніякого кодування), а потім у utf-8. Цей метод був використаний у статті Конвертация WordPress Баз Из Latin1 В UTF-8 , і саме він наштовхнув мене на вирішення цієї задачі, яка "знеструмила" Блогорідер на дві доби. Спосіб, описаний у цій статті може виявитися для вас корисним, але для мене все вийшло трохи інакше. Я ж просто:
- створив за допомогою cPanel Fantastico новий Wordpress-блог на новому хостингу
- імпортував по черзі окремі таблиці (wp_options, wp_comments, wp_posts, ….) зі старої бази даних, попередньо перекодувавши їх в utf-8 without BOM
- створив файл .htaccess, щоб всі посилання на новому хостингу запрацювали
… і після цього все запрацювало, як треба. Ось така ця марудна робота, але погодьтесь, що найкраще, це коли немає жодних помилок. Ну а насамкінець деякі примітки:
- DNS-записи змінюються не моментально. У різних провайдерів це триває від години до 48 годин. Щоб зміни з"явились для вашого ПК одразу, пропишіть у файлі C:/Windows/system32/drivers/etc/hosts IP-адресу вашого сайту.
- Перед тим як переносити сайт, не забудьте припаркувати свій домен для нового хостингу.
- Зробіть перед переїздом бекапи (резервні копії) всіх файлів, які лиш є. Можливо, саме за їх допомогою ви врішите свої проблеми.
- Якщо не впевпені в своїх силах або нічого не зрозуміли - краще не беріться за це, доручіть своєму хостеру, щоб не наробити дурниць.

Меню phpMyAdmin

Експорт бази даних

Експорт бази даних

Імпорт бази даних

Правка таблиці з невірним кодуванням з latin1 > BLOB > utf-8
Обираємо BLOB та зберігаємо. Правка застосовується лише для таблиць, де є кириличний текст. Після цього аналогічно обираємо text, Collation - utf8 general, та зберігаємо.
Корисні посилання, які вам дуже пригодяться при будь-яких проблемах:
- Перенос Wordpress на новый сервер
- Перенос на другой хостинг
- Перенос WordPress-сайта на другой хостинг
- Backing Up Your Database
- Converting Database Character Sets
- Backup and restore Wordpress database
- TIP Convert latin1 to UTF-8 in MySQL
- Обновление сервера MySQL на версию 4.1, проблема кодировок
Окрема подяка Роланду , а також всім іншим, хто намагався допомогти (jarofed, MrGall).
hellveen, спеціально для Блогорідера.
Popularity: 22%











Червень 18 2008 @ 9:27 Vote:
0
0
Вітаю з успішним переїздом.
Думаю, ця стаття буде дуже корисною для кожного, хто надумає переїжджати на власний хостинг.
Червень 18 2008 @ 10:19 Vote:
0
0
Ше можна було розказати не про маянння з базами даних, а про імпорт-експорт xml-файла. Це для тих випадків, якщо в блозі не використовувалося якихось особливих налаштувань і плагінів, які містят свої налаштування в БД і які відновити заново неможливо.
А ще дуже весело, коли блог переноситься на новий домен. Тоді, завдяки збереженим налаштуванням, що вказують на домен попереднього сайту в адмінці, ви не зможете зайти в адмінку свого блогу на новому домені. Тоді вихід - змінювати налаштування бази хірургічним методом. Але є ще один тупий. зате простий і дієвий метод. Перед переносом (експортом бази) заходимо в налаштування поки що старого блогу і вносимо на сторінці, де прописані адреси блогу, зміни на новий домен, після чого вас вибє з адмінки. Але тепер робимо бекап бази, заливаємо в базу на новому домені і все працює!!!
Червень 18 2008 @ 10:20 Vote:
0
0
Справді, дякую за доповнення.
Червень 18 2008 @ 10:52 Vote:
0
0
До речі, сайт почав вантажитися помітно швидше!
Червень 18 2008 @ 13:48 Vote:
0
0
jafored
В кінці виправ
А так дуже пізнавальна стаття. Задоволений новим хостингом?
Червень 18 2008 @ 13:49 Vote:
0
0
Ну звісно) поки політ нормальний.
Червень 18 2008 @ 14:22 Vote:
0
0
Ось до чого призводить віндоуз
Ставите MacOS X, FreeBSD або хоча б cygwin, і жодних проблем! ssh – ssh; для перекодування неправильного latin1 у правильний utf-8 – iconv.
Червень 18 2008 @ 21:02 Vote:
0
0
Всегда пожалуйста
Червень 19 2008 @ 11:45 Vote:
0
0
Дякую за доповнення.
Червень 19 2008 @ 13:02 Vote:
0
0
На blog.net.ua >20000 таблиць, спробуйте перекодувати
Червень 19 2008 @ 13:04 Vote:
0
0
Ну це взагалі кошмар.
треба на дефолт класти утф-8, так спокійніше буде.
Червень 30 2008 @ 21:31 Vote:
0
0
Відверто кажучи, надзвичайно корисний пост. Додав у закладинки.
Липень 19 2008 @ 14:17 Vote:
0
0
А мне сегодняшней ночью даже твой вариант не помог, уже начало надоедать - и тут чудо, идеально помог лекактусовский вариант. Как-то по-глупому просто вышло даже
Серпень 20 2008 @ 11:01 Vote:
0
0
Розкажи як ти змінював днси за допомогою емейлу, а то я вже два місяці мучаюсь з цим, не можу перенести і на мої листи в техсуппорт ніхто не відпопідає.
на всі мої спроби я отримую таку відповідь:
status: REJECTED
reason: Ця реєстрація заблокована
Серпень 20 2008 @ 11:06 Vote:
0
0
А решта все робити треба так, як описано в пункті 1 цієї статті.
в темі - MODIFY адреса_сайту.org.ua, а в тілі мейлу - дані про твій домен (зазвичай не змінні, змінюють лише адреси днс-серверів).
Серпень 20 2008 @ 11:28 Vote:
0
0
відповідь так на два перших питання
я б показав тобі вміст листів що надсилаю, але недумаю що це було б доречно тут публікувати, може допоможеш мені в асьці?
Серпень 20 2008 @ 11:29 Vote:
0
0
Ок, мій номер можеш знайти в контактах.