Skip to content

On upgrade: Warning: /var/www/html/config/….config.php differs from the latest version of this image at /usr/src/nextcloud/config/….config.php #2266

Closed as not planned

Description

@rugk

When upgrading from Nextcloud 28 to Nextcloud 29 I got these warnings. As they relate to stuff inside of the image and no plugins or configs, which are thought to be adjusted, I thought this might be wrong (or it would not be a warning, would it?):

Jul 19 01:46:44 *********** nextcloud_nc_1[16123]: Initializing finished
Jul 19 01:46:44 *********** nextcloud_nc_1[16123]: Warning: /var/www/html/config/apcu.config.php differs from the latest version of this image at /usr/src/nextcloud/config/apcu.config.php
Jul 19 01:46:44 *********** nextcloud_nc_1[16123]: Warning: /var/www/html/config/apps.config.php differs from the latest version of this image at /usr/src/nextcloud/config/apps.config.php
Jul 19 01:46:44 *********** nextcloud_nc_1[16123]: Warning: /var/www/html/config/autoconfig.php differs from the latest version of this image at /usr/src/nextcloud/config/autoconfig.php
Jul 19 01:46:44 *********** nextcloud_nc_1[16123]: Warning: /var/www/html/config/redis.config.php differs from the latest version of this image at /usr/src/nextcloud/config/redis.config.php
Jul 19 01:46:44 *********** nextcloud_nc_1[16123]: Warning: /var/www/html/config/reverse-proxy.config.php differs from the latest version of this image at /usr/src/nextcloud/config/reverse-proxy.config.php
Jul 19 01:46:44 *********** nextcloud_nc_1[16123]: Warning: /var/www/html/config/s3.config.php differs from the latest version of this image at /usr/src/nextcloud/config/s3.config.php
Jul 19 01:46:44 *********** nextcloud_nc_1[16123]: Warning: /var/www/html/config/smtp.config.php differs from the latest version of this image at /usr/src/nextcloud/config/smtp.config.php
Jul 19 01:46:44 *********** nextcloud_nc_1[16123]: Warning: /var/www/html/config/swift.config.php differs from the latest version of this image at /usr/src/nextcloud/config/swift.config.php
Jul 19 01:46:44 *********** nextcloud_nc_1[16123]: Warning: /var/www/html/config/upgrade-disable-web.config.php differs from the latest version of this image at /usr/src/nextcloud/config/upgrade-disable-web.config.php
Jul 19 01:46:44 *********** nextcloud_nc_1[16123]: => Searching for scripts (*.sh) to run, located in the folder: /docker-entrypoint-hooks.d/before-starting

Compose file (with podman-compose):

