Навигация по сайту

Популярные статьи

Імпортування з phpBB3

  1. Які дані можна імпортувати?
  2. 1.1. Встановлення дискурсу
  3. 1.2. Підготовка контейнера Docker
  4. 1.3. Налаштування імпортера
  5. 1.3.1. Підключення до віддаленої бази даних
  6. 1.3.2. Підключення до внутрішньої бази даних
  7. 1.3.3. Інші параметри
  8. 1.5. Виконання сценарію імпорту
  9. 1.6. Початок дискурсу
  10. 1.7. Прибирати
  11. 1.8. Кінець
  12. 4.1. У мене є сильно змінений форум. Чи працюватиме сценарій імпорту?
  13. 4.2. Чому процес імпорту настільки повільний?
  14. 4.3. У мене є великий форум з великою кількістю користувачів і повідомлень. Як мінімізувати час простою...
  15. 4.4. Чи можу я запустити імпорт на базі Docker на настільному комп'ютері або на сервері?
  16. 4.5. Чи передає сценарій будь-які повідомлення електронної пошти під час імпортування?
  17. 4.6. Яку версію дискурсу слід використовувати для імпортування?
  18. 4.7. Увімкнено імпорт паролів. Чому мої користувачі не можуть увійти зі своїми старими паролями?
  19. 4.8. Імпорт успішно виконано, але список користувачів порожній. Що не так?
  20. 4.9. У моєму форумі є спеціальні смайлики. Чи імпортуються?

Отже, ви виявили дискурс і хочете знати, як перейти з існуючого форуму phpBB3?

Чудово! Потім продовжуйте читати. Цей посібник покаже вам, як використовувати сценарій імпорту phpBB3 для імпортування з phpBB 3.0.x і 3.1.x.

Імпортування з phpBB 3 Імпортування з phpBB 3.2 наразі не підтримується.

Ця тема буде містити зміст

