Przenoszenie witryny
Może to być bardzo przydatna technika do prototypowania nowej witryny XOOPS na lokalnym systemie lub serwerze programistycznym. Może to również być bardzo rozsądne testowanie aktualizacji XOOPS na kopii produkcyjnej witryny, na wypadek gdyby coś poszło nie tak. Aby to osiągnąć, musisz mieć możliwość przeniesienia witryny XOOPS z jednej witryny na drugą. Oto to, co powinieneś wiedzieć, aby pomyślnie przenieść witrynę XOOPS.
Pierwszym krokiem jest ustanowienie nowego środowiska witryny. Te same elementy, które są omówione w sekcji Zaawansowane przygotowania mają tu również zastosowanie.
W przeglądzie, te kroki to:
- uzyskanie hostingu, w tym wszelkich wymagań dotyczących nazwy domeny lub poczty e-mail
- uzyskanie konta użytkownika MySQL i hasła
- uzyskanie bazy danych MySQL, którą powyższy użytkownik ma pełne uprawnienia
Pozostała część procesu jest dość podobna do normalnej instalacji, ale:
- zamiast kopiować pliki z dystrybucji XOOPS, będziesz je kopiować z istniejącej witryny
- zamiast uruchamiać instalator, zaimportujesz już wypełnioną bazę danych
- zamiast wpisywać odpowiedzi w instalatorze, zmienisz poprzednie odpowiedzi w plikach i bazie danych
Kopiowanie istniejących plików witryny
Dział zatytułowany „Kopiowanie istniejących plików witryny”Utwórz pełną kopię plików istniejącej witryny na maszynie lokalnej, gdzie możesz je edytować. Jeśli pracujesz ze zdalnym hostem, możesz użyć FTP do skopiowania plików. Potrzebujesz kopii do pracy, nawet jeśli witryna działa na maszynie lokalnej, po prostu zrób inną kopię katalogów witryny w takim przypadku.
Ważne jest pamiętanie o dołączeniu katalogów xoops_data i xoops_lib, nawet jeśli zostały zmienione nazwy i/lub przeniesione.
Aby ułatwić sobie, powinieneś wyeliminować pliki pamięci podręcznej i skompilowanych szablonów Smarty z kopii. Te pliki będą ponownie tworzone w nowym środowisku i mogą spowodować problemy ze starymi nieprawidłowymi informacjami zatrzymywanymi, jeśli nie zostaną wyczyszczone. Aby to zrobić, usuń wszystkie pliki, z wyjątkiem index.html, we wszystkich trzech tych katalogach:
- xoops_data/caches/smarty_cache
- xoops_data/caches/smarty_compile
- xoops_data/caches/xoops_cache
Uwaga: Czyszczenie
smarty_compilejest szczególnie ważne podczas przenoszenia witryny do lub z XOOPS 2.7.0. XOOPS 2.7.0 używa Smarty 4, a skompilowane szablony Smarty 4 nie są zamienne ze skompilowanymi szablonami Smarty 3. Pozostawienie starych skompilowanych plików spowoduje błędy szablonów przy pierwszym załadowaniu strony na nowej witrynie.
xoops_lib i zależności Composer
Dział zatytułowany „xoops_lib i zależności Composer”XOOPS 2.7.0 zarządza zależnościami PHP za pomocą Composer, wewnątrz xoops_lib/. Katalog xoops_lib/vendor/ zawiera biblioteki stron trzecich, których XOOPS potrzebuje podczas runtime’u (Smarty 4, PHPMailer, HTMLPurifier, itp.). Podczas przenoszenia witryny musisz skopiować całe drzewo xoops_lib/ — w tym vendor/ — na nowy host. Nie próbuj ponownie generować vendor/ na hoście docelowym, chyba że jesteś deweloperem, który dostosował composer.json i ma dostęp Composer na celu.
Konfiguracja nowego środowiska
Dział zatytułowany „Konfiguracja nowego środowiska”Te same elementy, które są omówione w sekcji Zaawansowane przygotowania mają tu również zastosowanie. Załóżmy tutaj, że masz taki hosting, jaki będziesz potrzebować dla przenoszonej witryny.
Informacje kluczowe (mainfile.php i secure.php)
Dział zatytułowany „Informacje kluczowe (mainfile.php i secure.php)”Pomyślne przeniesienie witryny polega na zmianie wszelkich odniesień do bezwzględnych nazw plików i ścieżek, adresów URL, parametrów bazy danych i poświadczeń dostępu.
Dwa pliki, mainfile.php w katalogu głównym serwera WWW witryny oraz data/secure.php w katalogu xoops_data witryny (zmieniony i/lub przeniesiony) definiują parametry podstawowe witryny, takie jak jej adres URL, gdzie znajduje się w systemie plików hosta i jak się łączy z bazą danych.
Musisz wiedzieć zarówno jakie wartości są w starym systemie, i jakie będą w nowym systemie.
mainfile.php
Dział zatytułowany „mainfile.php”| Name | Old Value in mainfile.php | New Value in mainfile.php |
|---|---|---|
| XOOPS_ROOT_PATH | ||
| XOOPS_PATH | ||
| XOOPS_VAR_PATH | ||
| XOOPS_URL | ||
| XOOPS_COOKIE_DOMAIN |
Otwórz mainfile.php w edytorze. Zmień wartości dla defines pokazane na wykresie powyżej ze starej wartości, na odpowiednie wartości dla nowej witryny.
Prowadź notatki ze starej i nowych wartości, ponieważ będziemy musieli dokonać podobnych zmian w innych miejscach w niektórych późniejszych krokach.
Na przykład, jeśli przenosisz witrynę z lokalnego komputera PC do komercyjnej usługi hostingu, twoje wartości mogą wyglądać tak:
| Name | Old Value in mainfile.php | New Value in mainfile.php |
|---|---|---|
| XOOPS_ROOT_PATH | c:/wamp/xoopscore27/htdocs | /home8/example/public_html |
| XOOPS_PATH | c:/wamp/xoopscore27/htdocs/xoops_lib | /home8/example/private/xoops_lib |
| XOOPS_VAR_PATH | c:/wamp/xoopscore27/htdocs/xoops_data | /home8/example/private/xoops_data |
| XOOPS_URL | http://localhost/xoops | https://example.com |
| XOOPS_COOKIE_DOMAIN | localhost | example.com |
Po zmianie mainfile.php, zapisz go.
Jest możliwe, że niektóre inne pliki mogą zawierać zakodowane odwołania do twojego adresu URL lub nawet ścieżek. Jest to bardziej prawdopodobne w dostosowanych motywach i menu, ale za pomocą edytora możesz wyszukać we wszystkich plikach, aby być pewnym.
W edytorze, wyszukaj we wszystkich plikach w kopii, szukając starej wartości XOOPS_URL i zastępując ją nową wartością.
Zrób to samo dla starej wartości XOOPS_ROOT_PATH, zastępując wszystkie wystąpienia nową wartością.
Prowadź notatki, ponieważ będziemy musieli używać ich ponownie później, gdy będziemy przenosić bazę danych.
data/secure.php
Dział zatytułowany „data/secure.php”| Name | Old Value in data/secure.php | New Value in data/secure.php |
|---|---|---|
| XOOPS_DB_HOST | ||
| XOOPS_DB_USER | ||
| XOOPS_DB_PASS | ||
| XOOPS_DB_NAME |
Otwórz data/secure.php w zmienionej i/lub przeniesionej xoops_data w edytorze. Zmień wartości dla defines pokazane na wykresie powyżej ze starej wartości, na odpowiednie wartości dla nowej witryny.
Inne pliki
Dział zatytułowany „Inne pliki”Mogą być inne pliki, które mogą wymagać uwagi podczas przenoszenia witryny. Niektóre typowe przykłady to klucze API dla różnych usług, które mogą być powiązane z domeną, takie jak:
- Google Maps
- Recaptch2
- Przyciski “Lubię to”
- Udostępnianie linków i/lub reklamy, takie jak Shareaholic lub AddThis
Zmiana tego rodzaju skojarzeń nie może być łatwo zautomatyzowana, ponieważ połączenia ze starą domeną są zazwyczaj częścią rejestracji po stronie usługi. W niektórych przypadkach może to po prostu dodać lub zmienić domenę skojarzoną z usługą.
Kopiowanie plików na nową witrynę
Dział zatytułowany „Kopiowanie plików na nową witrynę”Skopiuj teraz zmodyfikowane pliki na nową witrynę. Techniki są takie same jak były używane podczas Instalacji, tzn. przy użyciu FTP.
Kopiowanie istniejącej bazy danych witryny
Dział zatytułowany „Kopiowanie istniejącej bazy danych witryny”Kopia zapasowa bazy danych ze starego serwera
Dział zatytułowany „Kopia zapasowa bazy danych ze starego serwera”Do tego kroku, używanie phpMyAdmin jest zdecydowanie rekomendowane. Zaloguj się do phpMyAdmin na istniejącą witrynę, wybierz bazę danych i wybierz Export.
Domyślne ustawienia są zwykle w porządku, po prostu wybierz “Metoda exportu” Quick i “Format” SQL.
Użyj przycisku Go aby pobrać kopię zapasową bazy danych.

