Fehler: Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB

Guten Tag,

nach meiner Installation erscheint auf der Seite “Verwaltung> Übersicht” die Warnung “Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB".

Ich habe den Wert jedoch bereits auf 1GB angepasst in der php.ini

/etc/php/8.0/apache2/php.ini
service apache2 restart

Installiert wurde unter Ubuntu mit einem LAMP Stack auf einer Cloud bei Hetzner.

Hat noch jemand eine Idee woran es liegen könnte?

Vielen Dank!!

Update:
Habe via

php -i |grep php.ini

geprüft welche Version verwendet wird:

Configuration File (php.ini) Path => /etc/php/8.1/cli
Loaded Configuration File => /etc/php/8.1/cli/php.ini

und dann den Wert von -512 auf 1G erhöht aber leider mit dem gleichen Ergebnis.

Sieht so aus als würdest du php8.1 nutzen (siehe dein php-i )
Dementsprechend entweder die Nutzung auf php8.0 ändern oder in der php.ini von php8.1 den Wert ändern.
VG Fisher

edit: würde dir empfehlen php8.0 zu nutzen, scheinbar können einige Apps noch nicht mit 8.1 umgehen.

2 Likes

Okay und wie kann ich das möglichst unkompliziert auf php 8.0 ändern??

a2dismod php8.1
a2enmod php8.0

systemctl restart apache2

Und noch die standard php version auf 8.0 stellen

update-alternatives --config php

Dort dann die gewunschte Nummer eingeben und bestatigen

Hoffe es klappt bei dir, sonst gibt nochmal Bescheid.
Fisher

1 Like

a2dismod php8.1

ERROR: Module php8.1 does not exist!

Ich habe im Ordner auch kein php 8.1 - nur php -i |grep php.ini ist eben der Meinung, dass es das gibt.

EDIT:

Considering conflict php5 for php8.0:

Module php8.0 already enabled

Was ist aktuell als “Default” PHP Version eingestellt?

update-alternatives --config php

root@**********:~# update-alternatives --config php
There are 3 choices for the alternative php (providing /usr/bin/php).

Selection Path Priority Status

  • 0 /usr/bin/php8.1 81 auto mode
    1 /usr/bin/php7.4 74 manual mode
    2 /usr/bin/php8.0 80 manual mode
    3 /usr/bin/php8.1 81 manual mode

Press to keep the current choice[*], or type selection number:

Dann mal php8.0 auswählen (mit 2 und dann Enter) und danach Apache neustarten.
Fisher

Habe ich gemacht. Danach habe ich nochmal die php.ini kontrolliert von der 8.0 Version und dann neugestartet. Es stimmt nun alles aber ich bekomme den Fehler immer noch.

Der Befehl php -i | grep php.ini
zeigt dir nur den Pfad zu deiner command line, cli/php.ini
Wenn du wissen willst welche php.Ini der Apache verwendet
musst du den Apachen selber Fragen
PHP Datei erzeugen und mit diesem Inhalt bestücken phpinfo()
danach kannst du dir den Pfand für die Ini Suchen

Okay das klingt nach einer vernünftigen Lösung. Wie erstelle ich eine neue PHP Datei, und vor allem wo, und “phpinfo()” schreibe ich einfach nur rein?

https://www.php.net/manual/de/function.phpinfo.php

die Datei erstellt du mit deinem lienblings Editor vi oder nano gedit
oder über den cat > /pfad zu deinem webroot meineinfo.php befehl

und zwar in deinem root verzeichnis vom webserver

Das habe ich gemacht. Direkt im Root Verzeichnis, wenn ich nun domain.de/info.php in den Browser eingebe steht dort " DIE SEITE KONNTE LEIDER NICHT GEFUNDEN WERDEN."

Die info.php hast du bei dir im Verzeichnis /var/www/files angelegt? (aus deinem anderen Beitrag müsste /var/www/files das entsprechende Verzeichnis sein)

Wenn du dich in Nextcloud anmeldest hast du im Browser oben dann /index.php/apps/files/ oder /apps/files/ stehen, also mit oder ohne index.php?

Habe es hinbekommen!

PHP Version 8.0.19

Aber das habe ich vorher ja auch schon angenommen aber musste es über htaccces machen.

Und den “PHP OPcache-Modul” Fehler bekomme ich trotz richtiger ini auch nicht raus. Habt ihr noch eine Idee?

