Wyczyść ostrzeżenie Nextcloud OPcache, dostosowując prawy limit

Aby usunąć ostrzeżenie Nextcloud „Parametr OPcache PHP nie jest poprawnie skonfigurowany”, otwórz pełne ostrzeżenie w Ustawieniach administracyjnych → Przegląd, a następnie zwiększ tylko limit OPcache zidentyfikowany w konfiguracji PHP używanej przez serwer WWW. Uruchom ponownie odpowiednią usługę PHP i ponownie sprawdź ostrzeżenie; sama edycja konfiguracji PHP w wierszu poleceń może nie zmienić ustawień używanych przez Nextcloud.

Na przykład, jeśli Nextcloud zgłasza, że ​​bufor ciągów w pamięci wewnętrznej jest prawie pełny, zwiększenie opcache.interned_strings_bufferz 16 do 32 MB jest rozsądną pierwszą korektą, gdy serwer ma wystarczającą ilość pamięci RAM. Inne ostrzeżenie dotyczące skryptów w pamięci podręcznej lub pamięci współdzielonej wymaga innego ustawienia.

Dlaczego Nextcloud wyświetla to ostrzeżenie OPcache

OPcache przechowuje skompilowany bajtkod PHP w pamięci współdzielonej, zmniejszając ilość kompilacji potrzebnej do obsługi powtarzających się żądań internetowych. Rezerwuje również miejsce na ciągi znaków zinternalizowane, co pozwala PHP na ponowne wykorzystanie identycznych ciągów. Te pojemności stanowią oddzielne limity, więc rozszerzenie jednego niekoniecznie rozwiązuje problem z alertem dotyczącym innego.

Zgodnie z dokumentacją dostrajania serwera Nextcloud 35 , panel administracyjny ostrzega, gdy limit rozmiaru pamięci podręcznej OPcache przekracza 90% przydzielonej pojemności. Komunikat może wskazywać na prawie pełny bufor ciągów znaków, ograniczoną liczbę skryptów w pamięci podręcznej lub niewystarczającą ilość pamięci współdzielonej. Ten szczegół decyduje o sposobie rozwiązania problemu.

Nextcloud również wymaga opcache.save_comments=1, ponieważ zależy od zachowanych komentarzy w kodzie PHP. Wyłączone rozszerzenie OPcache lub wyłączone zachowywanie komentarzy jest zatem problemem konfiguracyjnym, a nie tylko kwestią rozmiaru pamięci podręcznej.

1. Zidentyfikuj otoczenie, które wymaga uwagi

Zaloguj się jako administrator, przejdź do Ustawienia administracyjne → Przegląd i przeczytaj pełne ostrzeżenie OPcache. Zapisz dokładną dyrektywę, jeśli jest podana. Nie zakładaj, że każde ostrzeżenie OPcache oznacza, że ​​bufor ciągów wewnętrznych jest za mały.

  • Bufor wewnętrznych ciągów znaków jest prawie pełny: sprawdź opcache.interned_strings_buffer.
  • Pamięć współdzielona OPcache jest prawie pełna: sprawdź opcache.memory_consumption.
  • Skrypty lub klucze w pamięci podręcznej zbliżają się do limitu: sprawdź opcache.max_accelerated_files.
  • OPcache wyłączony lub komentarze nie zostały zachowane: sprawdź opcache.enablei opcache.save_comments.

2. Znajdź konfigurację PHP obsługującą NextCloud

Na serwerach Debian lub Ubuntu korzystających z PHP-FPM konfiguracja PHP jest zazwyczaj uporządkowana według wersji PHP i API serwera. Na przykład, PHP 8.3 FPM może odczytywać pliki z /etc/php/8.3/fpm/conf.d/, podczas gdy moduł PHP Apache'a może używać /etc/php/8.3/apache2/conf.d/.

Aby sprawdzić, które usługi PHP-FPM są dostępne na hoście systemd, uruchom:

systemctl list-units --type=service 'php*-fpm.service'

Sprawdź odpowiednie pliki OPcache, zastępując je zainstalowaną wersją PHP:

sudo ls -l /etc/php/8.3/fpm/conf.d/*opcache*
sudo grep -R 'opcache\.' /etc/php/8.3/fpm/conf.d/

Jeśli nie znaleziono żadnych plików, sprawdź plik main php.inii konwencje dotyczące pakowania dla swojej dystrybucji. To polecenie php --inijest przydatne do identyfikacji konfiguracji PHP w interfejsie CLI , ale interfejs CLI i PHP-FPM mogą ładować różne ustawienia.

W przypadku Dockera lub Nextcloud All-in-One należy sprawdzić konfigurację PHP w kontenerze Nextcloud i użyć obsługiwanej metody trwałej konfiguracji. Edycja /etc/phpplików hosta zazwyczaj nie powoduje skonfigurowania PHP w kontenerze; edycję wygenerowanego pliku kontenera można również cofnąć przez ponowne uruchomienie.

3. Zwiększ limit raportowania bez zmiany niepowiązanych ustawień

Przed wprowadzeniem zmiany należy wykonać kopię zapasową odpowiedniego pliku konfiguracyjnego. W przypadku konwencjonalnej instalacji PHP-FPM w systemie Debian/Ubuntu, jednym z możliwych rozwiązań jest dodanie lokalnego nadpisania w conf.dkatalogu FPM danej wersji PHP. Przed kontynuacją należy upewnić się, że ten katalog jest rzeczywiście ładowany przez instalację PHP-FPM.

W przypadku przykładu bufora ciągów wewnętrznych utwórz lub edytuj lokalne nadpisanie, takie jak /etc/php/8.3/fpm/conf.d/99-nextcloud-opcache.ini:

; Example for a warning about interned strings
opcache.interned_strings_buffer=32

Tutaj 32oznacza to 32 MB, a nie 32 bajty. Dostosuj wartość końcową do rzeczywistego wykorzystania i dostępnej pamięci RAM.

Jeżeli ostrzeżenie podaje inny limit, zamiast bezmyślnie dodawać wszystkie trzy, użyj odpowiedniego przykładu:

; Example only: larger shared bytecode cache
opcache.memory_consumption=256

; Example only: allow more cached script keys
opcache.max_accelerated_files=20000

Wartości podane opcache.memory_consumptionsą w megabajtach, a opcache.max_accelerated_fileslimit klucza skryptu jest określony. Oficjalny dokument konfiguracyjny PHP OPcache wyjaśnia jednostki, ustawienia domyślne i możliwości ich zmiany.

Jeśli ostrzeżenie wskazuje na wyłączoną funkcję OPcache lub brak komentarzy, a nie na pojemność, sprawdź zamiast tego następujące ustawienia:

opcache.enable=1
opcache.save_comments=1

Nie wyłączaj opcache.validate_timestampsani nie wydłużaj znacząco czasu oczekiwania opcache.revalidate_freqtylko po to, by zignorować to ostrzeżenie. Nextcloud ostrzega, że ​​opóźniona ponowna walidacja pamięci podręcznej może uniemożliwić szybkie wprowadzenie zmian w konfiguracji i aktualizacjach.

4. Zastosuj nową konfigurację

W przypadku przykładowego serwera obsługującego PHP 8.3 za pośrednictwem PHP-FPM najpierw sprawdź konfigurację usługi, a następnie uruchom ponownie pasującą usługę podczas krótkiego okna konserwacyjnego:

sudo php-fpm8.3 -t
sudo systemctl restart php8.3-fpm

Zastąp 8.3zainstalowaną wersją PHP-FPM i potwierdź nazwę pliku wykonywalnego oraz usługi przed uruchomieniem któregokolwiek z poleceń. Ponowne uruchomienie przerywa żądania obsługiwane przez tę pulę. Na serwerze Apache z mod_phpodpowiednią usługą jest Apache, a nie PHP-FPM; w przypadku kontenerów zastosuj udokumentowaną procedurę ponownego uruchomienia lub odtworzenia instalacji dla swojego wdrożenia, zachowując jednocześnie konfigurację.

Jeśli nie uda się ponownie uruchomić usługi, przywróć konfigurację z kopii zapasowej i sprawdź dziennik błędów PHP-FPM lub serwera WWW.

5. Jeśli ostrzeżenie nadal występuje, sprawdź obowiązujące ustawienia PHP w sieci

Najpierw przeładuj Ustawienia administracyjne → Przegląd po ponownym uruchomieniu procesów roboczych PHP. Jeśli to samo ostrzeżenie nadal występuje, sprawdź, czy zmieniona dyrektywa jest rzeczywiście ładowana przez środowisko wykonawcze PHP, a nie tylko przez interfejs wiersza poleceń. Sprawdź, czy istnieje plik do późniejszego załadowania .inilub nadpisanie puli PHP-FPM, które zastępuje Twoją wartość.

Na kontrolowanym przez Ciebie serwerze możesz tymczasowo sprawdzić wartości PHP w sieci, korzystając z diagnostycznego punktu końcowego o wąskim dostępie i ini_get()funkcji PHP. Nigdy nie pozostawiaj publicznej phpinfo()strony online: może ona ujawnić środowisko, ścieżki, moduły i inne poufne szczegóły konfiguracji. Usuń każdy diagnostyczny punkt końcowy natychmiast po weryfikacji.

Aby uzyskać stały alert dotyczący rozmiaru, należy sprawdzać faktyczne użycie pamięci podręcznej OPcache przy normalnym ruchu, zamiast wielokrotnie podwajać wartości. Dokumentacja PHPopcache_get_status() opisuje statystyki pamięci, ciągów znaków w pamięci podręcznej i skryptów w pamięci podręcznej dostępne dla uruchomionego procesu PHP.

Oficjalny obraz Dockera i wdrożenia All-in-One firmy Nextcloud mają własne domyślne ustawienia PHP. Nie należy zakładać, że zmiany na poziomie hosta lub zalecane wartości innej instalacji zostaną zachowane. Zapoznaj się z oficjalnym repozytorium Dockera firmy Nextcloud lub oficjalnym repozytorium All-in-One, aby znaleźć model konfiguracji odpowiadający Twojemu wdrożeniu.

Sprawdź, czy poprawka zadziałała

Wróć do Ustawień administracyjnych → Przegląd i upewnij się, że konkretne ostrzeżenie OPcache zniknęło. Otwórz i przeładuj kilka stron Nextcloud, aby upewnić się, że aplikacja nadal działa prawidłowo. Jeśli ostrzeżenie powraca po normalnym użytkowaniu, sprawdź ponownie ten sam zmierzony limit i efektywną konfigurację PHP w przeglądarce. Celem jest pozostawienie wystarczającego zapasu pamięci bez przypisywania niepotrzebnej pamięci do OPcache.

Zostaw komentarz

Podgląd Tame Nextcloud powoduje skoki obciążenia procesora w przypadku zaplanowanej kolejki

Przenieś pracę nad miniaturami do kontrolowanego harmonogramu w tle, zmniejsz nieużywane rozmiary podglądu i zweryfikuj kolejkę bez przeciążania serwera Nextcloud.

Uzyskaj synchronizację pulpitu Nextcloud, wykraczającą poza „przetwarzanie plików”

Znajdź plik, regułę wykluczenia, problem z połączeniem lub stan bazy danych klienta, który blokuje synchronizację z Nextcloud, a następnie sprawdź bezpieczeństwo przesyłania i pobierania.

Wyczyść ostrzeżenie Nextcloud OPcache, dostosowując prawy limit

Znajdź limit PHP OPcache powodujący ostrzeżenie Nextcloud, zaktualizuj prawidłową konfigurację PHP w przeglądarce, uruchom ponownie system bezpiecznie i sprawdź wynik.

Połączenie Nextcloud z CODE Docker: konfiguracja i kompromisy

Połączenie Nextcloud z CODE Docker: konfiguracja i kompromisy

Porównaj wbudowany KOD i KOD oparty na Dockerze, a następnie połącz Collabora Online z Nextcloud za pomocą bezpiecznego odwrotnego serwera proxy HTTPS.

Zbuduj odporny klaster Nextcloud z Galera

Zaplanuj niezawodne wdrożenie Nextcloud HA z współdzieloną pamięcią masową, blokowaniem Redis, routingiem MariaDB uwzględniającym kworum i praktycznymi kontrolami awaryjnymi.

Uzyskaj połączenia Nextcloud Talk, gdy zawiedzie usługa Direct Media

Uzyskaj połączenia Nextcloud Talk, gdy zawiedzie usługa Direct Media

Skonfiguruj i zweryfikuj dostępny przekaźnik TURN dla Nextcloud Talk, gdy zapory sieciowe lub restrykcyjny NAT blokują bezpośrednie połączenia multimedialne.

Wyczyść ostrzeżenia dotyczące integralności NextCloud, przywracając odpowiednie pliki

Użyj raportu o nieprawidłowym pliku, aby zidentyfikować zmieniony, brakujący lub dodatkowy kod Nextcloud, bezpiecznie przywrócić zaufane pliki i zweryfikować wynik.

Połącz Gmaila lub Microsoft 365 z pocztą NextCloud za pomocą protokołu OAuth2

Skonfiguruj protokół OAuth2 dla usługi Nextcloud Mail z usługą Gmail lub Microsoft 365, zweryfikuj odbieranie i wysyłanie oraz rozwiąż problemy z akceptacją wspólnych zgód i SMTP.

Bezpieczne usuwanie zablokowanego trybu konserwacji NextCloud za pomocą OCC

Bezpieczne usuwanie zablokowanego trybu konserwacji NextCloud za pomocą OCC

Użyj OCC, aby przywrócić dostęp do Nextcloud, sprawdzić stan migracji bazy danych i wybrać odpowiednie polecenie dla instalacji archiwum, Docker lub Snap.

Skonfiguruj Nextcloud LDAP i logowanie do Active Directory

Połącz Nextcloud z LDAP lub Active Directory, ogranicz dostęp za pomocą filtrów użytkowników i grup oraz zweryfikuj bezpieczne uwierzytelnianie przed wdrożeniem.