Considering 100% of the target audience are developers, I don't think you have to worry too much about scaring us with config files or right clicking a bundle file 😉
That being said, for PHP and MySQL specifically, it might make sense to have a simple textarea where we can dump extra config directives. I'm not 100% sure about MySQL, but I know PHP won't complain about a directive being overridden by a later area.
You would then dump the contents of the textarea into php_A969/etc/php/conf.d/zzzz-override.ini
and using this compile-time variable to tell PHP to load additional ini files from that directory: https://www.php.net/manual/en/configuration.file.php#configuration.file.scan
That way, you don't have to ask us to override the entire php.ini file 🙂
For Nginx, you already have the /conf/conf.d/*.conf;
and /conf/sites-enabled/*;
include directives, which means you only have to add a general textarea (to go into /conf/conf.d/zzzz-override.conf;
) and a per-site textarea. The per-site textarea needs to default to
root "/<userpath>/.indigo/welcome";
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
(with a "Reset to default" button) and allow us to completely rewrite this block.
The reason why we need to be able to completely rewrite this block is that different sites may have different URL rewrite requirements. Here's an example of a /conf/sites-enabled/site.conf
block for a XenForo 2 devboard:
location /devboards/xf22/ {
try_files $uri $uri/ /devboards/xf22/index.php?$uri&$args;
index index.php index.html;
}
location /devboards/xf22/install/data/ {
internal;
}
location /devboards/xf22/install/templates/ {
internal;
}
location /devboards/xf22/internal_data/ {
internal;
}
location /devboards/xf22/library/ { #legacy
internal;
}
location /devboards/xf22/src/ {
internal;
}
(This goes above the location ~ \.php$ {
part in the sites-enabled
config.)