Nextcloud gibt eventuell die Warnung aus, dass der PHP OPCache nicht korrekt konfiguriert sei. OPCache ist ein Modul, das PHP Skripte dadurch beschleunigt, in dem der Code in den Arbeitsspeicher geladen wird. Leider ist Nextcloud ziemlich empfindlich, wenn auch nur ein Wert anders ist. Hier die Werte aus der Anleitung:

The OPcache improves the performance of PHP applications by caching precompiled bytecode. We recommend at least the following settings:

opcache.enable = 1
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 128
opcache.save_comments = 1
opcache.revalidate_freq = 1

Wie finden wir nun heraus, ob unser Server genau diese Einstellungen hinterlegt hat, wenn wir keinen Zugriff auf die php.ini besitzen? Ganz einfach. Wir erstellen auf dem Server die Datei opcache.php mit dem folgenden Inhalt:

<?php
# #####################################
# Script:      opcache status
# Author:      Marc Gutt
# #####################################
$opcache_settings_text = '
opcache.enable	1221
opcache.enable_cli fdsdf
opcache.memory_consumption
opcache.interned_strings_buffer
opcache.max_accelerated_files
opcache.max_wasted_percentage
opcache.use_cwd
opcache.validate_timestamps
opcache.revalidate_freq
opcache.revalidate_path
opcache.save_comments
opcache.fast_shutdown
opcache.enable_file_override
opcache.optimization_level
opcache.inherited_hack
opcache.dups_fix
opcache.blacklist_filename
opcache.max_file_size
opcache.consistency_checks
opcache.force_restart_timeout
opcache.error_log
opcache.log_verbosity_level
opcache.preferred_memory_model
opcache.protect_memory
opcache.mmap_base
opcache.restrict_api
opcache.file_update_protection
opcache.huge_code_pages
opcache.lockfile_path
opcache.opt_debug_level
opcache.file_cache
opcache.file_cache_only
opcache.file_cache_consistency_checks
opcache.file_cache_fallback
opcache.validate_permission
opcache.validate_root
opcache.preload
opcache.preload_user
opcache.cache_id
opcache.jit
opcache.jit_buffer_size
opcache.jit_debug
opcache.jit_bisect_limit
opcache.jit_prof_threshold
opcache.jit_max_root_traces
opcache.jit_max_side_traces
opcache.jit_max_exit_counters
opcache.jit_hot_loop
opcache.jit_hot_func
opcache.jit_hot_return
opcache.jit_hot_side_exit
opcache.jit_blacklist_root_trace
opcache.jit_blacklist_side_trace
opcache.jit_max_loop_unrolls
opcache.jit_max_recursive_calls
opcache.jit_max_recursive_returns
opcache.jit_max_polymorphic_calls
'
?>
<ul>
<?php
$opcache_settings = array_filter(array_map("trim", explode("\n", $opcache_settings_text)));
foreach ($opcache_settings as $opcache_setting) {
    list($opcache_setting) = preg_split('/\s+/', $opcache_setting);
    echo "<li>" . $opcache_setting . ": " . ini_get($opcache_setting) . "</li>";
}
?>
</ul>

Außerdem, da Nextcloud nur den Zugriff auf bestimmte Dateien erlaubt, öffnen wir die .htaccess und suchen nach dieser Zeile:

  RewriteCond %{REQUEST_FILENAME} !/cron.php

Danach ergänzen wir:

  RewriteCond %{REQUEST_FILENAME} !/opcache.php

Wenn wir nun über example.com/opcache.php unsere Nextcloud öffnen, sehen wir alle aktiven OPCache-Einstellungen des Servers. Beispiel:

Wir können nun den Hoster darum bitten die php.ini entsprechend anzupassen, falls manche Einstellungen nicht mit den Vorgaben der Nextcloud Anleitung übereinstimmen.

Eine Antwort

  1. Wäre schön, wenn ihr den Ort der php.ini nennen würdet z.B. bei einem eigenen Ubuntu-Server.
    Ich mache so wenig mit PHP, dass ich da jedes mal suche.

    Viele Grüße
    Thomas

Schreibe einen Kommentar zu Vincent Vegas Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert