From 65e3ffab9ccccf7363a0ea53ff3b59a5c780e8ef Mon Sep 17 00:00:00 2001 From: Philipp Date: Sun, 12 Dec 2021 21:18:07 +0100 Subject: [PATCH] Add PHP limit environment variables --- 2021.09/apache/Dockerfile | 8 +++++++- 2021.09/fpm-alpine/Dockerfile | 8 +++++++- 2021.09/fpm/Dockerfile | 8 +++++++- 2021.12-dev/apache/Dockerfile | 8 +++++++- 2021.12-dev/fpm-alpine/Dockerfile | 8 +++++++- 2021.12-dev/fpm/Dockerfile | 8 +++++++- 2021.12-rc/apache/Dockerfile | 8 +++++++- 2021.12-rc/fpm-alpine/Dockerfile | 8 +++++++- 2021.12-rc/fpm/Dockerfile | 8 +++++++- Dockerfile-alpine.template | 8 +++++++- Dockerfile-debian.template | 8 +++++++- README.md | 7 +++++++ 12 files changed, 84 insertions(+), 11 deletions(-) diff --git a/2021.09/apache/Dockerfile b/2021.09/apache/Dockerfile index edc30db..c59aa5a 100644 --- a/2021.09/apache/Dockerfile +++ b/2021.09/apache/Dockerfile @@ -119,6 +119,8 @@ RUN set -ex; \ rm -rf /var/lib/apt/lists/* # set recommended PHP.ini settings +ENV PHP_MEMORY_LIMIT 512M +ENV PHP_UPLOAD_LIMIT 512M RUN set -ex; \ { \ echo 'opcache.enable=1' ; \ @@ -135,7 +137,11 @@ RUN set -ex; \ \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ + { \ + echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \ + echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \ + echo 'post_max_size=${PHP_UPLOAD_LIMIT}'; \ + } > /usr/local/etc/php/conf.d/friendica.ini; \ \ mkdir /var/www/data; \ chown -R www-data:root /var/www; \ diff --git a/2021.09/fpm-alpine/Dockerfile b/2021.09/fpm-alpine/Dockerfile index 6b90558..cdb74a3 100644 --- a/2021.09/fpm-alpine/Dockerfile +++ b/2021.09/fpm-alpine/Dockerfile @@ -100,6 +100,8 @@ RUN set -ex; \ apk del --no-network .build-deps; # set recommended PHP.ini settings +ENV PHP_MEMORY_LIMIT 512M +ENV PHP_UPLOAD_LIMIT 512M RUN set -ex; \ { \ echo 'opcache.enable=1' ; \ @@ -116,7 +118,11 @@ RUN set -ex; \ \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ + { \ + echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \ + echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \ + echo 'post_max_size=${PHP_UPLOAD_LIMIT}'; \ + } > /usr/local/etc/php/conf.d/friendica.ini; \ \ mkdir /var/www/data; \ chown -R www-data:root /var/www; \ diff --git a/2021.09/fpm/Dockerfile b/2021.09/fpm/Dockerfile index c40b2cb..658cb4d 100644 --- a/2021.09/fpm/Dockerfile +++ b/2021.09/fpm/Dockerfile @@ -119,6 +119,8 @@ RUN set -ex; \ rm -rf /var/lib/apt/lists/* # set recommended PHP.ini settings +ENV PHP_MEMORY_LIMIT 512M +ENV PHP_UPLOAD_LIMIT 512M RUN set -ex; \ { \ echo 'opcache.enable=1' ; \ @@ -135,7 +137,11 @@ RUN set -ex; \ \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ + { \ + echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \ + echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \ + echo 'post_max_size=${PHP_UPLOAD_LIMIT}'; \ + } > /usr/local/etc/php/conf.d/friendica.ini; \ \ mkdir /var/www/data; \ chown -R www-data:root /var/www; \ diff --git a/2021.12-dev/apache/Dockerfile b/2021.12-dev/apache/Dockerfile index 05cccc9..9e9c0cf 100644 --- a/2021.12-dev/apache/Dockerfile +++ b/2021.12-dev/apache/Dockerfile @@ -119,6 +119,8 @@ RUN set -ex; \ rm -rf /var/lib/apt/lists/* # set recommended PHP.ini settings +ENV PHP_MEMORY_LIMIT 512M +ENV PHP_UPLOAD_LIMIT 512M RUN set -ex; \ { \ echo 'opcache.enable=1' ; \ @@ -135,7 +137,11 @@ RUN set -ex; \ \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ + { \ + echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \ + echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \ + echo 'post_max_size=${PHP_UPLOAD_LIMIT}'; \ + } > /usr/local/etc/php/conf.d/friendica.ini; \ \ mkdir /var/www/data; \ chown -R www-data:root /var/www; \ diff --git a/2021.12-dev/fpm-alpine/Dockerfile b/2021.12-dev/fpm-alpine/Dockerfile index 5b5d872..b2ff3e5 100644 --- a/2021.12-dev/fpm-alpine/Dockerfile +++ b/2021.12-dev/fpm-alpine/Dockerfile @@ -100,6 +100,8 @@ RUN set -ex; \ apk del --no-network .build-deps; # set recommended PHP.ini settings +ENV PHP_MEMORY_LIMIT 512M +ENV PHP_UPLOAD_LIMIT 512M RUN set -ex; \ { \ echo 'opcache.enable=1' ; \ @@ -116,7 +118,11 @@ RUN set -ex; \ \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ + { \ + echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \ + echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \ + echo 'post_max_size=${PHP_UPLOAD_LIMIT}'; \ + } > /usr/local/etc/php/conf.d/friendica.ini; \ \ mkdir /var/www/data; \ chown -R www-data:root /var/www; \ diff --git a/2021.12-dev/fpm/Dockerfile b/2021.12-dev/fpm/Dockerfile index 2e71161..0ac1cd3 100644 --- a/2021.12-dev/fpm/Dockerfile +++ b/2021.12-dev/fpm/Dockerfile @@ -119,6 +119,8 @@ RUN set -ex; \ rm -rf /var/lib/apt/lists/* # set recommended PHP.ini settings +ENV PHP_MEMORY_LIMIT 512M +ENV PHP_UPLOAD_LIMIT 512M RUN set -ex; \ { \ echo 'opcache.enable=1' ; \ @@ -135,7 +137,11 @@ RUN set -ex; \ \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ + { \ + echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \ + echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \ + echo 'post_max_size=${PHP_UPLOAD_LIMIT}'; \ + } > /usr/local/etc/php/conf.d/friendica.ini; \ \ mkdir /var/www/data; \ chown -R www-data:root /var/www; \ diff --git a/2021.12-rc/apache/Dockerfile b/2021.12-rc/apache/Dockerfile index ca8f292..aa570a3 100644 --- a/2021.12-rc/apache/Dockerfile +++ b/2021.12-rc/apache/Dockerfile @@ -119,6 +119,8 @@ RUN set -ex; \ rm -rf /var/lib/apt/lists/* # set recommended PHP.ini settings +ENV PHP_MEMORY_LIMIT 512M +ENV PHP_UPLOAD_LIMIT 512M RUN set -ex; \ { \ echo 'opcache.enable=1' ; \ @@ -135,7 +137,11 @@ RUN set -ex; \ \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ + { \ + echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \ + echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \ + echo 'post_max_size=${PHP_UPLOAD_LIMIT}'; \ + } > /usr/local/etc/php/conf.d/friendica.ini; \ \ mkdir /var/www/data; \ chown -R www-data:root /var/www; \ diff --git a/2021.12-rc/fpm-alpine/Dockerfile b/2021.12-rc/fpm-alpine/Dockerfile index 4178a13..f6690d9 100644 --- a/2021.12-rc/fpm-alpine/Dockerfile +++ b/2021.12-rc/fpm-alpine/Dockerfile @@ -100,6 +100,8 @@ RUN set -ex; \ apk del --no-network .build-deps; # set recommended PHP.ini settings +ENV PHP_MEMORY_LIMIT 512M +ENV PHP_UPLOAD_LIMIT 512M RUN set -ex; \ { \ echo 'opcache.enable=1' ; \ @@ -116,7 +118,11 @@ RUN set -ex; \ \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ + { \ + echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \ + echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \ + echo 'post_max_size=${PHP_UPLOAD_LIMIT}'; \ + } > /usr/local/etc/php/conf.d/friendica.ini; \ \ mkdir /var/www/data; \ chown -R www-data:root /var/www; \ diff --git a/2021.12-rc/fpm/Dockerfile b/2021.12-rc/fpm/Dockerfile index ee9c61a..19e8e75 100644 --- a/2021.12-rc/fpm/Dockerfile +++ b/2021.12-rc/fpm/Dockerfile @@ -119,6 +119,8 @@ RUN set -ex; \ rm -rf /var/lib/apt/lists/* # set recommended PHP.ini settings +ENV PHP_MEMORY_LIMIT 512M +ENV PHP_UPLOAD_LIMIT 512M RUN set -ex; \ { \ echo 'opcache.enable=1' ; \ @@ -135,7 +137,11 @@ RUN set -ex; \ \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ + { \ + echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \ + echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \ + echo 'post_max_size=${PHP_UPLOAD_LIMIT}'; \ + } > /usr/local/etc/php/conf.d/friendica.ini; \ \ mkdir /var/www/data; \ chown -R www-data:root /var/www; \ diff --git a/Dockerfile-alpine.template b/Dockerfile-alpine.template index 2d9ea05..805d04e 100644 --- a/Dockerfile-alpine.template +++ b/Dockerfile-alpine.template @@ -99,6 +99,8 @@ RUN set -ex; \ apk del --no-network .build-deps; # set recommended PHP.ini settings +ENV PHP_MEMORY_LIMIT 512M +ENV PHP_UPLOAD_LIMIT 512M RUN set -ex; \ { \ echo 'opcache.enable=1' ; \ @@ -115,7 +117,11 @@ RUN set -ex; \ \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ + { \ + echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \ + echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \ + echo 'post_max_size=${PHP_UPLOAD_LIMIT}'; \ + } > /usr/local/etc/php/conf.d/friendica.ini; \ \ mkdir /var/www/data; \ chown -R www-data:root /var/www; \ diff --git a/Dockerfile-debian.template b/Dockerfile-debian.template index 56f279f..97a6455 100644 --- a/Dockerfile-debian.template +++ b/Dockerfile-debian.template @@ -118,6 +118,8 @@ RUN set -ex; \ rm -rf /var/lib/apt/lists/* # set recommended PHP.ini settings +ENV PHP_MEMORY_LIMIT 512M +ENV PHP_UPLOAD_LIMIT 512M RUN set -ex; \ { \ echo 'opcache.enable=1' ; \ @@ -134,7 +136,11 @@ RUN set -ex; \ \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ + { \ + echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \ + echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \ + echo 'post_max_size=${PHP_UPLOAD_LIMIT}'; \ + } > /usr/local/etc/php/conf.d/friendica.ini; \ \ mkdir /var/www/data; \ chown -R www-data:root /var/www; \ diff --git a/README.md b/README.md index 2b60b76..00207a6 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,13 @@ There are two options to enable background tasks for Friendica: - `REDIS_PW` (optional) The password for the redis instance (in case of locking). - `REDIS_DB` (optional) The database instance of the redis instance (in case of locking). +**PHP limits** + +- `PHP_MEMORY_LIMIT` (default `512M`) This sets the maximum amount of memory in bytes that a script is allowed to allocate. +This is meant to help prevent poorly written scripts from eating up all available memory, but it can prevent normal operation if set too tight. +- `PHP_UPLOAD_LIMIT` (default `512M`) This sets the upload limit (`post_max_size` and `upload_max_filesize`) for big files. +Note that you may have to change other limits depending on your client, webserver or operating system. + ## Administrator account Because Friendica links the administrator account to a specific mail address, you **have** to set a valid address for `MAILNAME`.