Jeśli masz tabele w bazie danych, które nie pochodzą z XOOPS lub jego modułów i NIE mają być przenoszone, powinieneś wybrać “Metoda exportu” Custom i wybrać tylko tabele związane z XOOPS w bazie danych. (Zaczynają się od “prefiksu”, którym kierowałeś się podczas instalacji. Możesz wyszukać prefiks bazy danych w pliku xoops_data/data/secure.php.)
Przywracanie bazy danych na nowym serwerze
Dział zatytułowany „Przywracanie bazy danych na nowym serwerze”Na nowym hoście, używając nowej bazy danych, przywróć bazę danych korzystając z narzędzi takich jak karta Import w phpMyAdmin (lub bigdump jeśli będzie to potrzebne.)
Aktualizacja adresów URL i ścieżek w bazie danych
Dział zatytułowany „Aktualizacja adresów URL i ścieżek w bazie danych”Zaktualizuj wszelkie linki http do zasobów na witrynie w bazie danych. To może być ogromny wysiłek i istnieje narzędzie aby ułatwić to.
Interconnect/it ma produkt o nazwie Search-Replace-DB, który może w tym pomóc. Wysyła się z wbudowaną świadomością środowisk Wordpress i Drupal. Jak jest, to narzędzie może być bardzo pomocne, ale jest jeszcze lepsze, gdy jest świadome twojego XOOPS. Możesz znaleźć wersję świadomą XOOPS na https://github.com/geekwright/srdb
Postępuj zgodnie z instrukcjami w pliku README.md, aby pobrać i tymczasowo zainstalować to narzędzie na witrynie. Wcześniej zmieniliśmy definicję XOOPS_URL. Gdy uruchomisz to narzędzie, chcesz zastąpić oryginalną definicję XOOPS_URL nową definicją, tj. zastąpić http://localhost/xoops z https://example.com

