Remediați pagina goală / ecranul alb al morții din ownCloud: Alegeți calea de recuperare corectă

Începeți prin a decide ce fel de pagină goală aveți de fapt

Un „ecran alb al morții” din ownCloud este un simptom, nu un diagnostic. Cea mai bună soluție depinde de faptul dacă browserul a primit o eroare de server, a primit HTML valid, dar nu a reușit să încarce JavaScript sau CSS, sau a ajuns la un proxy invers care nu a putut ajunge deloc la ownCloud.

Această distincție este importantă deoarece compromisurile sunt foarte diferite. Dezactivarea unei aplicații terțe prezintă un risc relativ scăzut atunci când o excepție PHP denumește aplicația respectivă. Schimbarea proprietarului fișierului pe întreaga instalare este mult mai invazivă și nu ar trebui să fie primul răspuns la o eroare JavaScript. De asemenea, repornirea fiecărui serviciu poate ascunde pentru scurt timp o problemă fără a vă spune dacă provine de la PHP, un proxy, o actualizare sau o aplicație.

Acest ghid prezintă ownCloud Classic. Conform documentației actuale ownCloud Classic 11, versiunea 11 este acceptată ca implementare bazată pe Docker, cu sistemul de operare, runtime-ul PHP, baza de date și Apache în containerele furnizate de ownCloud. Instalările 10.x mai vechi pot utiliza în continuare un server web tradițional și un layout PHP-FPM. Utilizați ramura de comandă care corespunde implementării dvs. Consultați cerințele de sistem pentru ownCloud Classic 11 .

1. Pagina goală returnează HTTP 500 sau browserul eșuează după HTTP 200?

Deschideți instrumentele pentru dezvoltatori din browser și inspectați ambele file, Rețea și Consolă . Testați și endpoint-ul dintr-un terminal:

curl -I https://cloud.example.com/
curl -sS -o /dev/null -w '%{http_code}\n' https://cloud.example.com/
Instrumentele pentru dezvoltatori de browser afișează o solicitare de pagină ownCloud care returnează HTTP 500 în timp ce resursele statice sunt vizibile în lista de rețele

Legendă: Un răspuns 500 pe partea de server indică spre ownCloud, PHP, baza de date sau stiva web, mai degrabă decât spre o simplă problemă de randare a browserului.

Dacă documentul principal returnează 500 sau 502/503 , acordați prioritate jurnalelor de server și proxy. Dacă documentul principal returnează 200 , dar pachetele JavaScript eșuează cu excepții 404, 403 sau de script, acordați prioritate căilor de resurse, rescrierea reverse-proxy, temelor, memoriei cache sau compatibilității aplicațiilor. Dacă este afectat un singur browser, testați o fereastră privată și un alt browser acceptat înainte de a schimba serverul.

2. Problema a apărut după o actualizare ownCloud sau PHP?

Aceasta este una dintre cele mai importante întrebări, deoarece poate restrânge imediat domeniul erorilor. Notele de lansare actuale ale ownCloud precizează că ownCloud Classic 11 a ridicat versiunea minimă PHP la PHP 8.3, iar ownCloud Classic 11 este disponibil doar pentru Docker. O instalare ownCloud 10.x veche respectă reguli de compatibilitate PHP diferite, așa că nu copiați sfaturile PHP dintr-o altă versiune majoră.

Pentru o instalare tradițională ownCloud 10.x, executați comanda din directorul ownCloud:

sudo -u www-data ./occ status
php -v

Pentru ownCloud Classic 11, rulați OCC prin implementarea Compose:

docker compose exec owncloud occ status
docker compose exec owncloud php -v
Terminal care afișează starea ownCloud și verificările versiunii PHP, ilustrând modul în care este verificată compatibilitatea versiunilor în timpul depanării erorilor de tip „pagină goală”

Legendă: Verificarea versiunilor instalate de ownCloud și PHP este deosebit de importantă atunci când ecranul alb a apărut imediat după o actualizare.

Comparați rezultatul cu notele de lansare pentru versiunea pe care o utilizați efectiv. Notele oficiale de lansare de la ownCloud sunt sursa corectă pentru versiunile minime actuale și modificările importante. O versiune inferioară nu este o soluție generică sigură: documentația ownCloud avertizează că downgrade-ul nu este acceptat deoarece poate corupe datele.

