Napraw ostrzeżenie Nextcloud „PHP OPcache nie jest poprawnie skonfigurowany”

Jeśli Nextcloud zgłasza komunikat „Opcache PHP nie jest poprawnie skonfigurowany” , właściwym rozwiązaniem nie jest wklejanie dużego bloku dostrajającego ze starego posta na forum. Najpierw zidentyfikuj limit lub ustawienie OPcache, któremu sprzeciwia się Nextcloud, a następnie zmień konfigurację PHP faktycznie używaną przez serwer WWW.

W aktualnej dokumentacji administracyjnej Nextcloud 35, OPcache jest traktowany jako ważna warstwa wydajnościowa PHP. Nextcloud informuje, że jego panel administracyjny wyświetla odpowiednie ostrzeżenie, gdy limit rozmiaru OPcache przekracza 90% przydzielonej pojemności. Wymaga również zachowania komentarzy do kodu buforowanego. Własny podręcznik PHP dokumentuje odpowiednie dyrektywy i ich ustawienia domyślne. Te informacje pozwalają na bezpieczniejsze dostrajanie OPcache: zwiększanie tylko ograniczonych zasobów, utrzymywanie wymaganego działania włączonych i unikanie zmian, które komplikują aktualizacje, chyba że są uzasadnione.

Przegląd administracji Nextcloud pokazujący ostrzeżenie o konfiguracji PHP OPcache w górnej części strony.
Ostrzeżenie należy traktować jako wskazówkę diagnostyczną: przed zmianą limitów pamięci lub liczby plików należy zidentyfikować konkretne ograniczenie OPcache.

Co zazwyczaj oznacza ostrzeżenie Nextcloud OPcache

OPcache przechowuje skompilowany bajtkod PHP w pamięci współdzielonej, dzięki czemu PHP nie musi parsować i kompilować tych samych plików aplikacji przy każdym żądaniu. Nextcloud opisuje to jako funkcję zwiększającą wydajność, a PHP dołącza Zend OPcache do rdzenia od wersji PHP 5.5.

Ostrzeżenie może pojawić się z kilku powodów. Najczęstszymi przypadkami są: pojemność pamięci podręcznej OPcache jest bliska zapełnienia, pamięć podręczna OPcache jest wyłączona dla interfejsu SAPI w przeglądarce lub zmieniono wymagane zachowanie, takie jak zachowywanie komentarzy. Aktualny poradnik NextCloud stwierdza, że ​​ostrzeżenie o rozmiarze jest wyświetlane, gdy limit rozmiaru pamięci podręcznej OPcache przekracza 90% przydzielonej przestrzeni, i wyraźnie wymaga opcache.save_comments = 1.

Oficjalne odniesienia: wskazówki dotyczące dostrajania serwera Nextcloud i OPcache , notatki dotyczące konfiguracji PHP Nextcloud oraz konfiguracja środowiska uruchomieniowego PHP OPcache .

Wybierz rozwiązanie na podstawie ostrzeżenia, a nie blokady uniwersalnej

SytuacjaNajlepsza pierwsza zmianaKompromis
Pamięć OPcache przekracza próg ostrzegawczy NextcloudZwiększ opcache.memory_consumptionumiarkowanieWykorzystuje więcej współdzielonej pamięci RAM, ale zmniejsza utratę pamięci podręcznej
Wewnętrzne ciągi są prawie pełneZwiększyćopcache.interned_strings_bufferZużywa dodatkową pamięć współdzieloną; podniesienie niepowiązanych limitów nie przynosi żadnych korzyści
Sloty skryptów/plików w pamięci podręcznej są prawie pełneZwiększyćopcache.max_accelerated_filesWiększa tablica skrótów wykorzystuje więcej pamięci
OPcache jest wyłączonyZestaw opcache.enable=1do konfiguracji PHP w sieciNormalne i zalecane dla Nextcloud; sprawdź poprawność SAPI
opcache.save_commentszostał wyłączonyUstawićopcache.save_comments=1Brak istotnego powodu specyficznego dla Nextcloud, aby wyłączyć tę funkcję; Nextcloud wymaga zachowania komentarzy

PHP obecnie podaje wartości domyślne 128 MB dla opcache.memory_consumption, 8 MB dla opcache.interned_strings_bufferi 10 000 dla opcache.max_accelerated_files. Te wartości domyślne są punktami odniesienia, a nie uniwersalnymi celami NextCloud. Mały serwer osobisty może być odpowiedni w ich pobliżu, podczas gdy większa instalacja z wieloma aplikacjami może wymagać więcej przestrzeni.

Krok 1: Sprawdź, jakiej konfiguracji PHP faktycznie używa Nextcloud

