PHP ini settings loaded properly, still no change to certain settings

Hola!

I have NC 28.01 on Docker up and running and cannot seem to get the php.ini to recognize certain changes for the life of me.

General Info:

Version: 8.2.14

Memory limit: 512 MB

Max execution time: 21600

Upload max size: 512 MB

I have confirmed through basic investigations that the php.ini is loaded correctly (echo “<?php echo php_ini_loaded_file(); ?>” | php )

Portainer lists this at /usr/local/etc/php. php -i and subsequent commands confirm it is being loaded from this location. I modified ‘production’ to fit my needs and confirmed there is a backup (php.ini.save or whatever it was called).

As listed above, certain values like “max_execution_time” were changed properly, meaning that the /usr/local/etc/php/php.ini location is indeed correct.
However, other things such as upload_max_filesize and max_memory remain unchanged.
I also tried NCs user.ini to no avail.

Just to make sure, “upload_max_filesize = xxG” is still an accepted input, correct?
Where else should I look? I do not have a “/etc/php82/” or any other numbered folder.

Thanks in advanced.

There’s no need to modify the ini for this.

Just set PHP_MEMORY_LIMIT and PHP_UPLOAD_LIMIT.

You’re likely not seeing the changes flow through because they’re overriden by the Docker entrypoint to the default values for the variables I just noted. See the Docker README: GitHub - nextcloud/docker: ⛴ Docker image of Nextcloud

1 Like

The Docker containers separate certain values out into individual files in /usr/local/etc/php/conf.d/

You can set the variables as @jtr suggested, or you can mount /usr/local/etc to the host and load your own configs.

Keep in mind that the container will not automatically create these files at launch if the directory is mounted, so you’d have to copy them from within the container to the host directory you want to mount /usr/local/etc to.

2 Likes

I’m sorry, and the solution @jtr mentioned should be applied to these separate config files or applied using the set command?

I do like the idea of mounting these config files to a separate location on the host OS but I’m curiously working my way around my docker incompetence for now.

Those are environment variables to be set with docker run or in a docker-compose file.

For example:

docker run -d \
<some stuff>
-e PHP_MEMORY_LIMIT=1G \
-e PHP_UPLOAD_LIMIT=10G \
<some more stuff>

…or

services:
<some stuff>
  nc:
    image: nextcloud/nextcloud:latest
    environment:
      - PHP_MEMORY_LIMIT=1G
      - PHP_UPLOAD_LIMIT=10G
<some more stuff>

But that’s a topic for the :construction: Installation sub-forum. :slight_smile:

1 Like