If you don’t know already, I am obsessed with optimising everything around me, including PHP. Today, I am going to share a tip to optimise PHP, particularly PHP-FPM. It assumes that you do not use “.user.ini” file or you never heard about it. 😉
As per the official docs for .user.ini file, by default, PHP scans each user directory for the file named “.user.ini” for every 5 minutes. So, it is much better than what Apache does to .htaccess files. Still, if you don’t use it, just disable it in the php.ini file. Just set “user_ini.filename” as empty in php.ini of your PHP-FPM process. To make it easier, the default php.ini file already contains the line commented out. So, uncommenting is enough to disable “.user.ini” functionality and make your server a bit more snappier!
Stay tuned for further optimisation tips!
Php-fpm pool configuration contains 400+ lines (for example in Ubuntu 16.04). In reality, we may use only about 20 lines or less than 5% of the file. The original configuration file contains lines that explains what each config does. It is good practice to have inline documentation.
In certain cases, we may want to know what lines are actually active. To find that please use the following command…
grep -v '^;\|^$' /path/to/fpm/pool.d/www.conf
What it does:
The ‘-v’ modifier excludes the pattern that immediately follows it.
The quoted string has two parts.
- ‘^;’ excludes any lines that do not start with a semi-colon.
- ‘^$’ excludes the empty lines
‘|’ modifier combines the above two parts. Finally, ‘\’ modifier is the escape character.
At times, due to mis-configuration or a bug, the session data may not have been removed automatically by PHP cron. So, use the following to remove all the sessions files…
find /var/lib/php/ -name "sess_*" -print -delete