To krok, który zapobiega wielu nieudanym poprawkom. Nextcloud dokumentuje, że serwer WWW i wiersz poleceń PHP mogą ładować różne pliki konfiguracyjne. W systemach Debian i Ubuntu typowe ścieżki to /etc/php/<version>/fpm/php.ini, /etc/php/<version>/apache2/php.inii /etc/php/<version>/cli/php.ini.

Uruchom php --ini, aby wyświetlić konfigurację CLI, ale nie zakładaj, że jest to ten sam plik, którego używają PHP-FPM lub Apache. W przypadku interfejsu SAPI sieci Web użyj phpinfo()strony tymczasowej tylko wtedy, gdy możesz ją natychmiast zabezpieczyć i usunąć, lub sprawdź konfigurację puli/usługi PHP-FPM i pliki modułów specyficzne dla dystrybucji.

Zalecenie: jeśli NextCloud działa w oparciu o Nginx lub Apache z PHP-FPM, zmodyfikuj konfigurację FPM OPcache. Jeśli Apache używa mod_php, zmodyfikuj konfigurację Apache PHP. Zachowaj spójną konfigurację CLI, gdy zadania w tle wymagają tego samego zachowania, ale pamiętaj, że ostrzeżenie przeglądarki jest generowane przez ścieżkę żądania internetowego.

Krok 2: Edytuj najmniejszy zestaw dyrektyw OPcache, który rozwiązuje problem

Edytor tekstu pokazujący plik konfiguracyjny OPcache z dyrektywami enable, memory, internalized strings, accelerated files i save comments.
Edytuj konfigurację OPcache używaną przez web SAPI. Zwiększ tylko ograniczony zasób, zamiast bezmyślnie kopiować zbyt duży preset.

Poniżej przedstawiono konserwatywny przykład dla serwera o niewielkiej pojemności. Wartości liczbowe należy traktować jako punkty wyjścia, a nie gwarancje:

[opcache]
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.save_comments=1

Jeśli Nextcloud wyraźnie wskazuje, że pamięć OPcache jest prawie pełna, przejście ze 128 MB do 256 MB może być rozsądną, stopniową zmianą, o ile serwer ma wystarczająco dużo wolnej pamięci RAM. Jeśli ostrzeżenie wskazuje na ciągi znaków w pamięci wewnętrznej lub skrypty w pamięci podręcznej, należy zwiększyć ten limit, a nie tylko pamięć. Na serwerze VPS z ograniczoną pamięcią, przejście bezpośrednio do 512 MB może zmniejszyć ilość pamięci RAM dostępnej dla procesów PHP-FPM, bazy danych, Redis i systemu operacyjnego.

A co z ustawieniami ponownej walidacji?

Aktualny poradnik Nextcloud dotyczący strojenia mówi, że PHP domyślnie sprawdza skrypty w pamięci podręcznej pod kątem zmian co dwie sekundy i nie zaleca zmiany tego ustawienia dla wszystkich. Podniesienie wartości opcache.revalidate_freqmoże zmniejszyć liczbę sprawdzeń systemu plików, ale kompromis jest operacyjny: aktualizacje i edycje aplikacji config.phpmogą być widoczne dłużej. Całkowite wyłączenie walidacji znaczników czasu jest bardziej agresywne i może pozostawić stary kod aktywny do momentu ręcznego wyczyszczenia pamięci podręcznej OPcache lub ponownego uruchomienia PHP.

Większość administratorów, którzy próbują jedynie usunąć ostrzeżenie, powinna porzucić opcache.validate_timestampsswoje opcache.revalidate_freqstandardowe zachowanie, chyba że rozumieją przepływ pracy związany z wdrożeniem. Nextcloud ostrzega, że ​​nietypowe zachowanie po aktualizacjach może wynikać z nieaktualnego kodu w pamięci podręcznej po zmianie walidacji.

Krok 3: Uruchom ponownie właściwą usługę PHP

Po zmianie pliku INI należy zrestartować lub przeładować proces PHP obsługujący NextCloud. Typowymi przykładami są systemctl restart php8.2-fpmPHP-FPM lub restart/przeładowanie Apache, gdy używany jest mod_php. Zastąp wersję i nazwę usługi tym, co faktycznie działa w systemie.

Ma to jeszcze większe znaczenie, jeśli zmieniłeś sposób ponownej walidacji. Ponowne uruchomienie poprawnej usługi gwarantuje załadowanie nowej konfiguracji OPcache i usuwa niejasności dotyczące nieaktualnego kodu bajtowego.

Krok 4: Zweryfikuj wartości, ale zweryfikuj również interfejs SAPI sieci Web

Terminal pokazujący wynik php --ini i php -i OPcache ze statusem włączenia i wartościami konfiguracji kluczy.
Sprawdzanie CLI jest przydatne do znajdowania plików INI i potwierdzania składni, ale interfejs SAPI sieci Web może załadować inną konfigurację.