version: '3.7'
services:

  caddy:
    image: docker.io/caddy
    restart: unless-stopped
    ports:
      - "1001:80"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro,z
      - caddy_data:/data
      - caddy_config:/config
      - nc_data:/var/www/html
    networks:
      - caddynet
    depends_on:
      - nc
    healthcheck:
      # https://stackoverflow.com/a/47722899/5008962
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost/status.php", "||", "exit", "1"]
      interval: 1m30s
      timeout: 30s
      retries: 3
      start_period: 40s
    labels:
      - io.containers.autoupdate=registry

  nc:
    image: docker.io/nextcloud:29-fpm
    restart: unless-stopped
    volumes: &nextcloud_volumes
      - nc_data:/var/www/html
      # better tmp fs for better performance, see https://github.com/nextcloud/recognize#tmp
      - type: tmpfs
        target: /tmp:exec
      - type: bind
        source: /var/mnt/external/@/nextcloud
        target: /var/mnt/userdata:z
      - type: bind
        source: ${HOME:?HOME variable missing}/nextcloud_config
        target: /var/www/html/config:z
      # workaround for php-fpm issue https://github.com/nextcloud/docker/pull/1766
      - type: bind
        source: ./php-fpm-config/zz-prevent-servererror-onload.conf
        target: /usr/local/etc/php-fpm.d/zz-prevent-servererror-onload.conf:z
    networks:
      - caddynet
      - redisnet
      - dbnet
    environment: &nextcloud_environment
      - REDIS_HOST=redis
      - REDIS_HOST_PASSWORD=${REDIS_HOST_PASSWORD:?REDIS_HOST_PASSWORD variable missing}
      - MYSQL_HOST=db
    env_file: &nextcloud_env_file
      - db-shared.env
    depends_on: &nextcloud_depends_on
      - db
      - redis
    expose:
      - 9000
    labels:
      - io.containers.autoupdate=registry

  redis:
    image: docker.io/redis:alpine
    command: redis-server --requirepass ${REDIS_HOST_PASSWORD:?REDIS_HOST_PASSWORD variable missing}
    restart: unless-stopped
    networks:
      - redisnet
    expose:
      - 6379
    labels:
      - io.containers.autoupdate=registry

  cron:
    image: docker.io/nextcloud:29-fpm
    restart: unless-stopped
    volumes: *nextcloud_volumes
    entrypoint: /cron.sh
    networks:
    - redisnet
    - dbnet
    environment: *nextcloud_environment
    env_file: *nextcloud_env_file
    depends_on: *nextcloud_depends_on
    labels:
      - io.containers.autoupdate=registry

  db:
    image: docker.io/mariadb:10.6
    command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
    restart: unless-stopped
    volumes:
      - db_data:/var/lib/mysql
      # workaround for "Too many connections"
      - type: bind
        source: ./mariadb-config/increase-active-connections.cnf
        target: /etc/mysql/conf.d/increase-active-connections.cnf:z
    networks:
      - dbnet
    environment:
      - MARIADB_AUTO_UPGRADE=1
      - MARIADB_DISABLE_UPGRADE_BACKUP=1
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:?MYSQL_ROOT_PASSWORD variable missing}
    env_file:
      - db-shared.env
    expose:
      - 3306
    labels:
      - io.containers.autoupdate=registry

volumes:
  db_data:
  nc_data:
  caddy_data:
  caddy_config:

networks:
  caddynet:
  dbnet:
  redisnet:

Startup command for testing is: podman-compose -p nextcloud down&&podman-compose --in-pod=0 -p nextcloud up -d

Config

{
    "system": {
        "memcache.local": "\\OC\\Memcache\\Redis",
        "apps_paths": [
            {
                "path": "\/var\/www\/html\/apps",
                "url": "\/apps",
                "writable": false
            },
            {
                "path": "\/var\/www\/html\/custom_apps",
                "url": "\/custom_apps",
                "writable": true
            }
        ],
        # ...
        "app_install_overwrite": [
            "ransomware_protection",
            "bookmarks_fulltextsearch",
            "news"
        ],
        "maintenance_window_start": 1
    }
}

Images used

