Los de Nextcloud PHP-geheugenlimietwaarschuwing op.

Om een ​​Nextcloud PHP-geheugenlimietwaarschuwing te verhelpen, stelt u deze in de PHP-configuratie van de webserver memory_limitin op minimaal 512M512 MB en herstart of herlaadt u vervolgens de betreffende PHP-service. De huidige stabiele beheerhandleiding van Nextcloud adviseert een minimale waarde van 512 MB voor deze PHP-instelling. De meest voorkomende reden waarom een ​​waarschuwing blijft bestaan ​​na het bewerken van een bestand, is dat de webserver een andere PHP-configuratie gebruikt dan de PHP-installatie via de commandoregel.

Kies de procedure die overeenkomt met uw implementatie: Apache met mod_php, Apache of Nginx met PHP-FPM, een container of een beheerd Nextcloud-pakket. Wijzig de willekeurige configuratie van een host niet php.inien ga er niet vanuit dat elke implementatie deze gebruikt. Controleer het resultaat op de pagina 'Beheeroverzicht' van Nextcloud, die de configuratie van de webapplicatie weergeeft.

Wat betekent de waarschuwing?

PHP's memory_limitis het maximale geheugen dat een enkel PHP-script mag toewijzen. Het is niet het totale RAM-geheugen dat voor Nextcloud is gereserveerd en het verhoogt ook niet het fysieke geheugen dat beschikbaar is voor de server. De handleiding van Nextcloud adviseert om minimaal 512 MB voor deze richtlijn te configureren. De systeemvereisten leggen apart uit dat de werkelijke geheugenbehoefte van de server varieert afhankelijk van gebruikers, apps, bestanden en activiteiten; ze adviseren minimaal 512 MB RAM per PHP-proces, met een minimum van 128 MB.

Het verhogen van de PHP-limiet kan een configuratiewaarschuwing oplossen en geheugenintensieve verzoeken meer ruimte geven. Het kan echter geen extra RAM toevoegen aan een host met te weinig geheugen, een geheugenlek repareren of garanderen dat elke applicatie succesvol wordt voltooid. Als de server al onder geheugendruk staat, kan een hogere limiet per verzoek het risico vergroten dat gelijktijdige PHP-processen het systeem-RAM uitputten.

Welke PHP-configuratie moet je aanpassen?

Bepaal eerst hoe PHP Nextcloud uitvoert. Een terminalcontrole, zoals bijvoorbeeld, php --inigeeft de configuratie van de commandoregel (CLI) weer. Webverzoeken van Nextcloud kunnen een aparte Apache-module of PHP-FPM-service gebruiken met een andere configuratie php.iniof pool-override. Nextcloud geeft specifiek aan dat web- en CLI-PHP mogelijk verschillende configuratiebestanden gebruiken.

Typische locaties op Debian-gebaseerde systemen zijn onder andere /etc/php/8.x/apache2/php.inivoor de PHP-module van Apache en /etc/php/8.x/fpm/php.inivoor PHP-FPM. De daadwerkelijke PHP-versie en mapnamen variëren. Andere distributies gebruiken vaak andere paden, zoals een gedeelde map /etc/php.ini. Beschouw dit slechts als voorbeelden; gebruik uw pakketbeheerder, serviceconfiguratie en PHP-runtime om het actieve bestand te vinden.

Om de CLI-configuratie te controleren, voert u het volgende commando uit:

php --ini
php -i | grep -i '^memory_limit'

Deze commando's zijn handig voor geplande taken die PHP vanaf de commandoregel aanroepen, maar ze bewijzen niet dat het Nextcloud-proces dat in de browser wordt gebruikt dezelfde waarde gebruikt. Laat geen openbare phpinfo()pagina op de server staan: deze kan paden, modules en runtime-details prijsgeven.

Hoe stel je de limiet in voor Apache of PHP-FPM?

Maak een back-up van het actieve configuratiebestand voordat u het wijzigt. php.iniZoek in het juiste bestand de bestaande memory_limitregel en stel deze in op 512Mof een hogere waarde die geschikt is voor uw workload:

memory_limit = 512M

Gebruik één actieve instelling in plaats van dubbele regels aan het einde van meerdere bestanden toe te voegen. Een PHP-FPM-pool kan ook waarden definiëren voor zijn workers, dus controleer de poolconfiguratie als de waarde php.inigeen effect heeft. Sommige PHP-implementaties ondersteunen een per-directory-instelling .user.ini; of dit actief is, hangt af van de serverconfiguratie en moet worden bevestigd met de beheerder.

Apache met mod_php

Bewerk de php.inidoor Apache gebruikte configuratie, sla deze op en herstart Apache zodat de module de instellingen opnieuw laadt. Servicenamen variëren. Op Debian of Ubuntu is de service meestal apache2; op RHEL-systemen is deze meestal httpd. Gebruik de servicenaam die overeenkomt met uw besturingssysteem en onderhoudsprocedures.

sudo systemctl restart apache2

Vervang dit apache2als uw distributie een andere eenheidsnaam gebruikt. Als Nextcloud via PHP-FPM in plaats van mod_php wordt aangeboden, zal het herstarten van Apache alleen de PHP-workers niet opnieuw laden.

Apache of Nginx met PHP-FPM

Bewerk de PHP-FPM-configuratie die daadwerkelijk door de site wordt gebruikt. Nadat u de wijziging hebt opgeslagen, start u de bijbehorende PHP-FPM-service opnieuw of laadt u deze opnieuw. De eenheid kan bijvoorbeeld de PHP-versie bevatten php8.3-fpmof een andere leverancierspecifieke naam gebruiken.

sudo systemctl restart php8.3-fpm

Gebruik de juiste servicenaam voor uw geïnstalleerde PHP-versie. Nginx stuurt PHP-verzoeken door naar FPM, dus het wijzigen van PHP-instellingen vereist meestal dat de wijziging ook in FPM wordt doorgevoerd; het herstarten van Nginx alleen herlaadt de geheugenlimiet van PHP niet. Als uw PHP-FPM-poolconfiguratie een override heeft memory_limit, pas dan de poolinstelling aan of verwijder de override en herstart vervolgens de pool.

Wat als Nextcloud in Docker, AIO, Snap of een ander pakket draait?

Gebruik het configuratiemechanisme voor die installatiemethode. Het bewerken van de PHP-bestanden van de host wijzigt doorgaans de PHP-runtime in een container of een geïsoleerd pakket niet. De officiële Nextcloud Docker-image documenteert de PHP_MEMORY_LIMITomgevingsvariabele, met een standaardwaarde 512Min de documentatie van de huidige image. Stel deze in in het Compose-bestand of de containerconfiguratie en maak vervolgens de applicatiecontainer opnieuw aan of herstart deze volgens de implementatieprocedure.

environment:
  PHP_MEMORY_LIMIT: 512M

Kopieer die instelling niet naar elk installatietype. De Nextcloud-handleiding vermeldt dat kant-en-klare omgevingen zoals AIO, Snap, NCP en Community Docker een vooraf geconfigureerde PHP-versie hebben en verwijst beheerders naar de pakketspecifieke instructies voor aanpassing. Gebruik voor die configuraties de ondersteunde interface of documentatie van het betreffende pakket. Permanente volume-mounts en gegenereerde configuraties kunnen een eenmalige handmatige wijziging ook overschrijven.

Hoe kunt u bevestigen dat de waarschuwing is verholpen?

  1. Pas de wijziging toe in de PHP-configuratie voor de webinterface en herstart of herlaad de betreffende web-/PHP-service.
  2. Meld u aan bij Nextcloud als beheerder en open Instellingen > Beheer > Overzicht .
  3. Vernieuw de pagina en controleer de configuratiewaarschuwingen. Controleer of de waarschuwing over de PHP-geheugenlimiet is verdwenen.
  4. Voer een representatieve bewerking uit die eerder de waarschuwing veroorzaakte, zoals de betreffende app-taak, en controleer de Nextcloud- en PHP-logboeken op berichten over geheugenuitputting.

Als je Nextcloud-achtergrondtaken ook via systeemcron uitvoert, controleer dan de PHP-configuratie van de CLI afzonderlijk. De waarschuwing op de website kan worden verwijderd, terwijl CLI-taken nog steeds een lagere limiet gebruiken. Controleer de CLI-waarde met php --inien php -ivoor hetzelfde PHP-binair bestand dat door de cron-opdracht wordt gebruikt.

Wanneer moet je de waarde boven de 512 miljoen verhogen?

Verhoog de limiet alleen wanneer de waarschuwing is verdwenen, maar een gedocumenteerde workload nog steeds de PHP-limiet bereikt, of wanneer de ondersteuningsrichtlijnen van een app meer geheugen vereisen. Controleer eerst het daadwerkelijke servergeheugen, het aantal PHP-FPM-workers, het databasegeheugen en andere services. Omdat PHP de limiet per script toepast, kunnen meerdere actieve workers tegelijkertijd aanzienlijk veel geheugen gebruiken. Stel een gemeten limiet in die past bij het geheugenbudget van de host in plaats van de limiet te gebruiken -1, die volgens PHP geen geheugenlimiet heeft.

Als de waarschuwing verdwenen is, maar de server nog steeds trager wordt of processen worden beëindigd, controleer dan het geheugen- en swapgebruik van het systeem, de PHP-FPM-logboeken en de Nextcloud-logboeken. Overweeg of een specifieke app of aanvraag buitensporig veel geheugen verbruikt. Een geheugencache zoals APCu of Redis lost problemen met caching en prestaties op; het is geen vervanging voor het instellen van de PHP-instellingen memory_limit. Wijzig één factor tegelijk, zodat u kunt vaststellen of het resultaat verbeterd is.

