Aktualizacja XOOPS
Ten przewodnik obejmuje aktualizację XOOPS ze starszych wersji na najnowsze wydanie, zachowując dane i dostosowania.
Informacje o wersji
- Stabilna: XOOPS 2.5.11
- Beta: XOOPS 2.7.0 (testowanie)
- Przyszłość: XOOPS 4.0 (w rozwoju - patrz mapa drogowa)
Lista kontrolna przed aktualizacją
Dział zatytułowany „Lista kontrolna przed aktualizacją”Przed rozpoczęciem aktualizacji zweryfikuj:
- Bieżąca wersja XOOPS udokumentowana
- Zidentyfikowana docelowa wersja XOOPS
- Ukończona pełna kopia zapasowa systemu
- Weryfikowana kopia zapasowa bazy danych
- Zapisana lista zainstalowanych modułów
- Udokumentowane niestandardowe modyfikacje
- Dostępne środowisko testowe
- Sprawdzona ścieżka aktualizacji (niektóre wersje pomijają wersje pośrednie)
- Zweryfikowane zasoby serwera (wystarczająca ilość miejsca na dysku, pamięci)
- Włączony tryb konserwacji
Przewodnik ścieżki aktualizacji
Dział zatytułowany „Przewodnik ścieżki aktualizacji”Różne ścieżki aktualizacji w zależności od bieżącej wersji:
graph LR A[2.3.x] -->|Wymaga 2.4.x| B[2.4.x] B -->|Bezpośredni lub przez 2.5.x| C[2.5.x] A -->|Przez 2.4.x| C C -->|Stabilna| D[2.5.11] E[2.5.0-2.5.10] -->|Bezpośredni| D D -->|Beta| F[2.7.0]Ważne: Nigdy nie pomijaj głównych wersji. Jeśli uaktualnisz z 2.3.x, najpierw uaktualnij do 2.4.x, a następnie do 2.5.x.
Krok 1: Ukończenia pełnej kopii zapasowej systemu
Dział zatytułowany „Krok 1: Ukończenia pełnej kopii zapasowej systemu”Kopia zapasowa bazy danych
Dział zatytułowany „Kopia zapasowa bazy danych”Użyj mysqldump do tworzenia kopii zapasowej bazy danych:
# Pełna kopia zapasowa bazy danychmysqldump -u xoops_user -p xoops_db > /backups/xoops_db_backup_$(date +%Y%m%d_%H%M%S).sql
# Skompresowana kopia zapasowamysqldump -u xoops_user -p xoops_db | gzip > /backups/xoops_db_backup_$(date +%Y%m%d_%H%M%S).sql.gzLub przy użyciu phpMyAdmin:
- Wybierz bazę danych XOOPS
- Kliknij kartę “Export”
- Wybierz format “SQL”
- Wybierz “Zapisz jako plik”
- Kliknij “Go”
Weryfikuj plik kopii zapasowej:
# Sprawdź rozmiar kopii zapasowejls -lh /backups/xoops_db_backup*.sql
# Weryfikuj integralność kopii zapasowej (nieskompresowany)head -20 /backups/xoops_db_backup_*.sql
# Weryfikuj skompresowaną kopię zapasowązcat /backups/xoops_db_backup_*.sql.gz | head -20Kopia zapasowa systemu plików
Dział zatytułowany „Kopia zapasowa systemu plików”Kopia zapasowa wszystkich plików XOOPS:
# Skompresowana kopia zapasowa plikutar -czf /backups/xoops_files_$(date +%Y%m%d_%H%M%S).tar.gz /var/www/html/xoops
# Nieskompresowany (szybszy, wymaga więcej miejsca na dysku)tar -cf /backups/xoops_files_$(date +%Y%m%d_%H%M%S).tar /var/www/html/xoops
# Pokaż postęp kopii zapasowejtar -czf /backups/xoops_files_$(date +%Y%m%d_%H%M%S).tar.gz --verbose /var/www/html/xoops | tailPrzechowuj kopie zapasowe bezpiecznie:
# Bezpieczne przechowywanie kopii zapasowejchmod 600 /backups/xoops_*ls -lah /backups/
# Opcjonalnie: Skopiuj na zdalne przechowywaniescp /backups/xoops_* user@backup-server:/secure/backups/Testowanie przywracania kopii zapasowej
Dział zatytułowany „Testowanie przywracania kopii zapasowej”KRYTYCZNE: Zawsze testuj czy kopia zapasowa działa:
# Weryfikuj zawartość archiwum tartar -tzf /backups/xoops_files_*.tar.gz | head -20
# Rozpakuj do lokalizacji testowejmkdir /tmp/restore_testcd /tmp/restore_testtar -xzf /backups/xoops_files_*.tar.gz
# Weryfikuj że kluczowe pliki istniejąls -la xoops/mainfile.phpls -la xoops/install/Krok 2: Włączenie trybu konserwacji
Dział zatytułowany „Krok 2: Włączenie trybu konserwacji”Uniemożliwić użytkownikom dostęp do witryny podczas aktualizacji:
Opcja 1: Panel administracyjny XOOPS
Dział zatytułowany „Opcja 1: Panel administracyjny XOOPS”- Zaloguj się do panelu administracyjnego
- Przejdź do System > Konserwacja
- Włącz “Tryb konserwacji witryny”
- Ustaw wiadomość konserwacji
- Zapisz
Opcja 2: Ręczny tryb konserwacji
Dział zatytułowany „Opcja 2: Ręczny tryb konserwacji”Utwórz plik konserwacji w katalogu głównym serwera WWW:
<!DOCTYPE html><html><head> <title>W konserwacji</title> <style> body { font-family: Arial; text-align: center; padding: 50px; } h1 { color: #333; } p { color: #666; margin: 20px 0; } </style></head><body> <h1>Witryna w konserwacji</h1> <p>Aktualnie uaktualniamy naszą witrynę.</p> <p>Przewidywany czas: około 30 minut.</p> <p>Dziękujemy za cierpliwość!</p></body></html>Skonfiguruj Apache do wyświetlenia strony konserwacji:
# W .htaccess lub konfiguracji vhostErrorDocument 503 /maintenance.html
# Przekieruj cały ruch na stronę konserwacji<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.100$ # Twój IP RewriteRule ^(.*)$ - [R=503,L]</IfModule>Krok 3: Pobieranie nowej wersji
Dział zatytułowany „Krok 3: Pobieranie nowej wersji”Pobierz XOOPS z oficjalnej witryny:
# Pobierz najnowszą wersjęcd /tmpwget https://xoops.org/download/xoops-2.5.8.zip
# Weryfikuj suma kontrolna (jeśli podana)sha256sum xoops-2.5.8.zip# Porównaj z oficjalnym hashem SHA256
# Rozpakuj do tymczasowej lokalizacjiunzip xoops-2.5.8.zipcd xoops-2.5.8Krok 4: Przygotowanie pliku przed aktualizacją
Dział zatytułowany „Krok 4: Przygotowanie pliku przed aktualizacją”Zidentyfikuj niestandardowe modyfikacje
Dział zatytułowany „Zidentyfikuj niestandardowe modyfikacje”Sprawdź czy są dostosowane pliki jądra:
# Szukaj zmodyfikowanych plików (pliki z nowszą mtime)find /var/www/html/xoops -type f -newer /var/www/html/xoops/install.php
# Sprawdzaj niestandardowe motywyls /var/www/html/xoops/themes/# Zanotuj niestandardowe motywy
# Sprawdzaj niestandardowe modułyls /var/www/html/xoops/modules/# Zanotuj niestandardowe moduły utworzone przez ciebieUdokumentuj bieżący stan
Dział zatytułowany „Udokumentuj bieżący stan”Utwórz raport aktualizacji:
cat > /tmp/upgrade_report.txt << EOF=== Raport aktualizacji XOOPS ===Data: $(date)Bieżąca wersja: 2.5.6Docelowa wersja: 2.5.8
=== Zainstalowane moduły ===$(ls /var/www/html/xoops/modules/)
=== Niestandardowe modyfikacje ===[Udokumentuj niestandardowe modyfikacje motywu lub modułu]
=== Motywy ===$(ls /var/www/html/xoops/themes/)
=== Stan wtyczki ===[Wylist niestandardowe modyfikacje kodu]
EOFKrok 5: Połączenie nowych plików z bieżącą instalacją
Dział zatytułowany „Krok 5: Połączenie nowych plików z bieżącą instalacją”Strategia: Zachowaj niestandardowe pliki
Dział zatytułowany „Strategia: Zachowaj niestandardowe pliki”Zastąp pliki jądra XOOPS, ale zachowaj:
mainfile.php(twoja konfiguracja bazy danych)- Niestandardowe motywy w
themes/ - Niestandardowe moduły w
modules/ - Przesłane przez użytkownika w
uploads/ - Dane witryny w
var/
Ręczny proces połączenia
Dział zatytułowany „Ręczny proces połączenia”# Ustaw zmienneXOOPS_OLD="/var/www/html/xoops"XOOPS_NEW="/tmp/xoops-2.5.8"BACKUP="/backups/pre-upgrade"
# Utwórz kopię zapasową przed aktualizacjąmkdir -p $BACKUPcp -r $XOOPS_OLD/* $BACKUP/
# Skopiuj nowe pliki (ale zachowaj wrażliwe pliki)# Skopiuj wszystko oprócz chronionych katalogówrsync -av --exclude='mainfile.php' \ --exclude='modules/custom*' \ --exclude='themes/custom*' \ --exclude='uploads' \ --exclude='var' \ --exclude='cache' \ --exclude='templates_c' \ $XOOPS_NEW/ $XOOPS_OLD/
# Weryfikuj że kluczowe pliki są zachowanels -la $XOOPS_OLD/mainfile.phpUżywanie upgrade.php (jeśli dostępny)
Dział zatytułowany „Używanie upgrade.php (jeśli dostępny)”Niektóre wersje XOOPS zawierają zautomatyzowany skrypt aktualizacji:
# Skopiuj nowe pliki z instalatoremcp -r /tmp/xoops-2.5.8/* /var/www/html/xoops/
# Uruchom kreatora aktualizacji# Odwiedź: http://twoja-domena.com/xoops/upgrade/Uprawnienia do pliku po połączeniu
Dział zatytułowany „Uprawnienia do pliku po połączeniu”Przywróć właściwe uprawnienia:
# Ustaw właścicielachown -R www-data:www-data /var/www/html/xoops
# Ustaw uprawnienia katalogówfind /var/www/html/xoops -type d -exec chmod 755 {} \;
# Ustaw uprawnienia plikufind /var/www/html/xoops -type f -exec chmod 644 {} \;
# Uczyń katalogi zapisywalnechmod 777 /var/www/html/xoops/cachechmod 777 /var/www/html/xoops/templates_cchmod 777 /var/www/html/xoops/uploadschmod 777 /var/www/html/xoops/var
# Zabezpiecz mainfile.phpchmod 644 /var/www/html/xoops/mainfile.phpKrok 6: Migracja bazy danych
Dział zatytułowany „Krok 6: Migracja bazy danych”Przejrzyj zmiany w bazie danych
Dział zatytułowany „Przejrzyj zmiany w bazie danych”Sprawdzaj informacje o wydaniu XOOPS dotyczące zmian struktury bazy danych:
# Wyodrębni i przejrzyj pliki migracji SQLfind /tmp/xoops-2.5.8 -name "*.sql" -type f# Udokumentuj wszystkie znalezione pliki .sqlUruchom aktualizacje bazy danych
Dział zatytułowany „Uruchom aktualizacje bazy danych”Opcja 1: Automatyczna aktualizacja (jeśli dostępna)
Dział zatytułowany „Opcja 1: Automatyczna aktualizacja (jeśli dostępna)”Używaj panelu administracyjnego:
- Zaloguj się do administracji
- Przejdź do System > Baza danych
- Kliknij “Sprawdzaj aktualizacje”
- Przejrzyj oczekujące zmiany
- Kliknij “Zastosuj aktualizacje”
Opcja 2: Ręczne aktualizacje bazy danych
Dział zatytułowany „Opcja 2: Ręczne aktualizacje bazy danych”Wykonaj migracyjne pliki SQL:
# Połącz się z bazą danychmysql -u xoops_user -p xoops_db
# Wyświetl oczekujące zmiany (różni się w zależności od wersji)SELECT * FROM xoops_config WHERE conf_name LIKE '%version%';
# Uruchom skrypty migracji ręcznie jeśli będzie to potrzebneSOURCE /tmp/xoops-2.5.8/migrate_2.5.6_to_2.5.8.sql;Weryfikacja bazy danych
Dział zatytułowany „Weryfikacja bazy danych”Weryfikuj integralność bazy danych po aktualizacji:
-- Sprawdź spójność bazy danychREPAIR TABLE xoops_users;OPTIMIZE TABLE xoops_users;
-- Weryfikuj że kluczowe tabele istniejąSHOW TABLES LIKE 'xoops_%';
-- Sprawdzaj liczę wierszy (powinna się zwiększyć lub pozostać ta sama)SELECT COUNT(*) FROM xoops_users;SELECT COUNT(*) FROM xoops_posts;Krok 7: Weryfikacja aktualizacji
Dział zatytułowany „Krok 7: Weryfikacja aktualizacji”Sprawdzenie strony głównej
Dział zatytułowany „Sprawdzenie strony głównej”Odwiedź stronę główną XOOPS:
http://twoja-domena.com/xoops/Oczekiwane: Strona ładuje się bez błędów, wyświetla się prawidłowo
Sprawdzenie panelu administracyjnego
Dział zatytułowany „Sprawdzenie panelu administracyjnego”Uzyskaj dostęp do administracji:
http://twoja-domena.com/xoops/admin/Weryfikuj:
- Panel administracyjny ładuje się
- Nawigacja działa
- Pulpit wyświetla się prawidłowo
- Brak błędów bazy danych w dziennikach
Weryfikacja modułu
Dział zatytułowany „Weryfikacja modułu”Sprawdzaj zainstalowane moduły:
- Przejdź do Moduły > Moduły w administracji
- Weryfikuj czy wszystkie moduły są nadal zainstalowane
- Sprawdzaj czy są jakieś komunikaty o błędach
- Włącz moduły, które były wyłączone
Sprawdzenie pliku dziennika
Dział zatytułowany „Sprawdzenie pliku dziennika”Przejrzyj dzienniki systemu w poszukiwaniu błędów:
# Sprawdzaj dziennik błędów serwera WWWtail -50 /var/log/apache2/error.log
# Sprawdzaj dziennik błędów PHPtail -50 /var/log/php_errors.log
# Sprawdzaj dziennik systemowy XOOPS (jeśli dostępny)# W panelu administracyjnym: System > DziennikiTestuj funkcje jądra
Dział zatytułowany „Testuj funkcje jądra”- Logowanie/wylogowanie użytkownika działa
- Rejestracja użytkownika działa
- Funkcje przesyłania plików
- Wysyłane powiadomienia e-mail
- Funkcjonalność wyszukiwania działa
- Funkcje administracyjne operacyjne
- Funkcjonalność modułu nienaruszony
Krok 8: Oczyszczanie po aktualizacji
Dział zatytułowany „Krok 8: Oczyszczanie po aktualizacji”Usuń tymczasowe pliki
Dział zatytułowany „Usuń tymczasowe pliki”# Usuń katalog ekstrakcjirm -rf /tmp/xoops-2.5.8
# Wyczyść pamięć podręczną szablonów (bezpieczne do usunięcia)rm -rf /var/www/html/xoops/templates_c/*
# Wyczyść pamięć podręczną witrynyrm -rf /var/www/html/xoops/cache/*Usuń tryb konserwacji
Dział zatytułowany „Usuń tryb konserwacji”Ponownie włącz normalny dostęp do witryny:
# Usuń przekierowanie trybu konserwacji z .htaccess# Lub usuń plik maintenance.htmlrm /var/www/html/maintenance.htmlAktualizuj dokumentację
Dział zatytułowany „Aktualizuj dokumentację”Zaktualizuj notatki aktualizacji:
# Udokumentuj pomyślną aktualizacjęcat >> /tmp/upgrade_report.txt << EOF
=== Wyniki aktualizacji ===Status: SUKCESData aktualizacji: $(date)Nowa wersja: 2.5.8Czas trwania: [czas w minutach]
Testy po aktualizacji:- [x] Strona główna ładuje się- [x] Panel administracyjny dostępny- [x] Moduły funkcjonalne- [x] Rejestracja użytkownika działa- [x] Baza danych zoptymalizowana
EOFRozwiązywanie problemów aktualizacji
Dział zatytułowany „Rozwiązywanie problemów aktualizacji”Problem: Biały pusty ekran po aktualizacji
Dział zatytułowany „Problem: Biały pusty ekran po aktualizacji”Symptom: Strona główna nic nie pokazuje
Rozwiązanie:
# Sprawdzaj błędy PHPtail -f /var/log/apache2/error.log
# Tymczasowo włącz tryb debugowaniaecho "define('XOOPS_DEBUG', 1);" >> /var/www/html/xoops/mainfile.php
# Sprawdzaj uprawnienia do plikuls -la /var/www/html/xoops/mainfile.php
# Przywróć z kopii zapasowej jeśli będzie to potrzebnecp /backups/xoops_files_*.tar.gz /tmp/cd /tmp && tar -xzf xoops_files_*.tar.gzProblem: Błąd połączenia z bazą danych
Dział zatytułowany „Problem: Błąd połączenia z bazą danych”Symptom: Wiadomość “Nie można połączyć się z serwerem bazy danych”
Rozwiązanie:
# Weryfikuj poświadczenia bazy danych w mainfile.phpgrep -i "database\|host\|user" /var/www/html/xoops/mainfile.php
# Testuj połączeniemysql -h localhost -u xoops_user -p xoops_db -e "SELECT 1"
# Sprawdzaj status MySQLsystemctl status mysql
# Weryfikuj że baza danych nadal istniejemysql -u xoops_user -p -e "SHOW DATABASES" | grep xoopsProblem: Panel administracyjny niedostępny
Dział zatytułowany „Problem: Panel administracyjny niedostępny”Symptom: Nie można uzyskać dostępu do /xoops/admin/
Rozwiązanie:
# Sprawdzaj reguły .htaccesscat /var/www/html/xoops/.htaccess
# Weryfikuj że pliki administracyjne istniejąls -la /var/www/html/xoops/admin/
# Sprawdzaj czy mod_rewrite jest włączonyapache2ctl -M | grep rewrite
# Zrestartuj serwer WWWsystemctl restart apache2Problem: Moduły się nie ładują
Dział zatytułowany „Problem: Moduły się nie ładują”Symptom: Moduły pokazują błędy lub są dezaktywowane
Rozwiązanie:
# Weryfikuj że pliki modułu istniejąls /var/www/html/xoops/modules/
# Sprawdzaj uprawnienia modułuls -la /var/www/html/xoops/modules/*/
# Sprawdzaj konfigurację modułu w bazie danychmysql -u xoops_user -p xoops_db -e "SELECT * FROM xoops_modules WHERE module_status = 0"
# Ponownie aktywuj moduły w panelu administracyjnym# System > Moduły > Kliknij moduł > Aktualizuj statusProblem: Błędy odmowy dostępu
Dział zatytułowany „Problem: Błędy odmowy dostępu”Symptom: “Odmowa dostępu” podczas przesyłania lub zapisywania
Rozwiązanie:
# Sprawdzaj właściciela plikuls -la /var/www/html/xoops/ | head -20
# Napraw właścicielachown -R www-data:www-data /var/www/html/xoops
# Napraw uprawnienia katalogufind /var/www/html/xoops -type d -exec chmod 755 {} \;
# Uczyń pamięć podręczną/przesłania zapisywalnechmod 777 /var/www/html/xoops/cachechmod 777 /var/www/html/xoops/templates_cchmod 777 /var/www/html/xoops/uploadschmod 777 /var/www/html/xoops/varProblem: Powolne ładowanie strony
Dział zatytułowany „Problem: Powolne ładowanie strony”Symptom: Strony ładują się bardzo powoli po aktualizacji
Rozwiązanie:
# Wyczyść wszystkie pamięci podręcznerm -rf /var/www/html/xoops/cache/*rm -rf /var/www/html/xoops/templates_c/*
# Zoptymalizuj bazę danychmysql -u xoops_user -p xoops_db << EOFOPTIMIZE TABLE xoops_users;OPTIMIZE TABLE xoops_posts;OPTIMIZE TABLE xoops_config;ANALYZE TABLE xoops_users;EOF
# Sprawdzaj dziennik błędów PHP w poszukiwaniu ostrzeżeńgrep -i "deprecated\|warning" /var/log/php_errors.log | tail -20
# Tymczasowo zwiększ pamięć PHP/czas wykonywania# Edytuj php.ini:memory_limit = 256Mmax_execution_time = 300Procedura przywracania
Dział zatytułowany „Procedura przywracania”Jeśli aktualizacja się krytycznie nie powiedzie, przywróć z kopii zapasowej:
Przywróć bazę danych
Dział zatytułowany „Przywróć bazę danych”# Przywróć z kopii zapasowejmysql -u xoops_user -p xoops_db < /backups/xoops_db_backup_YYYYMMDD_HHMMSS.sql
# Lub ze skompresowanej kopii zapasowejgunzip < /backups/xoops_db_backup_YYYYMMDD_HHMMSS.sql.gz | mysql -u xoops_user -p xoops_db
# Weryfikuj przywracaniemysql -u xoops_user -p xoops_db -e "SELECT COUNT(*) FROM xoops_users"Przywróć system plików
Dział zatytułowany „Przywróć system plików”# Zatrzymaj serwer WWWsystemctl stop apache2
# Usuń bieżącą instalacjęrm -rf /var/www/html/xoops/*
# Rozpakuj kopię zapasowącd /var/www/htmltar -xzf /backups/xoops_files_YYYYMMDD_HHMMSS.tar.gz
# Napraw uprawnieniachown -R www-data:www-data xoops/find xoops -type d -exec chmod 755 {} \;find xoops -type f -exec chmod 644 {} \;chmod 777 xoops/cache xoops/templates_c xoops/uploads xoops/var
# Uruchom serwer WWWsystemctl start apache2
# Weryfikuj przywracanie# Odwiedź http://twoja-domena.com/xoops/Lista kontrolna weryfikacji aktualizacji
Dział zatytułowany „Lista kontrolna weryfikacji aktualizacji”Po ukończeniu aktualizacji zweryfikuj:
- Wersja XOOPS zaktualizowana (sprawdzaj administracja > Informacje systemowe)
- Strona główna ładuje się bez błędów
- Wszystkie moduły funkcjonalne
- Logowanie użytkownika działa
- Panel administracyjny dostępny
- Przesłania plików działają
- Powiadomienia e-mail funkcjonalne
- Integralność bazy danych weryfikowana
- Uprawnienia do pliku prawidłowe
- Tryb konserwacji usunięty
- Kopie zapasowe zabezpieczone i przetestowane
- Wydajność akceptowalna
- SSL/HTTPS działa
- Brak komunikatów o błędach w dziennikach
Następne kroki
Dział zatytułowany „Następne kroki”Po pomyślnej aktualizacji:
- Zaktualizuj wszelkie niestandardowe moduły do najnowszych wersji
- Przejrzyj informacje o wydaniu dla przestarzałych funkcji
- Rozważ optymalizację wydajności
- Zaktualizuj ustawienia bezpieczeństwa
- Dokładnie testuj wszystkie funkcje
- Zachowaj pliki kopii zapasowych bezpiecznie
Tagi: #aktualizacja #konserwacja #kopia-zapasowa #migracja-bazy-danych
Powiązane artykuły:
- ../../06-Publisher-Module/User-Guide/Installation
- Server-Requirements
- ../Configuration/Basic-Configuration
- ../Configuration/Security-Configuration