Які дані можна імпортувати?

  • Користувачі
    • Аватари (необов'язково)
    • Анонімні користувачі (як "система" користувача, або як призупинені користувачі)
    • Хеші паролів, які можна використовувати з плагін міграціїпароку (необов'язково)
  • Категорії та форуми
  • Теми та публікації
    • Опитування та голосування (необов'язково)
    • Смайлики
    • BBCodes
    • Внутрішні посилання на теми та публікації
  • Важкі теми та (глобальні) оголошення
  • Приватні повідомлення (необов'язково)
  • Додатки (необов'язково)
  • Закладки (необов'язково)
  • Постійне посилання для імпортованих категорій, тем і публікацій (необов'язково)

Це рекомендований спосіб імпорту вмісту з вашого форуму phpBB3 до дискурсу.

1.1. Встановлення дискурсу

Встановіть дискурс, дотримуючись офіційне керівництво по установці .
Згодом перейти до розділу "Адміністратор" і налаштувати кілька налаштувань:

  • Увімкнути login_required, якщо імпортовані теми не повинні бути видимими для громадськості
  • Увімкніть hide_user_profiles_from_public, якщо профілі користувачів не повинні бути видимими для громадськості.
  • Вимкнути download_remote_images_to_local, якщо ви не хочете, щоб дискурс завантажував зображення, вбудовані в повідомлення.
  • Увімкніть disable_edit_notifications, якщо ви ввімкнули файл download_remote_images_to_local і не бажаєте, щоб користувачі отримували багато сповіщень про публікації, які редагував користувач системи.
  • Змініть значення slug_generation_method, якщо більшість назв тем використовують символи, які не повинні відображатися в ASCII (наприклад, арабською). Подивитися цей пост для отримання додаткової інформації.

Наступні кроки припускають, що ви встановили дискурс на Ubuntu і що ви підключені до машини через SSH або мають прямий доступ до терміналу машини Наступні кроки припускають, що ви встановили дискурс на Ubuntu і що ви підключені до машини через SSH або мають прямий доступ до терміналу машини.

1.2. Підготовка контейнера Docker

Скопіюйте файл конфігурації контейнера app.yml в файл import.yml і відредагуйте його у вашому улюбленому редакторі.

cd / var / discourse контейнери cp / app.yml / import.yml nano containers / import.yml

Додати - "templates / import / phpbb3.template.yml" до списку шаблонів. Після цього він повинен виглядати приблизно так:

шаблони: - "templates / postgres.template.yml" - "templates / redis.template.yml" - "templates / web.template.yml" - "шаблони / web.ratelimited.template.yml" якщо ви хочете додати Lets Encrypt (https) # - "templates / web.ssl.template.yml" # - "templates / web.letsencrypt.ssl.template.yml" - "templates / import / phpbb3.template.yml"

Це воно. Ви можете зберегти файл, закрити редактор і побудувати контейнер.

/ var / discourse / launcher зупинити додаток / var / discourse / launcher відновити імпорт

Створення контейнера створює каталог імпорту в загальному каталозі контейнера. Це виглядає так:

/ var / discourse / спільний / автономний / імпортувати ├── дані q── mysql └── settings.yml

1.3. Налаштування імпортера

Можна налаштувати імпортер, відредагувавши приклад файлу settings.yml, який було скопійовано до каталогу імпорту.

nano /var/discourse/shared/standalone/import/settings.yml

The файл налаштувань добре задокументовано і поставляється з розумними налаштуваннями за замовчуванням, але все ж таки є кілька порад:

1.3.1. Підключення до віддаленої бази даних

Змініть хост, порт, ім'я користувача, пароль і схему бази даних, якщо ви хочете підключитися до віддаленої бази даних. Переконайтеся, що ваш Сервер MySQL дозволяє віддалені з'єднання .

1.3.2. Підключення до внутрішньої бази даних

Контейнер Docker постачається з сервером MariaDB, сумісним з MySQL. Якщо ви збираєтеся використовувати його, вам не потрібно змінювати будь-які параметри бази даних. Все, що вам потрібно, це дамп бази даних, який можна створити кількома способами. Ось два з них:

  • Створіть резервну копію бази даних у панелі керування адміністрування phpBB

  • Підключення до хосту бази даних і створення дампа бази даних:

    # замінити останній параметр "phpbb" з назвою схеми бази даних mysqldump --user root --password --result-файл phpbb_mysql.sql phpbb

Скопіюйте дамп бази даних у каталог / var / discourse / shared / standalone / import / data /. Необхідно витягти файл, якщо ви створили стиснуту резервну копію gzip або bzip2, і переконайтеся, що файл називається phpbb_mysql.sql

1.3.3. Інші параметри

  • Змініть table_prefix у випадку, якщо ваш форум phpBB не використовує іменування за замовчуванням для таблиць бази даних.
  • Переконайтеся, що phpbb_base_dir вказує на / shared / import / data

1.4. Копіювання вкладень і зображень

Цей крок можна пропустити, якщо ви не бажаєте імпортувати вкладення, аватари або смайлики.

Підключіться до вашого хосту phpBB3 за допомогою FTP або SCP і завантажте наступні каталоги в каталог / var / discourse / shared / standalone / import / data:

  • Вкладення зазвичай зберігаються у каталозі файлів. Перевірте шлях на панелі керування адміністрування.

  • Аватари зазвичай зберігаються в каталозі images / avatars. Перевірте шлях на панелі керування адміністрування.

  • Смайли зберігаються в каталозі зображень / смайлів.

Каталог імпортування має виглядати так, якщо ви завантажили всі ці каталоги:

/ var / discourse / спільний / автономний / імпорт │── дані │ ── файли ├ ── образи │ ─── аватари │ │ │ ├── галерея │ │ │ └── завантажити │ │ └── Q── mysql └── settings.yml

1.5. Виконання сценарію імпорту

Порада : Для імпортування в a   tmux   або   екрані   сеансу, щоб можна було повторно підключитися до сеансу у випадку втрати SSH-з'єднання Порада : Для імпортування в a tmux або екрані сеансу, щоб можна було повторно підключитися до сеансу у випадку втрати SSH-з'єднання.

Давайте почнемо імпорт, ввівши контейнер Docker і запустивши імпортний скрипт всередині контейнера Docker.

/ var / discourse / launcher введіть імпорт import_phpbb3.sh # у контейнер Docker

Залежно від розміру вашого форуму, настав час для деяких Залежно від розміру вашого форуму, настав час для деяких   або   Сценарій імпорту покаже вам таке повідомлення, коли це буде завершено: Готово (00h 26min 52sec) або
Сценарій імпорту покаже вам таке повідомлення, коли це буде завершено: Готово (00h 26min 52sec)

І поки ви чекаєте завершення імпорту, ви можете подивіться на FAQ .

Порада : Ви можете перервати імпорт у будь-який час, натиснувши Ctrl + C   Після перезавантаження імпортування буде продовжено там, де було припинено Порада : Ви можете перервати імпорт у будь-який час, натиснувши Ctrl + C
Після перезавантаження імпортування буде продовжено там, де було припинено.

Ви можете вийти і зупинити контейнер Docker після завершення імпорту.

exit # у контейнері Docker / var / discourse / launcher зупинити імпорт

1.6. Початок дискурсу

Давайте запустимо контейнер додатків і подивимося на імпортовані дані.

/ var / discourse / запуску запуску програми

Розпочнеться дискусія, і Sidekiq почне постобробку всіх імпортованих повідомлень. Це може зайняти достатньо часу. Ви можете дивитися прогрес, увійшовши в систему як адміністратор і відвідавши http://discourse.example.com/sidekiq

1.7. Прибирати

Отже, ви задоволені результатом імпорту і хочете звільнити деякий дисковий простір? Наступні команди видалить контейнер Docker, який використовується для імпортування, а також всі файли, що використовуються під час імпорту.

/ var / discourse / launcher уничтожить import rm /var/discourse/containers/import.yml rm -R / var / discourse / спільний / автономний / імпорт

1.8. Кінець

Тепер прийшов час святкувати і насолоджуватися вашим новим прикладом дискурсу! Тепер прийшов час святкувати і насолоджуватися вашим новим прикладом дискурсу

Наступні інструкції призначені для користувачів, які хочуть імпортувати за допомогою середовища розробки.

  1. Налаштуйте середовище розробки, дотримуючись інструкцій для Ubuntu або Mac OS X .
    Наступні інструкції припускають, що ви використовуєте Ubuntu.

  2. Переконайтеся, що ні дискурс, ні Сідекик не працюють.

  3. Установити деякі залежності:

    sudo apt-get update sudo apt-get встановити libmysqlclient-dev cd ~ / дискурс echo "gem 'mysql2'" >> Gemfile echo "gem" ruby-bbcode-to-md ",: github => 'nlalonde / ruby-bbcode -to-md '">> Комплект Gemfile встановлення Git Checkout Gemfile Gemfile.lock

  4. Налаштуйте імпорт. Там є файл налаштувань прикладу на ~ / discourse / script / import_scripts / phpbb3 / settings.yml

  5. Почніть імпорт (змініть шлях до файлу налаштувань, якщо ви налаштуєте користувацькі налаштування в іншому місці):

    cd ~ / дискурс / скрипт / import_scripts ruby ​​phpbb3.rb phpbb3 / settings.yml

  6. Зачекайте, поки буде виконано імпортування. Ви можете перезапустити його, якщо він сповільниться до сканування.

  7. Запустіть приклад дискурсу: сервер bundle exec rails

  8. Запустіть Sidekiq і дайте йому виконати свою роботу: bundle exec sidekiq
    Залежно від розміру вашого форуму це може зайняти багато часу. Можна відстежувати прогрес на http: // localhost: 3000 / sidekiq

Нижче наведено список речей, які ще відсутні у імпортера (без особливого порядку):

  • Додавання підтримки для phpBB 3.2
  • Додайте підтримку для плагін cakeday
  • Імпортний текст, який виглядає як Markdown, має бути перервано
  • Закрити теми, закриті у phpBB3
  • Імпортувати несанкціоновані публікації як приховані повідомлення
  • Імпортувати статус читання для кожного повідомлення та приватного повідомлення
  • Імпортувати спеціальні поля профілю
  • Імпортні групи
  • Вдосконалити конвертер BBCode to Markdown ( ruby-bbcode-to-md )
  • Підтримка користувацьких шаблонів для внутрішніх посилань на теми та публікації (SEO оптимізовані URL-адреси)
  • Додайте підтримку більше джерел баз даних: MS SQL Server, Oracle, PostgreSQL

Не соромтеся почати свій улюблений IDE Ruby і допомогти зробити імпортера ще краще. Не соромтеся почати свій улюблений IDE Ruby і допомогти зробити імпортера ще краще

4.1. У мене є сильно змінений форум. Чи працюватиме сценарій імпорту?

Може бути. Це залежить від того, які зміни внесені в базу даних. Вам доведеться спробувати.

4.2. Чому процес імпорту настільки повільний?

Імпортування пов'язано з CPU. Ви повинні використовувати процесори з швидкою одноядерною швидкістю, якщо ви поспішаєте. На типовому сервері DigitalOcean ви отримуєте швидкість імпорту від 400 до 600 повідомлень / хвилину. Рівні металеві сервери, і, можливо, також ваш настільний комп'ютер, зазвичай приблизно вдвічі швидше.

4.3. У мене є великий форум з великою кількістю користувачів і повідомлень. Як мінімізувати час простою під час імпорту?

Ви можете зробити додатковий імпорт для того, щоб скоротити час простою.
Але будьте обережні: існує невеликий ризик втрати даних, коли ви робите додатковий імпорт, оскільки існуючі повідомлення та користувачі не оновлюються під час додаткового імпорту. Ви втратите посадові редагування, які сталися між імпортом, а також зміни, внесені до профілів користувачів.

4.4. Чи можу я запустити імпорт на базі Docker на настільному комп'ютері або на сервері?

Звичайно. Після завершення імпортування примірник дискурсу можна перемістити на інший сервер. Подивись на це How-To для вказівки.

4.5. Чи передає сценарій будь-які повідомлення електронної пошти під час імпортування?

Надсилання повідомлень електронної пошти вимкнено під час імпортування. Цей параметр можна налаштувати за допомогою налаштування сайту default_email_digest_frequency, який за умовчанням встановлюється на 7 днів.

4.6. Яку версію дискурсу слід використовувати для імпортування?

Рекомендується завжди використовувати тест-пропущений або бета-канал дискурсу для імпорту, оскільки імпортний сценарій є постійно вдосконалювався . Отже, переконайтеся, що значення версії встановлюється відповідно в конфігураційних файлах app.yml та import.yml. Все повинно бути добре, якщо ви будете слідувати офіційне керівництво по установці .

4.7. Увімкнено імпорт паролів. Чому мої користувачі не можуть увійти зі своїми старими паролями?

Переконайтеся, що ввімкнено плагін міграціїпароку в app.yml, дотримуючись How-To для встановлення плагінів . Крім того, користувачі не зможуть увійти зі своїм старим паролем, якщо він вважається небезпечним. За замовчуванням дискурс вимагає мінімальної довжини пароля 10 символів (для адміністраторів це 15) і пароль не повинен бути на список загальних паролів . Але користувачі завжди можуть скинути свій пароль, натиснувши посилання "Я забув свій пароль" у діалоговому вікні входу або безпосередньо на веб-сторінці https://discourse.example.com/password-reset

4.8. Імпорт успішно виконано, але список користувачів порожній. Що не так?

Список користувачів не відображатиметься відразу. Він генерується фоновим завданням, яке виконує Sidekiq. Ймовірно, вам доведеться почекати, поки не завершиться вся постобробка обробки імпортованих даних.

4.9. У моєму форумі є спеціальні смайлики. Чи імпортуються?

Так. Ви можете зіставити їх з Emojis у файлі налаштувань, інакше вони будуть імпортовані як зображення. Всі смайли за замовчуванням (окрім Так і ) вже має відображення Emoji.

Які дані можна імпортувати?
Чи працюватиме сценарій імпорту?
4.2. Чому процес імпорту настільки повільний?
4.4. Чи можу я запустити імпорт на базі Docker на настільному комп'ютері або на сервері?
4.5. Чи передає сценарій будь-які повідомлення електронної пошти під час імпортування?
4.6. Яку версію дискурсу слід використовувати для імпортування?
Чому мої користувачі не можуть увійти зі своїми старими паролями?
Що не так?
Чи імпортуються?
Отже, ви виявили дискурс і хочете знати, як перейти з існуючого форуму phpBB3?