Wpisz stare i nowe adresy URL, i wybierz opcję suchego przebiegu. Przejrzyj zmiany, i jeśli wszystko wygląda dobrze, przejdź do opcji przebiegu na żywo. Ten krok złapie elementy konfiguracji i linki w treści, które odnoszą się do adresu URL witryny.

Powtórz proces, używając starych i nowych wartości dla XOOPS_ROOT_PATH.
Alternatywne podejście bez SRDB
Dział zatytułowany „Alternatywne podejście bez SRDB”Innym sposobem na zrobienie tego kroku bez narzędzia srdb byłoby zrzucenie bazy danych, edytowanie zrzutu w edytorze tekstu, zmieniając adresy URL i ścieżki, a następnie ponowne załadowanie bazy danych ze zmienionego zrzutu. Tak, ten proces jest wystarczająco zaangażowany i nosi wystarczająco dużo ryzyka, że ludzie byli zmotywowani do tworzenia specjalistycznych narzędzi, takich jak Search-Replace-DB.
Wypróbowanie przeniesionej witryny
Dział zatytułowany „Wypróbowanie przeniesionej witryny”W tym momencie twoja witryna powinna być gotowa do uruchomienia w nowym środowisku!
Oczywiście zawsze mogą być problemy. Nie bój się zapostować żadnych pytań na xoops.org Forums.