Apache2/Nextcloud Docker 錯誤:“\OC\Memcache\APCu 不適用於本機快取”

Apache2/Nextcloud Docker 錯誤:“\OC\Memcache\APCu 不適用於本機快取”

我有一個 Apache2 Docker 容器,位於/var/www/html/nextcloud安裝路徑中,其中包含 Nextcloud 檔案。但是,當我嘗試/var/www/html/nextcloud/cron.php使用以下命令執行 Nextcloud 的 cronjob ( ) 時:

docker exec -u www-data webserver php /var/www/html/nextcloud/cron.php

我總是收到錯誤:

OCP\HintException: [0]: Memcache \OC\Memcache\APCu not available for local cache (Is the matching PHP module installed and enabled?)

是的,它已啟用。

Apache 虛擬主機設定:

<VirtualHost *:80>
   ServerName cloud.domain.de
   Redirect / https://cloud.domain.de/
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "/var/www/html/nextcloud"
<IfModule mod_headers.c>
    Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</IfModule>
SSLEngine on
SSLCertificateFile "/etc/letsencrypt/live/cloud.domain.de/cert.pem"
SSLCertificateKeyFile "/etc/letsencrypt/live/cloud.domain.de/privkey.pem"
SSLCertificateChainFile "/etc/letsencrypt/live/cloud.domain.de/chain.pem"
</VirtualHost>

雲運作良好;只有 cronjob 沒有運作。

下一個雲端配置:

<?php
$CONFIG = array (
  'htaccess.RewriteBase' => '/',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'apps_paths' => 
  array (
    0 => 
    array (
      'path' => '/var/www/html/nextcloud/apps',
      'url' => '/apps',
      'writable' => false,
    ),
    1 => 
    array (
      'path' => '/var/www/html/nextcloud/custom_apps',
      'url' => '/custom_apps',
      'writable' => true,
    ),
  ),
  'instanceid' => 'oc0lur3krx8v',
  'passwordsalt' => 'dZemkG1vxBvlOJWKbM2qfby4+zQnHf',
  'secret' => '7kv+ZkKR7CLhFckepPJCpxI4eWZWO9EOEW3qzgpg8TIhLsE9',
  'trusted_domains' => 
  array (
    0 => 'IP:99',
    1 => 'cloud.domain.de',
  ),
  'datadirectory' => '/var/www/html/nextcloud/data',
  'dbtype' => 'mysql',
  'version' => '23.0.0.10',
  'overwrite.cli.url' => 'http://IP',
  'dbname' => 'nextcloud',
  'dbhost' => 'IP',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => 'nextcloud',
  'dbpassword' => '9*oh5VM7h2yHj-(Q',
  'installed' => true,
  'default_phone_region' => 'DE',
  'updater.secret' => '$2y$10$YZw2sSl8ssbt1SOokyC9kOAtui2gmabmhKCmeVzlBTU1rGqVRisFm',
  'loglevel' => 2,
  'maintenance' => false,
  'app_install_overwrite' => 
  array (
    0 => 'occweb',
  ),
);

我現在已經有了 memcached,容器已經新建並永遠寫入配置中,但這一切都沒有帶來任何人發現錯誤?

資訊:

IP是伺服器 IP 位址的佔位符。

domain.de是網域名稱的佔位符,因為我不想發布該網域(不是強制性的)。

答案1

嘗試根據 PHP 或作業系統設定設定或等效路徑apc.enable_cli=1/etc/php/8.0/mods-available/apcu.ini

一些用戶遇到了同樣的問題,並透過應用程式上述更改修復了該問題: https://github.com/nextcloud/server/issues/27781#issuecomment-873515055

此外,如 Nextcloud 管理手冊(​​Nextcloud 設定 -> 記憶體快取 -> APCu)中所述,APCu 在 CLI 上預設為停用狀態: https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html#id1

APCu 在 CLI 上預設為停用狀態,這可能會導致 nextcloud 的 cron 作業出現問題。請確保在設定檔中apc.enable_cli 設定或附加到 cron 作業呼叫。1php.ini--define apc.enable_cli=1

相關內容