nextcloud / nextcloud/docker

PHP config and libs missing from image 34.0.2.1, 'Memcache OC\\Memcache\\APCu not available' in logs

Open
#2,591 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage bug
Dominant language
Shell
Stars
7.4k
Forks
1.9k
PR merge metrics
No merged PRs in 30d

Description

EDIT START:

The image nextcloud:34.0.2 is severely broken. Do not use!

EDIT END

Yesterday I upgraded my Nextcloud instance with docker compose pull and docker compose up -d and it started throwing errors in logs:

nextcloud-1  | [Tue Jul 28 04:58:34.404850 2026] [php:error] [pid 54:tid 54] [client 172.20.0.1:47012] PHP Fatal error:  
Uncaught OCP\\HintException: [0]: Memcache OC\\Memcache\\APCu not available for local cache 
(Is the matching PHP module installed and enabled?)\n\n  thrown in /var/www/html/lib/private/Memcache/Factory.php on line 77

This is my docker-compose.yaml:

services:
  nextcloud:
    image: nextcloud
    ports:
      - "40004:80"
    restart: always
    external_links:
      - mysql:mysql
    volumes:
      - /var/lib/nextcloud:/var/www/html
    networks:
      - common

networks:
  common:
    external: true

This is version.php from the container:

<?php 
$OC_Version = array(34,0,2,1);
$OC_VersionString = '34.0.2';
$OC_Edition = '';
$OC_Channel = 'stable';
$OC_VersionCanBeUpgradedFrom = array (
  'nextcloud' => 
  array (
    '33.0' => true,
    '34.0' => true,
  ),
  'owncloud' => 
  array (
    '10.13' => true,
    '10.14' => true,
    '10.15' => true,
    '10.16' => true,
  ),
);
$OC_Build = '2026-07-23T12:23:26+00:00 1a0ccac96f9b4a0682c60eac550c0eb03294626b';
$vendor = 'nextcloud';

I noticed that all ini files in /usr/local/etc/php/conf.d/ except docker-php-ext-sodium.ini are empty:

-rw-r--r-- 1 root root  0 Jul 23 23:08 docker-php-ext-apcu.ini
-rw-r--r-- 1 root root  0 Jul 23 23:07 docker-php-ext-bcmath.ini
-rw-r--r-- 1 root root  0 Jul 23 23:07 docker-php-ext-exif.ini
-rw-r--r-- 1 root root  0 Jul 23 23:07 docker-php-ext-ftp.ini
-rw-r--r-- 1 root root  0 Jul 23 23:07 docker-php-ext-gd.ini
-rw-r--r-- 1 root root  0 Jul 23 23:07 docker-php-ext-gmp.ini
-rw-r--r-- 1 root root  0 Jul 23 23:08 docker-php-ext-igbinary.ini
-rw-r--r-- 1 root root  0 Jul 23 23:08 docker-php-ext-imagick.ini
-rw-r--r-- 1 root root  0 Jul 23 23:07 docker-php-ext-intl.ini
-rw-r--r-- 1 root root  0 Jul 23 23:07 docker-php-ext-ldap.ini
-rw-r--r-- 1 root root  0 Jul 23 23:08 docker-php-ext-memcached.ini
-rw-r--r-- 1 root root  0 Jul 23 23:07 docker-php-ext-pcntl.ini
-rw-r--r-- 1 root root  0 Jul 23 23:07 docker-php-ext-pdo_mysql.ini
-rw-r--r-- 1 root root  0 Jul 23 23:07 docker-php-ext-pdo_pgsql.ini
-rw-r--r-- 1 root root  0 Jul 23 23:08 docker-php-ext-redis.ini
-rw-r--r-- 1 root root 17 Jul 14 01:28 docker-php-ext-sodium.ini
-rw-r--r-- 1 root root  0 Jul 23 23:07 docker-php-ext-sysvsem.ini
-rw-r--r-- 1 root root  0 Jul 23 23:07 docker-php-ext-zip.ini
-rw-r--r-- 1 root root  0 Jul 23 23:08 nextcloud.ini
-rw-r--r-- 1 root root  0 Jul 23 23:08 opcache-recommended.ini

Don't know if that's OK or not. However, after I added

extension=apcu.so
apc.enabled=1
apc.enable_cli=1

to docker-php-ext-apcu.ini I started getting a different error in container logs:

nextcloud-1  | Warning: PHP Startup: Unable to load dynamic library 'apcu.so' 
(tried: /usr/local/lib/php/extensions/no-debug-non-zts-20250925/apcu.so 
(/usr/local/lib/php/extensions/no-debug-non-zts-20250925/apcu.so: file too short), 
/usr/local/lib/php/extensions/no-debug-non-zts-20250925/apcu.so.so 
(/usr/local/lib/php/extensions/no-debug-non-zts-20250925/apcu.so.so: cannot open shared object file: No such file or directory))
 in Unknown on line 0