3. Care jurnal îți dă prima eroare concretă?

Jurnalele sunt de obicei mai utile decât modificările de configurație prin încercări și erori. Manualul de administrare ownCloud recomandă jurnalul ownCloud pentru diagnosticarea problemelor; în mod implicit, jurnalul este stocat în directorul de date configurat, cu excepția cazului în care logfileeste setat un alt parametru.

Într-o instalație tradițională, exemplele includ:

tail -n 100 /path/to/owncloud/data/owncloud.log
journalctl -u php-fpm --since "15 minutes ago"
journalctl -u apache2 --since "15 minutes ago"
journalctl -u nginx --since "15 minutes ago"

Pe ownCloud Classic 11, inspectați în schimb serviciile Compose:

docker compose logs --tail=200 owncloud
docker compose ps
Terminal care afișează intrări în jurnalul de erori ownCloud și PHP cu o excepție fatală de aplicație și o urmărire a stivei

Legendă: O eroare fatală PHP sau o urmărire a stivei care denumește o aplicație sau o clasă oferă o țintă de depanare mult mai sigură decât modificarea setărilor serverului fără legătură.

Căutați prima excepție fatală în urma solicitării eșuate, nu doar cascada finală de erori. Categoriile comune includ o clasă PHP lipsă, o aplicație incompatibilă, o eroare de conexiune la baza de date, o configurație ilizibilă, fișiere de cod lipsă sau o excepție în timpul unei actualizări neterminate.

Documentația de înregistrare în jurnal a ownCloud precizează că înregistrarea în jurnal DEBUG poate fi utilă în timpul diagnosticării, dar produce un rezultat substanțial și poate afecta performanța. Dacă creșteți temporar nivelul de înregistrare în jurnal, reveniți la o valoare mai puțin detaliată după colectarea dovezilor. Consultați configurația de înregistrare în jurnal a ownCloud .

4. Ar trebui să dezactivezi o aplicație terță parte?

Alegeți această cale atunci când eroarea denumește o aplicație non-core, când pagina goală a început după instalarea sau actualizarea unei aplicații sau când eroarea a apărut în timpul unei actualizări ownCloud. Ghidul de depanare ownCloud recomandă în mod explicit dezactivarea aplicațiilor terțe pentru depanare și înainte de actualizări.

Enumerați aplicațiile mai întâi. Pe ownCloud 10.x:

sudo -u www-data ./occ app:list
sudo -u www-data ./occ app:disable APP_ID

Pe ownCloud 11:

docker compose exec owncloud occ app:list
docker compose exec owncloud occ app:disable APP_ID
Terminal care afișează o listă de aplicații ownCloud și o aplicație personalizată suspectă a fi dezactivată cu OCC

Legendă: Dezactivarea doar a aplicației implicate de jurnale este mai puțin perturbătoare decât dezactivarea mai multor componente sau modificarea întregului web stack.

Compromisul este funcționalitatea: utilizatorii pierd aplicația respectivă până când aceasta este actualizată sau reactivată. Acest lucru este de obicei preferabil dezactivării serviciilor de bază ownCloud. Documentația OCC menționează, de asemenea, că mai multe aplicații de bază nu pot fi dezactivate, inclusiv DAV, FederatedFileSharing, Files și Files_External. Consultați ghidul oficial general de depanare și referința comenzilor OCC .

5. Când merită să fie remediate permisiunile?

Permisiunile sunt o suspiciunea puternică atunci când jurnalul conține Permission deniedfișiere de aplicație/configurare copiate de o implementare recentă cu utilizatorul greșit sau fișiere înlocuite de un upgrade cu proprietar incorect. Sunt o suspiciunea slabă atunci când singura dovadă este o eroare JavaScript din partea browserului.

Puneți sistemul în modul de întreținere înainte de efectuarea unor reparații care nu vă permit să le reparați. Pentru ownCloud 11:

docker compose exec owncloud occ maintenance:mode --on

Pentru o implementare tradițională 10.x:

sudo -u www-data ./occ maintenance:mode --on
Terminalul afișează modul de întreținere ownCloud activat și verificările de proprietate asupra directoarelor de configurare și aplicație

Legendă: Modul de întreținere reduce activitatea utilizatorilor în timp ce investigați erorile de proprietate sau de permisiuni ale fișierelor care sunt deja susținute de dovezile din jurnal.

Nu rulați chmod 777rețete generale de permisiuni recursive sau de copiere dintr-o versiune fără legătură. Manualul actual ownCloud 11 documentează proprietatea și modurile specifice pentru fișierele adăugate manual în directoarele montate pe Docker appsși : ownership , app files , app directores și fișierele de configurare adăugate . De asemenea, documentează și pentru cele modificate manual și . Folosiți documentația de actualizare manuală ownCloud 11 ca referință specifică versiunii.configwww-data:root0644075106440640.htaccess.user.ini

6. Ar trebui să modificați modulele PHP, OPcache-ul sau setările de memorie?

Numai atunci când jurnalele sau verificările de compatibilitate indică acolo. Această cale are o rază de declanșare mai mare decât dezactivarea unei aplicații defecte. O extensie PHP obligatorie lipsă poate împiedica rularea codului, în timp ce o configurație PHP incorectă poate afecta fiecare aplicație PHP de pe gazdă.

Pentru o stivă PHP moștenită gestionată de gazdă, verificați ce încarcă de fapt runtime-ul web:

php -m
php --ini
php -r 'phpinfo();' | grep opcache.enable
Terminal care afișează module PHP, starea OPcache și verificările versiunii PHP în timpul depanării ownCloud

Legendă: Verificările modulelor PHP și OPcache sunt utile atunci când jurnalele serverului denumesc extensii lipsă sau incompatibilitate la runtime, dar nu ar trebui să fie prima modificare fără dovezi.

Pentru ownCloud 11, imaginea oficială gestionează runtime-ul PHP, așadar schimbarea pachetelor PHP gazdă este, în general, stratul greșit. ownCloud documentează OPcache ca fiind activat în mod implicit în imaginea sa Docker. Consultați documentația ownCloud pentru memorarea în cache a memoriei .

Dacă suspectați existența unui OPcache învechit după înlocuirea manuală a fișierelor PHP pe o instalare veche, repornirea PHP-FPM sau a serviciului web/PHP relevant poate goli memoria cache a codului de operare local al procesului. Compromisul este o scurtă întrerupere și performanța cold-cache ulterioară. Faceți acest lucru după corectarea fișierelor subiacente, nu ca un substitut pentru identificarea erorii.

7. A fost întreruptă o actualizare sau fișierele de bază sunt inconsistente?

Dacă pagina albă a apărut în timpul sau imediat după o actualizare, verificați mai întâi starea actualizării. Documentația proprie de actualizare a ownCloud recomandă utilizarea OCC pentru calea de actualizare și reparare, în loc să manipulați manual baza de date.

Pentru ownCloud 11:

docker compose exec owncloud occ status
docker compose exec owncloud occ upgrade
docker compose exec owncloud occ maintenance:repair
docker compose exec owncloud occ integrity:check-core

Pentru ownCloud 10.x, utilizați comenzile OCC echivalente sub utilizatorul serverului web:

sudo -u www-data ./occ status
sudo -u www-data ./occ maintenance:repair
sudo -u www-data ./occ integrity:check-core
Terminalul afișează o rulare a reparației de întreținere ownCloud urmată de dezactivarea modului de întreținere

Legendă: Repararea OCC este potrivită pentru o actualizare întreruptă sau inconsistentă, în timp ce verificările de integritate pot identifica fișiere de bază semnate modificate sau lipsă.

Rezultatele privind integritatea codului necesită interpretare. Documentele ownCloud INVALID_HASH, FILE_MISSING, și EXTRA_FILEca condiții distincte. Nu editați signature.jsonpentru a face avertismentele să dispară. Documentația actuală ownCloud 11 impune, de asemenea, semnarea aplicațiilor terțe pentru instalare, actualizări și activare. Consultați documentația de semnare a codului ownCloud .

8. Cum ar trebui să verificați remedierea?