Przydatne kontrole wiersza poleceń obejmują:

php --ini
php -i | grep -i opcache

Te polecenia mogą potwierdzić, że PHP rozpoznaje dyrektywy, ale udowadniają jedynie konfigurację CLI. Jeśli ostrzeżenie Nextcloud nadal się wyświetla, należy porównać załadowaną konfigurację interfejsu SAPI z wynikami CLI. Jest to szczególnie ważne w systemach, które utrzymują oddzielne drzewa cli, fpm, i apache2INI.

Krok 5: Sprawdź ponownie Administrację > Przegląd

Przegląd administracji Nextcloud bez ostrzeżenia OPcache i ze zwykłymi wskaźnikami stanu systemu.
Po przeładowaniu PHP odśwież Administracja > Przegląd. Ostrzeżenie OPcache powinno zniknąć, gdy interfejs SAPI będzie używał odpowiednich limitów i wymaganych ustawień.

Odśwież podgląd administracyjny Nextcloud po restarcie usługi PHP. Jeśli ostrzeżenie zniknie, konfiguracja jest odczytywana przez właściwy interfejs SAPI, a zgłoszony próg nie jest już przekroczony.

Jeśli problem nadal występuje, nie zwiększaj wartości losowo. Sprawdź kolejno cztery rzeczy: czy edytowałeś właściwy plik INI, czy inny, później załadowany plik INI nie nadpisuje Twojego ustawienia, czy odpowiednia usługa PHP została ponownie uruchomiona oraz czy ostrzeżenie nie wskazuje innego zasobu OPcache niż ten, który zwiększyłeś.

Ile pamięci OPcache należy przydzielić?

Nie ma jednej, najlepszej wartości. Użytecznym celem jest wystarczająca przestrzeń, aby pamięć podręczna nie zbliżała się stale do swoich limitów, bez jednoczesnego zaśmiecania reszty stosu. W przypadku małego serwera VPS należy zacząć ostrożnie i obserwować obciążenie pamięci. W przypadku instancji z wieloma aplikacjami lub większym rozmiarem kodu PHP, 256 MB lub więcej może być uzasadnione, gdy rzeczywiste użycie OPcache pokazuje, że 128 MB jest niewystarczające. Na dużym serwerze rozmiar pamięci należy rozważyć łącznie z liczbą pracowników PHP-FPM i innymi usługami współdzielonymi.

Praktyczne porównanie jest proste: większa ilość pamięci OPcache może zmniejszyć liczbę operacji usuwania pamięci podręcznej i rekompilacji, ale mniejsza ilość pamięci OPcache pozostawia więcej pamięci RAM dla równoczesnych procesów PHP i baz danych. Wybierz na podstawie zmierzonego użycia i ostrzeżeń zgłaszanych przez Nextcloud, a nie na podstawie największej liczby, jaką Twój serwer może zaakceptować.

Typowe błędy powodujące ciągłe wyświetlanie ostrzeżenia

  • Edycja wyłącznie CLI PHP: przeglądarka nadal używa PHP-FPM lub mod_php.
  • Podniesienie niewłaściwego limitu: większa ilość pamięci nie naprawi całej tabeli przyspieszonych plików.
  • Zapomnienie o ponownym uruchomieniu: działający proces PHP może nadal mieć stare wartości INI.
  • Wyłączanie opcache.save_comments: Nextcloud wymaga zachowania komentarzy.
  • Kopiowanie nieaktualnych fragmentów kodu dostrajającego: stare przewodniki mogą zalecać agresywne ustawienia ponownej walidacji, które mogą powodować problemy z aktualizacją.

Zalecane podejście według typu serwera

Mały, osobisty serwer Nextcloud: zachowaj domyślne ustawienia ponownej walidacji, zapisz komentarze i zwiększ limit tylko do wartości, która faktycznie przekracza próg. Minimalizuje to zużycie pamięci RAM i niespodzianki operacyjne.

Obciążony serwer wielodostępny: monitoruj zużycie pamięci podręcznej OPcache i zapewnij większy zapas, gdy ostrzeżenie administratora wskazuje na obciążenie. Koordynuj pamięć podręczną OPcache z rozmiarem pracownika PHP-FPM, aby jedna optymalizacja nie powodowała wymiany w całym systemie.

Hosting zarządzany lub obraz kontenera: najpierw określ, gdzie mają zostać zastąpione ustawienia PHP. Edycja pliku w tymczasowym kontenerze może zniknąć po ponownym wdrożeniu, podczas gdy dostawca może udostępnić niestandardowe wartości INI za pośrednictwem panelu sterowania lub konfiguracji środowiska.

Ostateczna kontrola

