Page 1 of 1

Opcache zwischen Nutzern trennen

Posted: Fri 12. Oct 2018, 18:28
by v3ng
Hi,

Um die Performance zu steigern, möchte ich Opcache nutzen.
Ich habe hierfür folgende Settings in das Feld für die zusätzlichen PHP Einstellungen eingetragen.

Code: Select all

opcache.enable=1
opcache.enable_cli=1
opcache.validate_permission=1
opcache.validate_root=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=256
opcache.save_comments=1
opcache.revalidate_freq=1

Um die Funktionalität zu überprüfen, habe ich einem Kunden ein OPcache Status Script in den Docroot gepackt.

Dabei musste ich jedoch feststellen, dass der Cache scheinbar Global ist und alle Kunden darauf Zugriff haben, was wohl ein Sicherheitsrisiko darstellt.
Ich möchte den Cache pro User seperieren, jeder User soll also seinen eigenen Cache mit der Größe von 256MB haben.

Laut Google sollten dafür eigentlich folgende Einstellungen ausreichen, doch leider scheint das nicht der Fall zu sein.

Code: Select all

opcache.validate_permission=1
opcache.validate_root=1
Image

Hat jemand eine Idee wie ich die Nutzer bzw den Cache jeweils seperieren kann?
Über Hinweise wäre ich sehr dankbar!

Grüße

Re: Opcache zwischen Nutzern trennen

Posted: Fri 12. Oct 2018, 18:41
by OlliTheDarkness
Daran beiß ich mir auch schon länger die Zähne aus.
Nextcloud log spammt fleißig Fehler fehler fehler wegen opcache.
Habs abr mittlerweile wegen "läuft trotzdem" auf meiner todo ganz hinten.

Re: Opcache zwischen Nutzern trennen

Posted: Fri 16. Nov 2018, 23:47
by v3ng
Niemand eine Idee?

Re: Opcache zwischen Nutzern trennen

Posted: Mon 3. Dec 2018, 12:29
by Blackmoon
Moin.
v3ng wrote: Fri 12. Oct 2018, 18:28 Dabei musste ich jedoch feststellen, dass der Cache scheinbar Global ist und alle Kunden darauf Zugriff haben, was wohl ein Sicherheitsrisiko darstellt.
Ich möchte den Cache pro User seperieren, jeder User soll also seinen eigenen Cache mit der Größe von 256MB haben.
Laut dieser Beschreibung ist das bei OPCache nicht vorgesehen.
v3ng wrote: Fri 12. Oct 2018, 18:28 Laut Google sollten dafür eigentlich folgende Einstellungen ausreichen, doch leider scheint das nicht der Fall zu sein.

Code: Select all

opcache.validate_permission=1
opcache.validate_root=1
opcache.validate_permission: Funktioniert meinem Verständis nach nur, wenn PHP-FPM unter dem jeweiligen Benutzerkonto ausgeführt wird.
opcache.validate_root: Ist nur für Umgebungen in Verbindung mit chroot gedacht.

Du könntest auf die Nutzung von Shared Memory verzichten und auf Datei basierenden Cache zurückgreifen.

Code: Select all

opcache.file_cache_only=1
opcache.file_cache=/home/users/dani/opcache
Bezüglich möglicher Attaken habe hat ein Kollege einen guten Artikel geschrieben.


Gruß,
Dani

Re: Opcache zwischen Nutzern trennen

Posted: Mon 3. Dec 2018, 17:12
by v3ng
Hi,

Vielen Dank für Deine Antwort!
@Alexander ist es denn möglich bei dem "Zusätzliche PHP-Einstellungen" Feld bei den Kontovorlagen Variablen für den Username/ Docroot zu verwenden?

Re: Opcache zwischen Nutzern trennen

Posted: Tue 4. Dec 2018, 09:21
by Alexander
@v3ng - ist für 18.2.1 notiert - sollte dann relativ zeitnah erscheinen.