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

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

Importowanie z phpBB3

  1. Jakie dane można importować?
  2. 1.1. Instalowanie dyskursu
  3. 1.2. Przygotowanie kontenera Docker
  4. 1.3. Konfigurowanie importera
  5. 1.3.1. Łączenie ze zdalną bazą danych
  6. 1.3.2. Łączenie z wewnętrzną bazą danych
  7. 1.3.3. Inne ustawienia
  8. 1.5. Wykonywanie skryptu importu
  9. 1.6. Początkowy dyskurs
  10. 1.7. Sprzątać
  11. 1.8. Koniec
  12. 4.1. Mam mocno zmodyfikowane forum. Czy skrypt importu będzie nadal działał?
  13. 4.2. Dlaczego proces importowania jest tak powolny?
  14. 4.3. Mam duże forum z wieloma użytkownikami i postami. Jak mogę zminimalizować czas przestoju podczas importu?
  15. 4.4. Czy mogę uruchomić import oparty na Dockerze na moim komputerze stacjonarnym lub serwerze pomostowym?
  16. 4.5. Czy skrypt podczas wysyłania wysyła e-maile?
  17. 4.6. Którą wersję Dyskursu należy użyć do importowania?
  18. 4.7. Włączyłem import haseł. Dlaczego moi użytkownicy nie mogą logować się za pomocą starych haseł?
  19. 4.8. Import zakończył się pomyślnie, ale lista użytkowników jest pusta. Co jest nie tak?
  20. 4.9. Mam niestandardowe emotikony na moim forum. Czy są importowane?

Więc odkryłeś Dyskurs i chcesz wiedzieć, jak migrować z istniejącego forum phpBB3?

Świetny! Następnie czytaj dalej. Ten przewodnik pokaże Ci, jak korzystać z skrypt importu phpBB3 do importowania z phpBB 3.0.x i 3.1.x.

Importowanie z phpBB 3 Importowanie z phpBB 3.2 nie jest obecnie obsługiwane.

Ten temat będzie zawierał spis treści

Jakie dane można importować?

  • Użytkownicy
    • Awatary (opcjonalnie)
    • Anonimowi użytkownicy (jako „system” użytkownika lub jako zawieszeni użytkownicy)
    • Skróty haseł, których można używać z wtyczka migratepassword (opcjonalny)
  • Kategorie i fora
  • Tematy i posty
    • Ankiety i głosy (opcjonalnie)
    • Emotikony
    • BBCodes
    • Wewnętrzne linki do tematów i postów
  • Lepkie tematy i (globalne) ogłoszenia
  • Prywatne wiadomości (opcjonalnie)
  • Załączniki (opcjonalnie)
  • Zakładki (opcjonalnie)
  • Łącza bezpośrednie dla importowanych kategorii, tematów i postów (opcjonalnie)

Jest to zalecany sposób importowania treści z forum phpBB3 do Dyskursu.

1.1. Instalowanie dyskursu

Zainstaluj Dyskurs, postępując zgodnie z oficjalny przewodnik instalacji .
Następnie dobrze jest przejść do sekcji Administrator i skonfigurować kilka ustawień:

  • Włącz login_required, jeśli importowane tematy nie powinny być widoczne dla publiczności
  • Włącz hide_user_profiles_from_public, jeśli profile użytkowników nie powinny być widoczne dla publiczności.
  • Wyłącz download_remote_images_to_local, jeśli nie chcesz, aby Dyskurs pobierał obrazy osadzone w postach.
  • Włącz disable_edit_notifications, jeśli włączyłeś download_remote_images_to_local i nie chcesz, aby Twoi użytkownicy otrzymywali wiele powiadomień o postach edytowanych przez użytkownika systemu.
  • Zmień wartość slug_generation_method, jeśli większość tytułów tematu używa znaków, które nie powinny być mapowane na ASCII (np. Arabski). Widzieć ten post po więcej informacji.

Następujące kroki zakładają, że zainstalowałeś Dyskurs na Ubuntu i że jesteś połączony z maszyną przez SSH lub masz bezpośredni dostęp do terminalu urządzenia Następujące kroki zakładają, że zainstalowałeś Dyskurs na Ubuntu i że jesteś połączony z maszyną przez SSH lub masz bezpośredni dostęp do terminalu urządzenia.

1.2. Przygotowanie kontenera Docker

Skopiuj plik konfiguracyjny app.yml do import.yml i edytuj go za pomocą ulubionego edytora.

cd / var / discourse cp containers / app.yml containers / import.yml nano containers / import.yml