$ podman ps -a
CONTAINER ID  IMAGE                                    COMMAND               CREATED         STATUS                    PORTS                                                     NAMES
[…]
1b9b98b17158  docker.io/library/redis:alpine           redis-server --re...  18 minutes ago  Up 18 minutes             6379/tcp                                                  nextcloud_redis_1
e3b3df7d8cd7  docker.io/library/mariadb:10.6           --transaction-iso...  18 minutes ago  Up 18 minutes             3306/tcp                                                  nextcloud_db_1
20ca0cfb875e  docker.io/library/nextcloud:29-fpm       php-fpm               18 minutes ago  Up 18 minutes             9000/tcp                                                  nextcloud_nc_1
e91d4a1132e1  docker.io/library/nextcloud:29-fpm                             18 minutes ago  Up 17 minutes             9000/tcp                                                  nextcloud_cron_1
2beaab8b3406  docker.io/library/caddy:latest           caddy run --confi...  17 minutes ago  Up 17 minutes (healthy)   0.0.0.0:1001->80/tcp, 80/tcp, 443/udp, 443/tcp, 2019/tcp  nextcloud_caddy_1
$ podman inspect nextcloud_nc_1
[
     {
          "Id": "20ca0cfb875e2f068c24c50167b9b74ddc18c3dd400ae4ca7093b4f97c144f58",
          "Created": "2024-07-19T01:43:08.855975341+02:00",
          "Path": "/entrypoint.sh",
          "Args": [
               "php-fpm"
          ],
          "State": {
               "OciVersion": "1.2.0",
               "Status": "running",
               "Running": true,
               "Paused": false,
               "Restarting": false,
               "OOMKilled": false,
               "Dead": false,
               "Pid": 16125,
               "ConmonPid": 16123,
               "ExitCode": 0,
               "Error": "",
               "StartedAt": "2024-07-19T01:43:20.167168212+02:00",
               "FinishedAt": "0001-01-01T00:00:00Z",
               "CgroupPath": "/user.slice/user-1002.slice/user@1002.service/user.slice/libpod-20ca0cfb875e2f068c24c50167b9b74ddc18c3dd400ae4ca7093b4f97c144f58.scope",
               "CheckpointedAt": "0001-01-01T00:00:00Z",
               "RestoredAt": "0001-01-01T00:00:00Z"
          },
          "Image": "ef280332235c73485674637060ffbe0154d3d60a7da345114e0424dca9da15e6",
          "ImageDigest": "sha256:d2dc74b2ce5fc6b06e1bf454320bb6388817757b41314a0214af4eac278a3c42",
          "ImageName": "docker.io/library/nextcloud:29-fpm",
[…]

System

$ podman --version
podman version 5.1.1
$ podman-compose --version
podman-compose version 1.2.0
podman version 5.1.1
$ rpm-ostree status -b
[…]
● fedora:fedora/x86_64/coreos/stable
                  Version: 40.20240701.3.0 (2024-07-16T16:03:29Z)
               BaseCommit: 45982eca152d020f23a547813538939e9bfdcfefc8c059e88970d1bbf4ada0bb
             GPGSignature: Valid signature by 115DF9AEF857853EE8445D0A0727707EA15B79CC
          LayeredPackages: ***

Fedora CoreOS 40

Expected result

IMHO no warnings about such a file should be issued if I am using an official container image. In such an image, I expect all files to pass the validity check for obvious reasons… this warning is thus somewhat disturbing.

Current result

Warning, see above

Activity

  1. ralfi commented on Jul 19, 2024

    @ralfi

    Same here, and upgrade scripts to 29.0.4 will not work.

  2. ralfi commented on Jul 19, 2024

    @ralfi

    Sorry, my mistake. Not changig to the latest image tag... Now upgrade scripts are working but warnings still appears

  3. joshtrichards commented on Jul 19, 2024

    @joshtrichards
    Member

    As they relate to stuff inside of the image and no plugins or configs,

    It's referencing your configs stored on persistent storage, not something in the image.

    Docs w/ explanation: https://github.com/nextcloud/docker?tab=readme-ov-file#auto-configuration-and-nextcloud-updates

    Additional references:

  4. rugk commented on Jul 28, 2024

    @rugk
    ContributorAuthor

    Ah, would be great if the error message could link to the description or so or otherwise make it clear, that one can copy the files from the target to the source to fix this.

    As I've never modified the multiple files, and I actually also, as aah… as far as I see now, I never even had copied the original files. I still have only one config.php file in there, how it used to be in dunno… many, many versions ago:

    $ podman-compose exec nc sh
    # cd /var/www/html/config
    # ls -la
    total 12
    drwxrwxr-x. 1 www-data www-data  100 Jan 24  2022 .
    drwxr-xr-x. 1 www-data www-data  554 Jul 25 09:23 ..
    -rw-r-----. 1 www-data www-data 2787 Jul 25 09:24 config.php
    -rw-r--r--. 1 www-data www-data  319 Feb 29 11:56 mimetypealiases.json
    -rw-r--r--. 1 www-data www-data  439 Feb 29 11:56 mimetypemapping.json

    Is there any good upgrade migration/path/recommendation on how to split the file, apparently?

    Also the JSON files are apparently created by Nextcloud or by me for some extension (OnlyOffice or Nextcloud Office maybe?):

    # cat mimetypealiases.json
    {
        "": "x-office/document",
        "application/vnd.openxmlformats-officedocument.wordprocessingml.document.docxf": "x-office/document",
        "application/vnd.openxmlformats-officedocument.wordprocessingml.document.oform": "x-office/document",
        "application/x-ownpad": "pad",
        "application/x-ownpad-calc": "calc"
    }# cat mimetypemapping.json
    {
        "pad": [
            "application/x-ownpad"
        ],
        "calc": [
            "application/x-ownpad-calc"
        ],
        "maps": [
            "application/x-nextcloud-maps"
        ],
        "noindex": [
            "application/x-nextcloud-noindex"
        ],
        "nomedia": [
            "application/x-nextcloud-nomedia"
        ],
        "noimage": [
            "application/x-nextcloud-noimage"
        ],
        "notrack": [
            "application/x-nextcloud-maps-notrack"
        ]
  5. joshtrichards commented on Jul 30, 2024

    @joshtrichards
    Member

    Ah, would be great if the error message could link to the description or so or otherwise make it clear, that one can copy the files from the target to the source to fix this.

    I think we did have a link in the warning at one point during development but removed it to streamline things. Oops. 🤣

    Is there any good upgrade migration/path/recommendation on how to split the file, apparently?

    You shouldn't have to split anything. Basically just add the additional files and leave your existing config.php in place.

    Also the JSON files are apparently created by Nextcloud or by me for some extension (OnlyOffice or Nextcloud Office maybe?):

    Those can stay in place.

    Essentially anything you have is fine. The additional files are for supporting all the documented Docker auto-configuration stuff (mostly) and a few other requirements like disabling the web updater (which is never to be used with the Docker image).

  6. rugk commented on Jul 31, 2024

    @rugk
    ContributorAuthor

    I think we did have a link in the warning at one point during development but removed it to streamline things. Oops. 🤣

    I am unsure what streamlining would mean in that context and how removing such a link helps there, but if you want then well… re-add it?

    Also the Readme says:

    Keep in mind that once set, removing these environment variables won't remove these values from the configuration file, due to how Nextcloud merges configuration files together.

    This is not true anymore, is it? The config PHP's always read the env via getenv, so updates should be processed? The PHP files itself are not ovrwritten/changed, after all?

  7. changed the title [-]On upgrade warnigs about PHP files differing are issued: "Warning: /var/www/html/config/….config.php differs from the latest version of this image at /usr/src/nextcloud/config/….config.php"[/-] [+]On upgrade: `Warning: /var/www/html/config/….config.php differs from the latest version of this image at /usr/src/nextcloud/config/….config.php`[/+] on Aug 27, 2024
  8. hufhend commented on Aug 30, 2024

    @hufhend

    The exact same thing happened to me. I run on K8s and upgraded a few months back via helm and major release. Step by step.
    A bit awkward is that in the mounted repository the files are newer (today's) than in the image.

    Which is weird. However, I replaced them all on the remote server with the version from the image and it didn't help.

    Error:

    Warning: /var/www/html/config/apache-pretty-urls.config.php differs from the latest version of this image at /usr/src/nextcloud/config/apache-pretty-urls.config.php
    Warning: /var/www/html/config/apcu.config.php differs from the latest version of this image at /usr/src/nextcloud/config/apcu.config.php
    Warning: /var/www/html/config/apps.config.php differs from the latest version of this image at /usr/src/nextcloud/config/apps.config.php
    Warning: /var/www/html/config/autoconfig.php differs from the latest version of this image at /usr/src/nextcloud/config/autoconfig.php
    Warning: /var/www/html/config/redis.config.php differs from the latest version of this image at /usr/src/nextcloud/config/redis.config.php
    Warning: /var/www/html/config/smtp.config.php differs from the latest version of this image at /usr/src/nextcloud/config/smtp.config.php
    => Searching for scripts (*.sh) to run, located in the folder: /docker-entrypoint-hooks.d/before-starting
    AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 10.233.116.160. Set the 'ServerName' directive globally to suppress this message
    AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 10.233.116.160. Set the 'ServerName' directive globally to suppress this message
    [Fri Aug 30 20:04:35.830029 2024] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.59 (Debian) PHP/8.2.21 configured -- resuming normal operations
    [Fri Aug 30 20:04:35.830046 2024] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
    192.168.3.101 - - [30/Aug/2024:20:04:54 +0000] "GET /status.php HTTP/1.1" 500 410 "-" "kube-probe/1.29"
    192.168.3.101 - - [30/Aug/2024:20:04:54 +0000] "GET /status.php HTTP/1.1" 500 410 "-" "kube-probe/1.29"
    192.168.3.101 - - [30/Aug/2024:20:05:04 +0000] "GET /status.php HTTP/1.1" 500 410 "-" "kube-probe/1.29"
    192.168.3.101 - - [30/Aug/2024:20:05:04 +0000] "GET /status.php HTTP/1.1" 500 410 "-" "kube-probe/1.29"
    192.168.3.101 - - [30/Aug/2024:20:05:14 +0000] "GET /status.php HTTP/1.1" 500 410 "-" "kube-probe/1.29"
    192.168.3.101 - - [30/Aug/2024:20:05:14 +0000] "GET /status.php HTTP/1.1" 500 410 "-" "kube-probe/1.29"
    [Fri Aug 30 20:05:14.527831 2024] [mpm_prefork:notice] [pid 1] AH00170: caught SIGWINCH, shutting down gracefully
    192.168.3.101 - - [30/Aug/2024:20:05:14 +0000] "GET /status.php HTTP/1.1" 500 410 "-" "kube-probe/1.29"
    

    And it doesn't load.

  9. hufhend commented on Aug 30, 2024

    @hufhend

    Since I have a backup, but only a one-day backup, I deleted the files mentioned above and hoped that Nextcloud would handle it somehow. Unfortunately, it didn't. So neither overwriting the files on the server nor deleting them helped.

    Worse, however, is that I'm losing track of where it actually sees the files. Somehow it doesn't make sense to me:

    ❯ oc exec -it nextcloud-78b49fb7f6-8nf8d -- su -s /bin/sh www-data -c bash
    Defaulted container "nextcloud" out of: nextcloud, nextcloud-cron, postgresql-isready (init)
    bash: cannot set terminal process group (244): Inappropriate ioctl for device
    bash: no job control in this shell
    www-data@nextcloud-78b49fb7f6-8nf8d:~/html$ df -h
    Filesystem                                                                          Size  Used Avail Use% Mounted on
    overlay                                                                             232G  159G   62G  73% /
    tmpfs                                                                                64M     0   64M   0% /dev
    192.168.15.64:/data/cloud/nfs/pvc-ba68e36a-d900-402b-aa9a-fe856e170943/root         2.0T  266G  1.7T  14% /var/www
    /dev/mapper/vgubuntu-root                                                           232G  159G   62G  73% /etc/hosts
    shm                                                                                  64M     0   64M   0% /dev/shm
    192.168.15.64:/data/cloud/nfs/pvc-ba68e36a-d900-402b-aa9a-fe856e170943/html         2.0T  266G  1.7T  14% /var/www/html
    192.168.15.64:/data/cloud/nfs/pvc-ba68e36a-d900-402b-aa9a-fe856e170943/tmp          2.0T  266G  1.7T  14% /var/www/tmp
    192.168.15.64:/data/cloud/nfs/pvc-ba68e36a-d900-402b-aa9a-fe856e170943/data         2.0T  266G  1.7T  14% /var/www/html/data
    192.168.15.64:/data/cloud/nfs/pvc-ba68e36a-d900-402b-aa9a-fe856e170943/config       2.0T  266G  1.7T  14% /var/www/html/config
    192.168.15.64:/data/cloud/nfs/pvc-ba68e36a-d900-402b-aa9a-fe856e170943/custom_apps  2.0T  266G  1.7T  14% /var/www/html/custom_apps
    192.168.15.64:/data/cloud/nfs/pvc-ba68e36a-d900-402b-aa9a-fe856e170943/themes       2.0T  266G  1.7T  14% /var/www/html/themes
    tmpfs                                                                                32G   12K   32G   1% /run/secrets/kubernetes.io/serviceaccount
    tmpfs                                                                                16G     0   16G   0% /proc/asound
    tmpfs                                                                                16G     0   16G   0% /proc/acpi
    tmpfs                                                                                16G     0   16G   0% /proc/scsi
    tmpfs                                                                                16G     0   16G   0% /sys/firmware
    www-data@nextcloud-78b49fb7f6-8nf8d:~/html$ diff /var/www/html/config/apache-pretty-urls.config.php /usr/src/nextcloud/config/apache-pretty-urls.config.php
    4c4
    < );
    \ No newline at end of file
    ---
    > );
    www-data@nextcloud-78b49fb7f6-8nf8d:~/html
    
    

    And beware, this is on the server:

    root@server:/data/cloud/nfs/pvc-ba68e36a-d900-402b-aa9a-fe856e170943/config# ls -la apache-pretty-urls.config.php 
    -rwxrwxr-x 1 root www-data 0 Apr 16 20:05 apache-pretty-urls.config.php
    

    In helm chart values there is only this and nothing has changed

    persistence:
      enabled: true
      storageClass: "nfs-csi"
      accessMode: ReadWriteMany
    
  10. hufhend commented on Aug 30, 2024

    @hufhend

    How do I revert to an older working version?

  11. joshtrichards commented on Sep 8, 2024

    @joshtrichards
    Member

    @hufhend

    192.168.3.101 - - [30/Aug/2024:20:04:54 +0000] "GET /status.php HTTP/1.1" 500 410 "-" "kube-probe/1.29"

    You're getting 500 errors - something else is going on here for you. The warnings about older config files would not cause this from just a simple image update. To figure out why you're getting those 500 errors you'd need to check your nextcloud.log. Either way, outside the scope of this issue. Might want to try the help forum - https://help.nextcloud.com

  12. added a commit that references this issue on Oct 24, 2024
  13. added a commit that references this issue on Nov 7, 2024
  14. marco-calautti commented on Mar 2, 2026

    @marco-calautti

    I do not see why this cannot be simply solved by giving special names to the config files that the container ships with, and thus avoid completelly the chance of overwriting user config files. I find very bad that I need to perform a manual upgrade of the files, when the container should manage the upgrade on its own. At least, provide an ENV var that allows to enable the automatic upgrade of the files, for those users that need it.

  15. J0WI commented on Mar 4, 2026

    @J0WI
    Contributor

    Because Nextcloud just overrides config.php: https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#loading

    You can prefix any config with NC_ to override it as ENV var: https://docs.nextcloud.com/server/stable/admin_manual/occ_command.html#debugging
    This works quite good for simple data types like bools, numbers and strings but it's a mess with arrays.

  16. marco-calautti commented on Mar 5, 2026

    @marco-calautti

    From what I undestand, Nextcloud overrides config.php using the *.config.php files, and in the specific case of this docker image, these files are used exclusively to override config.php via the env variable set for the container. So, I do not see what is the problem if, during the upgrade, the container just copies back the special *.config.php that this container defines in the persistent config folder.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions