Overwrite PHP settings on the fly with mod_reset
mod_reset is a module for both Apache versions including 2.2 and 2.4. It simply looks at headers you set in Apache configuration and overwrites PHP settings. Let’s say we want to set memory_limit
dynamically for certain application, Apache configuration looks like this:
ResetHeaders "memory_limit" "X-Memory-Limit"
This snippet translates to Look at X-Memory-Limit
HTTP header and set value from this header to PHP memory_limit
. You might wonder why use this module while there are other solutions like mod_fcgid
, mod_lsapi
? Because we want to use mod_php
, run single PHP version per container and have a reverse proxy in front of this fleet of containers. Secondly, mod_fcgid
is not developed anymore, while mod_lsapi
has to run under CloudLinux which is proprietary and not free.
In addition, this module allows you to overwrite DocumentRoot
, ServerAdmin
and TMPDIR
environment on request from headers too. For instance:
ResetHeader "ServerAdmin" "X-Server-Admin"
ResetHeader "DocumentRoot" "X-Document-Root"
Setting TMPDIR
environment per request allows you to make sure client is not using /tmp
anymore for temporary files, thus files quota will be calculated more granularly.
If you became interested in mod_reset, grab it from Github and try.