O recuperare bună nu înseamnă doar „pagina nu mai este albă”. Verificați întreaga cale a solicitării:

  • Pagina principală ownCloud returnează starea HTTP așteptată în loc de 500/502/503.
  • Instrumentele pentru dezvoltatorii de browsere nu afișează nicio eroare JavaScript fatală recurentă sau lipsă a unui pachet principal.
  • Jurnalul ownCloud nu înregistrează imediat o nouă excepție fatală pentru aceeași solicitare.
  • occ statusraportează o instanță instalată și nicio cerință de upgrade neașteptată.
  • Modul de întreținere este dezactivat după finalizarea întreținerii.
  • Un utilizator de test se poate conecta și deschide pagina Fișiere.

Pentru ownCloud 11:

docker compose exec owncloud occ maintenance:mode --off
docker compose exec owncloud occ status
curl -I https://cloud.example.com/
Browser care afișează încărcarea interfeței ownCloud Files în timp ce cererile de rețea returnează rapoarte de stare HTTP 200 și OCC, modul de întreținere dezactivat

Legendă: Recuperarea ar trebui confirmată la ambele niveluri: interfața ownCloud se încarcă, iar starea serverului și verificările HTTP rămân sănătoase.

Care soluție oferă cel mai bun compromis risc-beneficiu?

Dovezi pe care le avețiCea mai bună primă alegereCompromis
Doar un browser afișează pagina goalăFereastră privată, al doilea browser acceptat, consolă de browserCel mai mic risc; nu rezolvă o eroare reală a serverului dacă toți utilizatorii sunt afectați
Documentul principal este HTTP 500jurnalele ownCloud, PHP/container, server web și bază de dateCea mai rapidă cale către cauza principală; necesită acces la jurnalul shell-ului sau al platformei
Eroarea denumește o aplicație terță parteDezactivează doar aplicația respectivă cu OCCDe obicei, risc operațional scăzut, dar funcționalitatea aplicației respective este temporar indisponibilă
Problema a început imediat după actualizareVerificați matricea versiunilor acceptate, starea actualizării, compatibilitatea aplicației, repararea OCCMai controlat decât revenirea la versiunea inițială; poate necesita o fereastră de întreținere
Jurnalele spun Permisiune refuzată după copiarea fișierelorCorectați doar proprietatea/modurile documentate pentru versiunea afectatăPrecizie atunci când există dovezi; modificările recursive generale ale permisiunilor pot crea probleme de securitate și de actualizare
Verificarea integrității nucleului raportează fișiere modificate/lipsăRestaurați fișierele de lansare corecte sau urmați procedura de actualizare/restaurare acceptatăPăstrează integritatea; evită aplicarea manuală a multor fișiere de bază la locul lor
HTTP 200, dar JS/CSS eșueazăRețea/Consola browserului, căi proxy, resurse temă/aplicație, memorie cacheEvită modificările inutile ale bazei de date/PHP; poate necesita acces la configurația proxy

Ce să nu faci când ownCloud afișează un ecran alb

  • Nu activați PHP display_errorspe un site de producție public doar pentru a expune urmele stivei browserului; folosiți în schimb jurnalele serverului.
  • Nu setați recursiv întregul arbore ownCloud la permisiuni de scriere accesibile tuturor.
  • Nu faceți downgrade la ownCloud ca o revenire rapidă la versiunea inițială, cu excepția cazului în care restaurați o copie de rezervă acceptată într-un mediu compatibil.
  • Nu ștergeți la întâmplare directorul de date, datele aplicației, tabelele bazei de date sau directoarele din memoria cache.
  • Nu dezactivați toate aplicațiile simultan atunci când o aplicație denumită poate fi izolată.
  • Nu editați fișierele de bază semnate sau signature.jsondoar pentru a suprima erorile de integritate.

Când ar trebui să escaladezi în loc să continui să experimentezi?

Opriți efectuarea modificărilor atunci când jurnalele indică coruperea bazei de date, probleme ale cheii de criptare, erori repetate de integritate a nucleului după o restaurare curată sau o stare de actualizare care nu poate fi finalizată cu fluxul de lucru OCC documentat. De asemenea, escaladați problema atunci când pagina goală afectează un cluster de producție și nu puteți izola un singur nod fără a risca consecvența datelor.

Înainte de a deschide un caz de asistență, ownCloud recomandă colectarea unui raport de configurare și a jurnalelor relevante. Pentru ownCloud 10.x, comanda documentată este:

sudo -u www-data ./occ configreport:generate > config_report.txt

