2026-09-15T18:47:10.405148+00:00 · Konto tenant-a
2 typów zdarzeń · 2 rozpoznań
Raport nie wykonał napraw. Brak błędów nie jest dowodem sprawności witryny.
SHA-256 planu:7adfdfb92ac0c90f59a818c6a3ca50e8af53cd5d0ee4c9f6e3354796ad4c6d63Rozpoznany objaw wymaga rozróżnienia hipotez. Rozbudowana procedura jest w sekcji offline raportu i poleceniu triage.
Rozpoznany objaw wymaga rozróżnienia hipotez. Rozbudowana procedura jest w sekcji offline raportu i poleceniu triage.
# fixplesk — diagnostyka różnicowa bez LLM Domena: site.example.test; konto: tenant-a. Sieć: 0. Procesy: 0. Zmiany: 0. Walidacja serwera: NIE WYKONANO. Objaw wybiera procedurę, nie zmianę. Brak dowodu to UNKNOWN, nie FALSE. SUPPORTED potwierdza warunki zadeklarowane w pliku, nie prawdę o serwerze. Brak dopasowań nie potwierdza zdrowia. Analizator nie przyznaje uprawnień. ## document_root — Docroot, File Manager i brakujący katalog Rozróżnij nieprawidłowe mapowanie, usunięte pliki, brak mountu i odmowę dostępu. Zmiana ścieżki nie odtworzy danych. Objawy: DOCROOT_NOT_FOUND ### Krok 1: Ustal obiekt Powiąż domenę z typem Plesk, kontem, subskrypcją i parent. Zapisz obecny document_root. Walidacja: Pozytywna identyfikacja i poprzednia wartość do rollbacku. Gdy nie działa: STOP przy niejednoznacznym obiekcie lub braku dostępu. ### Krok 2: Sprawdź system plików Sprawdź mount, aktualny docroot, realpath, właściciela i ACL. Szukaj tylko w dozwolonej subskrypcji. Walidacja: Rozróżnienie ENOENT, permission denied i brakującego mountu. Gdy nie działa: Nie twórz pustego katalogu, który zamaskuje brak mountu. ### Krok 3: Powiąż instalację Porównaj index.php, core, mapę Toolkit i URL. wp-config.php może być katalog wyżej; core w podkatalogu. Walidacja: Jedyny zgodny kandydat, bez ujawniania katalogu nadrzędnego z sekretami. Gdy nie działa: Wiele instalacji lub nietypowy layout: ręczny przegląd; nie wybieraj pierwszej. ### Krok 4: Zabezpiecz punkt powrotu Zachowaj poprzednią konfigurację, wyniki odczytów, zakres i kopię adekwatną do zmiany. Uzgodnij timeout i kryterium sukcesu. Walidacja: Możliwość odtworzenia, a nie samo istnienie ZIP; obowiązują blokady i zgoda operatora. Gdy nie działa: STOP przed zapisem przy braku kopii, zgody lub możliwości weryfikacji. ### Krok 5: Zmień jedynie mapowanie Po weryfikacji lokalnej pomocy przedstaw site/subdomain --update z -www-root względnym do root subskrypcji. Nie przenoś plików. Walidacja: Docroot wskazuje zatwierdzony katalog; nie restartuj automatycznie FPM. Gdy nie działa: Przy timeout nie zakładaj, że zmiana nie zaszła. Odczytaj stan po zakończeniu procesu. ### Krok 6: Sprawdź rezultat i sąsiadów Powtórz odczyt zmienionego parametru, kontrolę HTTPS i analizę nowych logów. Oceń inne domeny współdzielące komponent. Walidacja: Oczekiwany stan konfiguracji oraz funkcjonalność; kod 0 procesu nie wystarcza. Gdy nie działa: Znany błąd: cofaj tylko uzgodniony zakres. Timeout: needs_recovery, bez automatycznego retry. ### Hipoteza: Katalog istnieje, ale jest niedostępny [needs_evidence] Uzasadnienie: Istnienie i dostęp to różne warunki. paths.current_exists: UNKNOWN; wymagane True; wynik missing; źródła: brak. paths.access_ok: UNKNOWN; wymagane False; wynik missing; źródła: brak. Warunkowa naprawa (bez wykonania): Przejdź do runbooka permissions; docroot pozostaw bez zmiany. Rollback: Nie ma zaplanowanego zapisu; brak rollbacku. Nowa zmiana wymaga własnego preimage, walidacji i zatwierdzenia. STOP: Nie wykonuj kolejnej zmiany przy nieznanym wyniku, konflikcie lub pogorszeniu innego tenanta. Zachowaj dziennik i uzgodnij stan. ### Hipoteza: Plesk wskazuje nieistniejący katalog, właściwa instalacja istnieje [needs_evidence] Uzasadnienie: Dowody odróżniają złe mapowanie od utraty plików i granic uprawnień. identity.confirmed: UNKNOWN; wymagane True; wynik missing; źródła: brak. cli.www_root_supported: UNKNOWN; wymagane True; wynik missing; źródła: brak. paths.current_exists: UNKNOWN; wymagane False; wynik missing; źródła: brak. paths.candidate_unique: UNKNOWN; wymagane True; wynik missing; źródła: brak. paths.inside_subscription: UNKNOWN; wymagane True; wynik missing; źródła: brak. paths.wp_layout_confirmed: UNKNOWN; wymagane True; wynik missing; źródła: brak. paths.access_ok: UNKNOWN; wymagane True; wynik missing; źródła: brak. storage.mount_healthy: UNKNOWN; wymagane True; wynik missing; źródła: brak. Warunkowa naprawa (bez wykonania): Przedstaw pojedynczą zmianę docroot za pomocą docroot-plan; wykonanie pozostaje ręczne w tej wersji. Rollback: Odczytaj bieżącą wartość. Jeśli nadal równa planowanej i proces zakończony, przywróć poprzednią wartość tym samym interfejsem. Nie usuwaj plików ani nowych katalogów. Sprawdź zdrowie niezależnie od odtworzenia parametru. STOP: Nie wykonuj kolejnej zmiany przy nieznanym wyniku, konflikcie lub pogorszeniu innego tenanta. Zachowaj dziennik i uzgodnij stan. ### Hipoteza: Nie znaleziono jednoznacznej instalacji [needs_evidence] Uzasadnienie: Nie ma dowodu, że przestawienie wskaźnika przywróci witrynę. paths.current_exists: UNKNOWN; wymagane False; wynik missing; źródła: brak. paths.candidate_unique: UNKNOWN; wymagane False; wynik missing; źródła: brak. storage.mount_healthy: UNKNOWN; wymagane True; wynik missing; źródła: brak. Warunkowa naprawa (bez wykonania): Wyjaśnij usunięcie/migrację/staging; odtworzenie dopiero z właściwej kopii. Rollback: Restore może nadpisać nowsze dane: przed nim zrób osobny punkt powrotu i uzgodnij okno. STOP: Nie wykonuj kolejnej zmiany przy nieznanym wyniku, konflikcie lub pogorszeniu innego tenanta. Zachowaj dziennik i uzgodnij stan. ### Hipoteza: Nie ma właściwego mountu lub jest uszkodzony [needs_evidence] Uzasadnienie: Zmiana docroot mogłaby ukryć problem z wolumenem i zapisywać dane w złym miejscu. storage.mount_healthy: UNKNOWN; wymagane False; wynik missing; źródła: brak. Warunkowa naprawa (bez wykonania): Zatrzymaj zmiany aplikacji; napraw warstwę storage zgodnie z procedurą operatora. Rollback: Nie ma zaplanowanego zapisu; brak rollbacku. Nowa zmiana wymaga własnego preimage, walidacji i zatwierdzenia. STOP: STOP przy błędach I/O; nie wykonuj mkdir/chown jako naprawy. Zabronione skróty: Wybór root wyłącznie po wp-config.php; Ścieżka innego tenanta lub symlink poza subskrypcję; Automatyczny restart wszystkich usług; Ręczna edycja bazy Plesk Referencje katalogu: plesk_docs.site_cli, plesk_docs.subdomain_cli, wordpress_docs.hardening, wordpress_docs.own_directory ## plesk_cli_syntax — Odrzucona opcja CLI Plesk Błąd parsera CLI jest problemem składni/wersji lub wybranego narzędzia, nie dowodem uszkodzenia WordPress. Objawy: PLESK_CLI_UNKNOWN_OPTION ### Krok 1: Zachowaj błąd Odczytaj stderr, exit code, wersję i dokładne argumenty poprzedniego wywołania. Walidacja: Odrzucona opcja i brak pomylenia błędu uprawnień. Gdy nie działa: Nie próbuj kolejnych opcji przez zapisy. ### Krok 2: Ustal tożsamość i możliwości Odczytaj site/subdomain --help oraz --info. Rozpoznaj obiekt pozytywnie, bez wnioskowania z nieudanego domain --info. Walidacja: Potwierdzony typ/parent i token -www-root. Gdy nie działa: UNKNOWN oznacza procedurę ręczną lub eskalację do administratora. ### Krok 3: Zbuduj plan dla właściwego interfejsu Użyj docroot-plan. Dla subdomain wymagaj nazwy względnej, -domain i ścieżki względnej do subskrypcji. Walidacja: Przedstawiony argv, bez shell i bez --httpdocs/--docroot/--hgroup. Gdy nie działa: Brak potwierdzenia składni blokuje propozycję zapisu. ### Krok 4: Zabezpiecz punkt powrotu Zachowaj poprzednią konfigurację, wyniki odczytów, zakres i kopię adekwatną do zmiany. Uzgodnij timeout i kryterium sukcesu. Walidacja: Możliwość odtworzenia, a nie samo istnienie ZIP; obowiązują blokady i zgoda operatora. Gdy nie działa: STOP przed zapisem przy braku kopii, zgody lub możliwości weryfikacji. ### Krok 5: Sprawdź rezultat i sąsiadów Powtórz odczyt zmienionego parametru, kontrolę HTTPS i analizę nowych logów. Oceń inne domeny współdzielące komponent. Walidacja: Oczekiwany stan konfiguracji oraz funkcjonalność; kod 0 procesu nie wystarcza. Gdy nie działa: Znany błąd: cofaj tylko uzgodniony zakres. Timeout: needs_recovery, bez automatycznego retry. ### Hipoteza: To błąd dostępu, nie klasyfikacji domeny [needs_evidence] Uzasadnienie: Odmowa dostępu nie mówi, czy obiekt jest domeną czy subdomeną. cli.access_ok: UNKNOWN; wymagane False; wynik missing; źródła: brak. Warunkowa naprawa (bez wykonania): Przekaż uprawnionemu operatorowi zadanie odczytu w wymaganym zakresie. Rollback: Nie ma zaplanowanego zapisu; brak rollbacku. Nowa zmiana wymaga własnego preimage, walidacji i zatwierdzenia. STOP: Nie eskaluj konta ani nie pomijaj kontroli zakresu. ### Hipoteza: Użyto nieobsługiwanej opcji [needs_evidence] Uzasadnienie: Pozytywna pomoc wskazuje obsługiwany interfejs; nie wymaga LLM. cli.option_rejected: UNKNOWN; wymagane True; wynik missing; źródła: brak. cli.www_root_supported: UNKNOWN; wymagane True; wynik missing; źródła: brak. identity.confirmed: UNKNOWN; wymagane True; wynik missing; źródła: brak. Warunkowa naprawa (bez wykonania): Zastąp błędną składnię planem -www-root dopiero po audycie docroot; nie wykonuj korekty w pętli retry. Rollback: Nie ma zaplanowanego zapisu; brak rollbacku. Nowa zmiana wymaga własnego preimage, walidacji i zatwierdzenia. STOP: Nie wykonuj kolejnej zmiany przy nieznanym wyniku, konflikcie lub pogorszeniu innego tenanta. Zachowaj dziennik i uzgodnij stan. Zabronione skróty: Zgadywanie --httpdocs lub --hgroup; Wnioskowanie typu obiektu wyłącznie z błędu domain --info; Próbne zapisy w celu wykrycia opcji Referencje katalogu: plesk_docs.site_cli, plesk_docs.subdomain_cli ## Następne odczyty, bez dublowania 1. Czy skonfigurowany docroot istnieje? [unknown] Sprawdź dokładny document_root z Plesk przez stat/readlink jako administrator oraz możliwość przejścia po katalogach jako użytkownik witryny. Oczekiwany dowód: Istnienie katalogu to osobny fakt od prawa jego odczytu. Dotyczy 3 hipotez; koszt względny 1/10. 2. Czy lokalna pomoc dokumentuje -www-root? [unknown] Zachowaj plesk bin site --help oraz plesk bin subdomain --help. Użyj capability-check; żadnego próbnego zapisu. Oczekiwany dowód: Osobny token --update albo -u oraz -www-root, a dla subdomain również -domain; zgodność z danym narzędziem. Dotyczy 2 hipotez; koszt względny 1/10. 3. Czy potwierdzono obiekt Plesk i jego zakres? [unknown] Odczytaj site/subdomain --info oraz metadane właściciela i subskrypcji z uprawnionego API/panelu. Zapisz kod wyjścia; błędy dostępu i timeout traktuj oddzielnie od braku obiektu. Oczekiwany dowód: Dokładna domena, typ obiektu, parent, konto, subskrypcja i źródło pozytywnej identyfikacji. Dotyczy 2 hipotez; koszt względny 1/10. 4. Czy użytkownik puli i serwera może odczytać katalog? [unknown] Sprawdź namei/stat, UID/GID, ACL i polityki MAC na dokładnej ścieżce. Nie używaj chmod 777. Oczekiwany dowód: Możliwe przejście przez rodziców i odczyt wymaganych plików. Dotyczy 2 hipotez; koszt względny 1/10. 5. Czy właściwy mount jest obecny i zapisywalny? [unknown] Sprawdź mount, read-only, błędy I/O oraz stan wolumenu przed mkdir lub restore. Oczekiwany dowód: Brak zaginionego mountu i błędów urządzenia. Dotyczy 3 hipotez; koszt względny 2/10. 6. Czy znaleziono dokładnie jeden właściwy katalog witryny? [unknown] Przeszukaj wyłącznie zatwierdzony katalog subskrypcji. Zestaw pliki core, Toolkit instance ID i site URL; uwzględnij staging. Oczekiwany dowód: Jedna jednoznacznie związana z domeną instalacja; nie wybieraj pierwszego wyniku find. Dotyczy 2 hipotez; koszt względny 2/10. 7. Czy docelowa ścieżka i jej realpath pozostają w subskrypcji? [unknown] Porównaj komponenty ścieżki i wynik readlink -e/realpath. Sprawdź symlinki i tożsamość właściciela. Oczekiwany dowód: Brak wyjścia poza root, traversal i wskazania innego tenanta. Dotyczy 1 hipotez; koszt względny 1/10. 8. Czy potwierdzono układ WordPress i wejście index.php? [unknown] Sprawdź wp-load.php, wp-settings.php, wp-admin, wp-includes/version.php i index.php bez uruchamiania PHP. wp-config.php może być wyżej; core może leżeć w podkatalogu. Oczekiwany dowód: Powiązanie wejścia HTTP z instalacją core; sam wp-config.php nie wystarcza. Dotyczy 1 hipotez; koszt względny 2/10. 9. Czy konto ma dostęp do odczytu Plesk? [unknown] Sprawdź kod wyniku polecenia informacyjnego i zgodność roli. Nie zmieniaj roli automatycznie. Oczekiwany dowód: Odczyt zaakceptowany; permission denied nie jest not found. Dotyczy 1 hipotez; koszt względny 1/10. 10. Czy poprzednia komenda rzeczywiście odrzuciła opcję? [unknown] Sprawdź stderr i exit code konkretnego wywołania. Zachowaj argumenty bez haseł. Oczekiwany dowód: Unknown/unrecognized option odnoszące się do opcji polecenia, nie wyjątek aplikacji. Dotyczy 1 hipotez; koszt względny 1/10.
Obecność odsyłacza nie oznacza pobrania dokumentu.