Remove all the modules you don't need.
You missed my point. The point is for the PHP packages support all the extensions, but separated and need not be loaded except when user requested it via php.ini, e.g:
extension=mysql.so extension=pgsql.so ;extension=gd.so ;extension=imap.so ;etc.
Well, three of those four are already separate modules, so you can
disable them if you like by removing the php-mysql etc package, or
editing /etc/php.d/*.ini.
Yes, sorry about this. As I just found out yesterday, since version 4.3, PHP has introduced --with-config-file-scan-dir, so even though I have commented all shared extensions from /etc/php.ini, all the shared extensions were loaded from /etc/php.d/. After I deleted/renamed the *.ini files in /etc/php.d/, the startup overhead was considerably lower (only about 0.05-0.07s).
I have now modified the php.spec to make even more extensions into shared ones (particularly gd, curl, bz2, and a couple others that load shared libraries) to further reduce the overhead time.
Thanks.
It would be useful to know which of the
remaining built-in modules are the ones which add significantly to the
startup speed, so these could also be split out. This would take some investigation with recompiling the PHP RPM, have you tried this?
-- dave