Poprawna poprawka składa się z trzech części: proces PHP w sieci WWW Nextcloud ma włączony OPcache, wymagane zachowanie, takie jak [ opcache.save_comments=1brakuje wartości], pozostaje nienaruszone, a konkretny zasób OPcache, który był bliski wyczerpania, ma teraz rozsądny zapas. Po spełnieniu tych warunków i ponownym załadowaniu PHP, ostrzeżenie powinno zniknąć bez uciekania się do nadmiernej alokacji pamięci lub ryzykownych zmian w walidacji pamięci podręcznej.

Zostaw komentarz

Najlepsze narzędzia do monitorowania systemu Windows: 6 wyborów zapewniających widoczność serwera

Najlepsze narzędzia do monitorowania systemu Windows: 6 wyborów zapewniających widoczność serwera

Porównaj sześć narzędzi do monitorowania systemu Windows pod kątem stanu serwera, widoczności aplikacji i alertów, z aktualnymi uwagami na temat wdrażania i licencjonowania.

7 narzędzi Wake-on-LAN: co jeszcze jest dostępne na liście z 2021 r.

7 narzędzi Wake-on-LAN: co jeszcze jest dostępne na liście z 2021 r.

Porównaj siedem narzędzi Wake-on-LAN pod względem funkcji i dostępności, w tym bezpłatne narzędzia, pakiety do administrowania siecią i propozycje z 2021 r., które zostały już wycofane.

9 najlepszych narzędzi do pingowania, służących do testowania opóźnień i skanowania sieci

9 najlepszych narzędzi do pingowania, służących do testowania opóźnień i skanowania sieci

Porównaj dziewięć narzędzi do pingowania służących do szybkiego sprawdzania dostępności, wykrywania podsieci, testowania TCP i monitorowania opóźnień. Znajdziesz tu wskazówki, które z nich jest najbardziej odpowiednie dla Twojego zadania sieciowego.

7 najlepszych narzędzi WSUS do zarządzania aktualizacjami i rozwiązywania problemów

7 najlepszych narzędzi WSUS do zarządzania aktualizacjami i rozwiązywania problemów

Porównaj siedem narzędzi, które obsługują lub uzupełniają usługę WSUS — od natywnej konsoli i diagnostyki firmy Microsoft po publikowanie poprawek innych firm i zdalne wdrażanie.

Najlepsze serwery TFTP dla systemów Windows, Linux i macOS

Najlepsze serwery TFTP dla systemów Windows, Linux i macOS

Porównaj najlepsze serwery TFTP dla systemów Windows, Linux i macOS, w tym SolarWinds, Tftpd64, tftpd-hpa, atftpd, haneWIN i dnsmasq.

5 najlepszych alternatyw dla programu Microsoft Access dla baz danych na komputerach stacjonarnych i w Internecie

5 najlepszych alternatyw dla programu Microsoft Access dla baz danych na komputerach stacjonarnych i w Internecie

Porównaj pięć alternatyw dla programu Microsoft Access przeznaczonych do pracy na komputerach stacjonarnych, w środowisku SQLite, bez kodu i w oparciu o bazę danych w przeglądarce, przedstawiając ich mocne i słabe strony oraz najlepiej dopasowane przypadki użycia.

Porównanie narzędzi monitorujących o otwartym kodzie źródłowym i o zamkniętym kodzie źródłowym

Porównanie narzędzi monitorujących o otwartym kodzie źródłowym i o zamkniętym kodzie źródłowym

Porównaj narzędzia do monitorowania o otwartym i zamkniętym kodzie źródłowym pod względem kosztów, wsparcia, dostosowania, bezpieczeństwa i bieżących opcji, w tym Zabbix, Nagios, PRTG i inne.

Przychodzące i wychodzące dane: jaka jest różnica w sieci?

Przychodzące i wychodzące dane: jaka jest różnica w sieci?

Dowiedz się, w jaki sposób ruch przychodzący i wychodzący opisuje ruch przychodzący i wychodzący, dlaczego kierunek zależy od granicy sieci oraz jak monitorować przepustowość i wykrywać ryzykowne transfery danych.

6 najlepszych darmowych serwerów Syslog do wypróbowania w celu scentralizowanego rejestrowania

6 najlepszych darmowych serwerów Syslog do wypróbowania w celu scentralizowanego rejestrowania

Porównaj sześć darmowych serwerów i kolektorów syslog dla systemów Windows i Linux, obejmujących narzędzia GUI, opcje open source, wyszukiwanie, alerty i bezpieczny transport.

Czym jest IIS? Serwer WWW Windows firmy Microsoft i alternatywy

Czym jest IIS? Serwer WWW Windows firmy Microsoft i alternatywy

Dowiedz się, co robi Microsoft IIS, jak działa jego potok żądań i pule aplikacji oraz czy Apache, NGINX lub Caddy mogą lepiej spełnić potrzeby Twojego serwera WWW.