Worauf moboter hinaus möchte sind die Angaben, die du in der Übersicht findest. Oben steht z.B. “Loaded Configuration file”, hier steht welche .ini Datei gelesen wurde, genau wie Additional .ini files parsed. Da mal schauen, ob es noch Dateien gibt, die eine Rolle spielen.

Da .htaccess ja bei dir funtkioniert, könntest du auch überlegen die Angaben in die VirtualHost Konfiguration vom Apache zu verschieben. Dann brauchst du dir keine Gedanken über etwaige Updates machen, die die .htaccess überschreiben.

Ja, das habe ich mir gedacht nur ist die “Loaded Configuration file” leider die, die ich schon abgeändert habe und unter den Additional Sachen habe ich sehr viel:

/etc/php/8.0/apache2/conf.d/10-mysqlnd.ini, /etc/php/8.0/apache2/conf.d/10-opcache.ini, /etc/php/8.0/apache2/conf.d/10-pdo.ini, /etc/php/8.0/apache2/conf.d/15-xml.ini, /etc/php/8.0/apache2/conf.d/20-apcu.ini, /etc/php/8.0/apache2/conf.d/20-bcmath.ini, /etc/php/8.0/apache2/conf.d/20-calendar.ini, /etc/php/8.0/apache2/conf.d/20-ctype.ini, /etc/php/8.0/apache2/conf.d/20-curl.ini, /etc/php/8.0/apache2/conf.d/20-dom.ini, /etc/php/8.0/apache2/conf.d/20-exif.ini, /etc/php/8.0/apache2/conf.d/20-ffi.ini, /etc/php/8.0/apache2/conf.d/20-fileinfo.ini, /etc/php/8.0/apache2/conf.d/20-ftp.ini, /etc/php/8.0/apache2/conf.d/20-gd.ini, /etc/php/8.0/apache2/conf.d/20-gettext.ini, /etc/php/8.0/apache2/conf.d/20-gmp.ini, /etc/php/8.0/apache2/conf.d/20-iconv.ini, /etc/php/8.0/apache2/conf.d/20-igbinary.ini, /etc/php/8.0/apache2/conf.d/20-imagick.ini, /etc/php/8.0/apache2/conf.d/20-intl.ini, /etc/php/8.0/apache2/conf.d/20-mbstring.ini, /etc/php/8.0/apache2/conf.d/20-mysqli.ini, /etc/php/8.0/apache2/conf.d/20-pdo_mysql.ini, /etc/php/8.0/apache2/conf.d/20-phar.ini, /etc/php/8.0/apache2/conf.d/20-posix.ini, /etc/php/8.0/apache2/conf.d/20-readline.ini, /etc/php/8.0/apache2/conf.d/20-redis.ini, /etc/php/8.0/apache2/conf.d/20-shmop.ini, /etc/php/8.0/apache2/conf.d/20-simplexml.ini, /etc/php/8.0/apache2/conf.d/20-sockets.ini, /etc/php/8.0/apache2/conf.d/20-sysvmsg.ini, /etc/php/8.0/apache2/conf.d/20-sysvsem.ini, /etc/php/8.0/apache2/conf.d/20-sysvshm.ini, /etc/php/8.0/apache2/conf.d/20-tokenizer.ini, /etc/php/8.0/apache2/conf.d/20-xmlreader.ini, /etc/php/8.0/apache2/conf.d/20-

Also die Befehle die ich gerade in der .htaccess habe einfach in die config schieben?
Wo ist da der Zusammenhang? Und bekomme ich darüber auch meinen PHP OPCache Modul Fehler gelöst?

Ja, nach wie vor etwas irritierend, das die Werte nicht genutzt werden, wenn es die richtigen Dateien sind und sie auch nicht anderswo überschrieben werden.

Bzgl. Opcache würde sich ein Blick in die Datei lohnen /etc/php/8.0/apache2/conf.d/10-opcache.ini

Genau, im Prinzip sollten die Werte wie php_value memory_limit 1024M auch in deiner virtualhost config gesetzt werden können, dann sparst du dir den Weg über die .htaccess.

; configuration for php opcache module
; priority=10
zend_extension=opcache.so

Mehr ist in der 10-opcache.ini nicht

Dann probiere ich das sofort mal aus.

php_value memory_limit 2G
php_value upload_max_filesize 16G

und für den anderen Fehler:

php_value opcache.enable 1

und die anderen 7 Werte eben auch auf diese Art und Weise?

Sollte php_flag opcache.enable on sein (da boolean, siehe PHP: How to change configuration settings - Manual)