Dodaj - „templates / import / phpbb3.template.yml” do listy szablonów. Następnie powinien wyglądać mniej więcej tak:

szablony: - "templates / postgres.template.yml" - "templates / redis.template.yml" - "templates / web.template.yml" - "templates / web.ratelimited.template.yml" ## Uncomment te dwie linie jeśli chcesz dodać Lets Encrypt (https) # - "templates / web.ssl.template.yml" # - "templates / web.letsencrypt.ssl.template.yml" - "templates / import / phpbb3.template.yml"

to jest to! Możesz zapisać plik, zamknąć edytor i zbudować kontener.

Przywróć odbudowę aplikacji / var / discourse / launcher stop app / var / discourse / launcher

Budowanie kontenera tworzy katalog importu w udostępnionym katalogu kontenera. To wygląda tak:

/ var / discourse / shared / standalone / import ├── dane ├── mysql └── settings.yml

1.3. Konfigurowanie importera

Możesz skonfigurować importera, edytując przykładowy plik settings.yml, który został skopiowany do katalogu importu.

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

The plik ustawień jest dobrze udokumentowany i zawiera rozsądne wartości domyślne, ale oto kilka wskazówek:

1.3.1. Łączenie ze zdalną bazą danych

Zmień host bazy danych, port, nazwę użytkownika, hasło i schemat, jeśli chcesz połączyć się ze zdalną bazą danych. Upewnij się, że twój Serwer MySQL umożliwia zdalne połączenia .

1.3.2. Łączenie z wewnętrzną bazą danych

Kontener Docker jest dostarczany z serwerem MariaDB, który jest kompatybilny z MySQL. Nie musisz zmieniać żadnych ustawień bazy danych, jeśli zamierzasz z niej korzystać. Wszystko czego potrzebujesz to zrzut bazy danych, który możesz tworzyć na wiele sposobów. Oto dwa z nich:

  • Utwórz kopię zapasową bazy danych w administracyjnym panelu sterowania phpBB

  • Połącz się z hostem bazy danych i utwórz zrzut bazy danych:

    # zamień ostatni parametr „phpbb” na nazwę schematu bazy danych mysqldump - root użytkownika - hasło --result-file phpbb_mysql.sql phpbb

Skopiuj zrzut bazy danych do katalogu / var / discourse / shared / standalone / import / data /. Musisz rozpakować plik, jeśli utworzyłeś skompresowaną kopię zapasową gzip lub bzip2 i upewniłeś się, że plik ma nazwę phpbb_mysql.sql

1.3.3. Inne ustawienia

  • Zmień table_prefix na wypadek, gdyby twoje forum phpBB nie używało domyślnego nazewnictwa tabel bazy danych.
  • Upewnij się, że phpbb_base_dir wskazuje na / shared / import / data

1.4. Kopiowanie załączników i obrazów

Możesz pominąć ten krok, jeśli nie chcesz importować załączników, awatarów lub emotikonów.

Połącz się z hostem phpBB3 za pomocą FTP lub SCP i pobierz następujące katalogi do katalogu / var / discourse / shared / standalone / import / data:

  • Załączniki są zwykle przechowywane w katalogu plików. Możesz się upewnić, sprawdzając ścieżkę w administracyjnym panelu sterowania.

  • Awatary są zwykle przechowywane w katalogu images / avatars. Możesz się upewnić, sprawdzając ścieżkę w administracyjnym panelu sterowania.

  • Emotikony są przechowywane w katalogu images / smilies.

Katalog importu powinien wyglądać następująco, jeśli pobrałeś wszystkie te katalogi:

/ var / discourse / shared / standalone / import ├── dane │ ├── pliki │ ├── obrazy │ │ ├── avatary │ │ │ ├── galeria │ │ │ └── upload │ │ └── smilies ├── mysql └── settings.yml

1.5. Wykonywanie skryptu importu

Wskazówka : Dobrze jest rozpocząć importowanie wewnątrz   tmux   lub   ekran   sesja, abyś mógł ponownie połączyć się z sesją w przypadku utraty połączenia SSH Wskazówka : Dobrze jest rozpocząć importowanie wewnątrz tmux lub ekran sesja, abyś mógł ponownie połączyć się z sesją w przypadku utraty połączenia SSH.

Rozpocznij import, wchodząc do kontenera Docker i uruchamiając skrypt importu wewnątrz kontenera Docker.

/ var / discourse / launcher wprowadź import import_phpbb3.sh # wewnątrz kontenera Docker

W zależności od rozmiaru twojego forum, teraz jest czas dla niektórych W zależności od rozmiaru twojego forum, teraz jest czas dla niektórych   lub   Po zakończeniu skrypt importu wyświetli komunikat taki jak ten: Gotowe (00h 26min 52sec) lub
Po zakończeniu skrypt importu wyświetli komunikat taki jak ten: Gotowe (00h 26min 52sec)

A kiedy czekasz na zakończenie importu, możesz spójrz na FAQ .

Wskazówka : Możesz przerwać import w dowolnym momencie, naciskając Ctrl + C   Po ponownym uruchomieniu importu będzie kontynuowany tam, gdzie został przerwany Wskazówka : Możesz przerwać import w dowolnym momencie, naciskając Ctrl + C
Po ponownym uruchomieniu importu będzie kontynuowany tam, gdzie został przerwany.

Możesz zakończyć i zatrzymać kontener Docker po zakończeniu importu.

exit # wewnątrz kontenera Docker / var / discourse / launcher zatrzymaj import

1.6. Początkowy dyskurs

Uruchommy kontener aplikacji i spójrzmy na importowane dane.

Aplikacja / var / discourse / launcher start

Rozpocznie się dyskurs, a Sidekiq rozpocznie przetwarzanie wszystkich zaimportowanych postów. Może to zająć trochę czasu. Możesz obserwować postęp, logując się jako admin i odwiedzając http://discourse.example.com/sidekiq

1.7. Sprzątać

Więc jesteś zadowolony z wyniku importu i chcesz zwolnić trochę miejsca na dysku? Następujące polecenia usuwają kontener Docker używany do importowania, a także wszystkie pliki używane podczas importowania.

/ var / discourse / launcher zniszcz import rm /var/discourse/containers/import.yml rm -R / var / discourse / shared / standalone / import

1.8. Koniec

Teraz czas świętować i cieszyć się nową instancją Dyskursu! Teraz czas świętować i cieszyć się nową instancją Dyskursu

Poniższe instrukcje są przeznaczone dla użytkowników, którzy chcą importować za pomocą środowiska programistycznego.

  1. Skonfiguruj środowisko programistyczne, postępując zgodnie z instrukcjami dla Ubuntu lub Mac OS X .
    Poniższe instrukcje zakładają, że używasz Ubuntu.

  2. Upewnij się, że ani Discourse, ani Sidekiq nie są uruchomione.

  3. Zainstaluj niektóre zależności:

    sudo apt-get update sudo apt-get install libmysqlclient-dev cd ~ / echo dyskursu "gem" mysql2 '">> echo Gemfile" gem "ruby-bbcode-to-md',: github => 'nlalonde / ruby-bbcode -to-md '">> Gemfile bundle install git checkout Gemfile Gemfile.lock

  4. Skonfiguruj import. Jest przykładowy plik ustawień w ~ / discourse / script / import_scripts / phpbb3 / settings.yml

  5. Rozpocznij import (zmień ścieżkę do pliku ustawień, jeśli umieścisz ustawienia niestandardowe w innym miejscu):

    cd ~ / discourse / script / import_scripts ruby ​​phpbb3.rb phpbb3 / settings.yml

  6. Poczekaj na zakończenie importu. Możesz go zrestartować, jeśli zwolni do indeksowania.

  7. Uruchom instancję Discourse: serwer bundle exec rails

  8. Uruchom Sidekiq i pozwól mu wykonać swoją pracę: bundle exec sidekiq
    W zależności od rozmiaru forum może to zająć dużo czasu. Możesz monitorować postęp na http: // localhost: 3000 / sidekiq

Oto lista rzeczy, których importer wciąż nie ma (w określonej kolejności):

  • Dodaj obsługę phpBB 3.2
  • Dodaj wsparcie dla wtyczka cakeday
  • Zaimportowany tekst, który wygląda jak Markdown, powinien zostać usunięty
  • Zamknij tematy zamknięte w phpBB3
  • Importuj niezatwierdzone posty jako ukryte posty
  • Importuj status odczytu dla każdego posta i prywatnej wiadomości
  • Importuj niestandardowe pola profilu
  • Importuj grupy
  • Popraw konwerter BBCode na Markdown ( ruby-bbcode-to-md )
  • Obsługa niestandardowych wzorów wewnętrznych linków do tematów i postów (zoptymalizowane adresy URL SEO)
  • Dodaj obsługę większej liczby źródeł baz danych: MS SQL Server, Oracle, PostgreSQL

Zapraszam do rozpoczęcia ulubionego IDE Ruby i ułatwienia importera w jeszcze lepszej sytuacji. Zapraszam do rozpoczęcia ulubionego IDE Ruby i ułatwienia importera w jeszcze lepszej sytuacji

4.1. Mam mocno zmodyfikowane forum. Czy skrypt importu będzie nadal działał?

Może. Zależy od tego, co zmienia te modyfikacje w bazie danych. Musisz spróbować.

4.2. Dlaczego proces importowania jest tak powolny?

Importowanie jest związane z procesorem. Powinieneś używać procesorów z dużą szybkością jednego rdzenia, jeśli się spieszysz. Szybkość importu wynosi około 400–600 postów / minutę na typowym serwerze DigitalOcean. Nagie metalowe serwery, a prawdopodobnie także komputer stacjonarny, są zwykle około dwa razy szybsze.

4.3. Mam duże forum z wieloma użytkownikami i postami. Jak mogę zminimalizować czas przestoju podczas importu?

Możesz to zrobić import przyrostowy w celu skrócenia czasu przestoju.
Należy jednak pamiętać: istnieje niewielkie ryzyko utraty danych podczas importu przyrostowego, ponieważ istniejące posty i użytkownicy nie są aktualizowani podczas importu przyrostowego. Utracisz po edycji, które wystąpiły między importami, jak również zmiany dokonane w profilach użytkowników.

4.4. Czy mogę uruchomić import oparty na Dockerze na moim komputerze stacjonarnym lub serwerze pomostowym?

Oczywiście. Po zakończeniu importu możesz przenieść instancję Dyskursu na inny serwer. Spojrzeć na to How-To po instrukcje.

4.5. Czy skrypt podczas wysyłania wysyła e-maile?

Wysyłanie wiadomości e-mail jest wyłączone podczas importowania, a dyskurs wstrzymuje wysyłanie e-maili podsumowujących do importowanych użytkowników przez pewien czas. Można to skonfigurować za pomocą ustawienia strony default_email_digest_frequency, które domyślnie wynosi 7 dni.

4.6. Którą wersję Dyskursu należy użyć do importowania?

Zaleca się, aby zawsze korzystać z kanału testowego lub kanału beta Dyskursu dla importu, ponieważ jest to skrypt importu stale ulepszany . Upewnij się więc, że wartość wersji jest odpowiednio ustawiona w plikach konfiguracyjnych app.yml i import.yml. Wszystko powinno być dobrze, jeśli podążałeś za oficjalny przewodnik instalacji .

4.7. Włączyłem import haseł. Dlaczego moi użytkownicy nie mogą logować się za pomocą starych haseł?

Upewnij się, że włączyłeś wtyczka migratepassword w app.yml, postępując zgodnie z How-To do instalowania wtyczek . Ponadto użytkownicy nie będą mogli zalogować się za pomocą starego hasła, jeśli zostanie to uznane za niebezpieczne. Domyślnie Dyskurs wymaga minimalnej długości hasła 10 znaków (dla administratorów jest to 15), a hasło nie może być na stronie lista wspólnych haseł . Ale użytkownicy mogą zawsze zresetować swoje hasło, klikając link „Zapomniałem hasła” w oknie logowania lub bezpośrednio, odwiedzając https://discourse.example.com/password-reset

4.8. Import zakończył się pomyślnie, ale lista użytkowników jest pusta. Co jest nie tak?

Lista użytkowników nie pojawi się od razu. Jest generowany przez zadanie w tle wykonywane przez Sidekiq. Prawdopodobnie będziesz musiał poczekać, aż skończy się przetwarzanie końcowe importowanych danych.

4.9. Mam niestandardowe emotikony na moim forum. Czy są importowane?

Tak. Możesz mapować je na Emojis w pliku ustawień, w przeciwnym razie zostaną zaimportowane jako obrazy. Wszystkie domyślne uśmieszki (z wyjątkiem Tak i ) już posiada mapowanie Emoji.

Jakie dane można importować?
Czy skrypt importu będzie nadal działał?
4.2. Dlaczego proces importowania jest tak powolny?
Jak mogę zminimalizować czas przestoju podczas importu?
4.4. Czy mogę uruchomić import oparty na Dockerze na moim komputerze stacjonarnym lub serwerze pomostowym?
4.5. Czy skrypt podczas wysyłania wysyła e-maile?
4.6. Którą wersję Dyskursu należy użyć do importowania?
Dlaczego moi użytkownicy nie mogą logować się za pomocą starych haseł?
Co jest nie tak?
Czy są importowane?