Snelle controles op basis van symptomen

  • De waarschuwing blijft zichtbaar na het bewerken van php.ini: controleer of u het CLI-bestand in plaats van het Apache/FPM-bestand hebt bewerkt, of dat een poolinstelling dit overschrijft.
  • De waarschuwing verdwijnt, maar een cron-taak mislukt nog steeds: controleer het CLI PHP-binair bestand en de bijbehorende configuratie.
  • De webserver geeft na een herstart een foutmelding: controleer de status en logbestanden van de webserver of de PHP-FPM-service en herstel de back-up als de configuratiewijziging een opstartfout heeft veroorzaakt.
  • De waarschuwing verdwijnt, maar de host heeft geen RAM meer: ​​verlaag de gelijktijdigheid, voeg geheugen toe of identificeer het proces dat geheugen gebruikt voordat u de PHP-limiet verder verhoogt.
  • Je gebruikt een container of een kant-en-klaar pakket: wijzig de ondersteunde PHP-instellingen van het pakket in plaats van het php.ini-bestand van de host.

Officiële referenties

Laat een reactie achter

Het probleem met het hoge CPU-gebruik in Jitsi Meet op clientbrowsers oplossen.

Het probleem met het hoge CPU-gebruik in Jitsi Meet op clientbrowsers oplossen.

Diagnoseer pieken in het CPU-gebruik van de Jitsi Meet-browser en verlaag de belasting van de client door videotegels, camera-effecten, browsergraphics en hostinstellingen te controleren.

Hoe je Jitsi Videobridge-statistieken kunt monitoren met Prometheus en Grafana

Hoe je Jitsi Videobridge-statistieken kunt monitoren met Prometheus en Grafana

Monitor de status van Jitsi Videobridge, de belasting van conferenties en het verkeer met het ingebouwde Prometheus-eindpunt, en analyseer en visualiseer de gegevens vervolgens in Grafana.

Hoe configureer je een aangepaste domeinnaam voor Jitsi Meet Docker?

Hoe configureer je een aangepaste domeinnaam voor Jitsi Meet Docker?

Configureer een aangepast domein voor Jitsi Meet Docker met DNS, PUBLIC_URL, HTTPS, Let's Encrypt, firewallpoorten, NAT-instellingen en end-to-end verificatie.

Oplossing voor de 404-fout 'Zimbra Admin Console niet gevonden' na SSL-vernieuwing.

Oplossing voor de 404-fout 'Zimbra Admin Console niet gevonden' na SSL-vernieuwing.

Los 404-fouten in de Zimbra Admin Console op na het vernieuwen van een SSL-certificaat door de juiste URL en poort, proxy-routering, servicestatus, geïmplementeerde certificaten en logbestanden te controleren.

Los de Nextcloud-waarschuwing "De PHP OPcache is niet correct geconfigureerd" op.

Los de Nextcloud-waarschuwing "De PHP OPcache is niet correct geconfigureerd" op.

Leer hoe u de PHP OPcache-configuratiewaarschuwing van Nextcloud kunt diagnosticeren en oplossen door de actieve PHP SAPI, groottelimieten, opmerkingen en hervalidatie-instellingen te controleren.

Corrigeer migratiefouten in de Kopano-database na een MySQL-versie-upgrade.

Corrigeer migratiefouten in de Kopano-database na een MySQL-versie-upgrade.

Los problemen met Kopano-databasemigraties na een MySQL- of MariaDB-upgrade op door back-ups, serverversies, SQL-modi, tekenset, schemastatus en logbestanden te controleren.

Hoe configureer je LDAP- en Active Directory-authenticatie in Nextcloud?

Hoe configureer je LDAP- en Active Directory-authenticatie in Nextcloud?

Verbind Nextcloud met LDAP of Active Directory via beveiligd transport, gebruikers- en groepsfilters, inlogkenmerken en een geteste uitrolprocedure.

Element Android-meldingen repareren zonder Google-services: UnifiedPush-handleiding

Element Android-meldingen repareren zonder Google-services: UnifiedPush-handleiding

Los problemen met Element Android-meldingen op telefoons zonder Google op door UnifiedPush, Android-machtigingen, batterij-instellingen en betrouwbare verificatietests te configureren.

Los de Nextcloud-waarschuwing "Database mist enkele indexen" op.

Los de Nextcloud-waarschuwing "Database mist enkele indexen" op.

Verwijder de waarschuwing van Nextcloud over ontbrekende database-indexen met het officiële occ-commando. Maak eerst een back-up, bekijk de wijzigingen, voer de reparatie uit en controleer het resultaat.

Hoe configureer je Single Sign-On (SSO) met Keycloak in Element Web?

Hoe configureer je Single Sign-On (SSO) met Keycloak in Element Web?

Configureer Keycloak SSO voor Element Web door OIDC met Synapse te verbinden, de exacte callback-URL in te stellen, gebruikersclaims te koppelen en het uitloggen te testen.