Folosește metoda de execuție OCC corespunzătoare implementării tale și examinează rezultatul pentru secrete înainte de a-l partaja în afara organizației tale. Ghidul ownCloud pentru colectarea jurnalelor și a configurației explică de ce au nevoie de obicei inginerii de asistență.

Referințe oficiale

Lasă un comentariu

Remedierea erorii „Database Error” din Nextcloud WebGUI după o actualizare: Ghid practic de recuperare

Remedierea erorii „Database Error” din Nextcloud WebGUI după o actualizare: Ghid practic de recuperare

Remediați o eroare a bazei de date Nextcloud WebGUI după o actualizare prin verificarea jurnalelor, finalizarea actualizării occ, repararea problemelor schemei și verificarea stării bazei de date.

Remediați în siguranță avertismentul ownCloud Apache AllowOverride All

Remediați în siguranță avertismentul ownCloud Apache AllowOverride All

Remediați avertismentul ownCloud Apache AllowOverride All prin configurarea directorului corect, testarea Apache, reîncărcarea în siguranță și verificarea protecției .htaccess.

Cum să ștergeți jurnalele de audit Zimbra pentru a elibera spațiu pe disc în siguranță

Cum să ștergeți jurnalele de audit Zimbra pentru a elibera spațiu pe disc în siguranță

Aflați cum să identificați, să arhivați, să comprimați și să eliminați jurnalele de audit Zimbra vechi, când să evitați trunchierea audit.log și cum să verificați dacă spațiul pe disc și jurnalele se recuperează corect.

Remediați pagina goală / ecranul alb al morții din ownCloud: Alegeți calea de recuperare corectă

Remediați pagina goală / ecranul alb al morții din ownCloud: Alegeți calea de recuperare corectă

Remediați o pagină goală din ownCloud separând erorile de browser, PHP, aplicație, permisiuni, upgrade și proxy, apoi alegeți calea de recuperare cu cea mai puțină perturbare.

Remediați utilizarea ridicată a procesorului în Jitsi Meet pe browserele clientului

Remediați utilizarea ridicată a procesorului în Jitsi Meet pe browserele clientului

Diagnosticați vârfurile de solicitare a procesorului browserului Jitsi Meet și reduceți încărcarea clientului verificând dalele video, efectele camerei, grafica browserului și setările gazdei.

Cum să monitorizezi metricile Jitsi Videobridge cu Prometheus și Grafana

Cum să monitorizezi metricile Jitsi Videobridge cu Prometheus și Grafana

Urmărește starea de funcționare a Jitsi Videobridge, încărcarea conferințelor și traficul cu ajutorul endpoint-ului Prometheus încorporat, apoi explorează și prezintă datele în grafic în Grafana.

Cum se configurează un nume de domeniu personalizat pentru Jitsi Meet Docker

Cum se configurează un nume de domeniu personalizat pentru Jitsi Meet Docker

Configurați un domeniu personalizat pentru Jitsi Meet Docker cu DNS, PUBLIC_URL, HTTPS, Let's Encrypt, porturi firewall, setări NAT și verificare end-to-end.

Remediați eroarea 404 a consolei de administrare Zimbra negăsită după reînnoirea SSL

Remediați eroarea 404 a consolei de administrare Zimbra negăsită după reînnoirea SSL

Remediați erorile 404 din consola de administrare Zimbra după reînnoirea SSL verificând adresa URL și portul corecte, rutarea proxy, starea serviciului, certificatele implementate și jurnalele.

Remediați avertismentul Nextcloud „OPcache-ul PHP nu este configurat corect”

Remediați avertismentul Nextcloud „OPcache-ul PHP nu este configurat corect”

Învață cum să diagnostichezi și să remediezi avertismentul de configurare PHP OPcache din Nextcloud verificând setările SAPI PHP active, limitele de dimensionare, comentariile și revalidarea.

Remediați erorile de migrare a bazei de date Kopano după o actualizare a versiunii MySQL

Remediați erorile de migrare a bazei de date Kopano după o actualizare a versiunii MySQL

Depanați erorile de migrare a bazei de date Kopano după o actualizare MySQL sau MariaDB verificând copiile de rezervă, versiunile serverului, modurile SQL, setul de caractere, starea schemei și jurnalele.