Support for php-fpm.conf
oparoz opened this issue · 7 comments
Quite a few settings are defined per pool when using PHP-FPM, so only scanning php.ini doesn't give the full picture.
Is there a way to detect when the FPM is in use automatically? It's be nice if it tried to detect that too (and maybe required a path to the conf file).
Well, in my case, I simply gave the path to the php-fpm.conf file, but the report was the same as for php.ini, so the scanner has ignored the settings found there.
One problem is that those files contain several pools and each one can have different PHP settings, so it can be quite complex to report back. Each cell giving advice should have a note about the setting for each pool.
Per example, php.ini has no open_basedir setting, but each pool as a path so that users can't access files outside of their home directory
FAIL | WARNING | | open_basedir | [apps] Path is set, [special] Path is set, [php.ini] Warning...
Hmm, interesting....I'll have to check that out. thanks for the heads up!
Here is a template to give you an idea of what it looks like
[DOMAINNAME]
listen = /var/run/php5-fpm/DOMAINNAME.socket
listen.backlog = -1
listen.owner = nginx
listen.group = www-data
listen.mode=0660
; Unix user/group of processes
user = (THE USERNAME OF THE USER THAT OWNS THE SITE FILES)
group = www-data
; Choose how the process manager will control the number of child processes.
pm = dynamic
pm.max_children = 75
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500
; Pass environment variables
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
; host-specific php ini settings here
; php_admin_value[open_basedir] = /var/www/DOMAINNAME/htdocs:/tmp
The bit at the end is where all the custom PHP values will be added
Are they always prefixed with that "php_admin_value"?
You also have the boolean values
php_flag[display_errors] = off
cool, thanks