The contents of /usr/local/lib/php/extensions/no-debug-non-zts-20250925/ explains the file too short message:

-rw-r--r-- 1 root root      0 Jul 23 23:08 apcu.so
-rwxr-xr-x 1 root root      0 Jul 23 23:07 bcmath.so*
-rwxr-xr-x 1 root root      0 Jul 23 23:07 exif.so*
-rwxr-xr-x 1 root root      0 Jul 23 23:07 ftp.so*
-rwxr-xr-x 1 root root      0 Jul 23 23:07 gd.so*
-rwxr-xr-x 1 root root      0 Jul 23 23:07 gmp.so*
-rw-r--r-- 1 root root      0 Jul 23 23:08 igbinary.so
-rw-r--r-- 1 root root      0 Jul 23 23:08 imagick.so
-rwxr-xr-x 1 root root      0 Jul 23 23:07 intl.so*
-rwxr-xr-x 1 root root      0 Jul 23 23:07 ldap.so*
-rw-r--r-- 1 root root      0 Jul 23 23:08 memcached.so
-rwxr-xr-x 1 root root      0 Jul 23 23:07 pcntl.so*
-rwxr-xr-x 1 root root      0 Jul 23 23:07 pdo_mysql.so*
-rwxr-xr-x 1 root root      0 Jul 23 23:07 pdo_pgsql.so*
-rw-r--r-- 1 root root      0 Jul 23 23:08 redis.so
-rwxr-xr-x 1 root root 113944 Jul 14 01:28 sodium.so*
-rwxr-xr-x 1 root root      0 Jul 23 23:07 sysvsem.so*
-rwxr-xr-x 1 root root      0 Jul 23 23:07 zip.so*

I cannot use previous Nextcloud image to compare because of the downgrade prevention mechanism.

I cannot paste output from ./occ config:list system because I get error

An unhandled exception has been thrown:
OCP\HintException: [0]: Memcache OC\Memcache\Redis not available for distributed cache (Is the matching PHP module installed and enabled?)

My config.php:

$CONFIG = array (
  'instanceid' => '[redacted]',
  'passwordsalt' => '[redacted]',
  'datadirectory' => '/var/www/html/data',
  'dbtype' => 'mysql',
  'version' => '34.0.1.2',
  'installed' => true,
  'maxZipInputSize' => 838860800,
  'allowZipDownload' => true,
  'theme' => '',
  'maintenance' => false,
  'ldapIgnoreNamingRules' => false,
  'loglevel' => 0,
  'preview_libreoffice_path' => '/usr/bin/libreoffice',
  'enable_previews' => true,
  'trusted_domains' => 
  array (
    0 => '[redacted]',
  ),
  'dbname' => 'owncloud',
  'dbhost' => 'mysql',
  'dbuser' => 'owncloud',
  'dbpassword' => '[redacted]',
  'secret' => '[redacted]',
  'trashbin_retention_obligation' => 'auto',
  'updatechecker' => false,
  'filelocking.enabled' => true,
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'memcache.distributed' => '\\OC\\Memcache\\Redis',
  'redis' => 
  array (
    'host' => '[redacted]',
    'port' => 6379,
    'timeout' => 0,
  ),
  'ldapProviderFactory' => '\\OCA\\User_LDAP\\LDAPProviderFactory',
  'overwrite.cli.url' => '[redacted]',
  'mail_from_address' => 'nextcloud',
  'mail_smtpmode' => 'smtp',
  'mail_sendmailmode' => 'smtp',
  'mail_domain' => '[redacted]',
  'mail_smtphost' => '[redacted]',
  'trusted_proxies' => 
  array (
    0 => '172.20.0.1',
  ),
  'overwritehost' => '[redacted]',
  'overwriteprotocol' => 'https',
  'overwritewebroot' => '/',
  'mysql.utf8mb4' => true,
  'default_phone_region' => 'PL',
  'bulkupload.enabled' => false,
  'csrf.optout' => 
  array (
    0 => '/^.*nextcloudcmd.*/',
    1 => '/^.*Nextcloud.*/',
),
);

I run Nextcloud container on a Debian 13.6 system.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inspecting the image contents in /usr/local/etc/php/conf.d/ and /usr/local/lib/php/extensions/no-debug-non-zts-20250925/, comparing the PHP extension files and configuration with the reported empty files. Verify the Docker image build and runtime loading for APCu and Redis; done means the required extensions are present and Nextcloud starts without the cache-related fatal errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, php, redis
Domain
devops, infrastructure
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.