bascherz wrote:Hmm... php.ini is a server-wide file. Changing it affects every PHP application running on the server. This will not help people running Joomla sites on shared servers or probably anything other than a dedicated server. Most hosting companies probably don't provide access to such system resource files at all. Similar settings can be added to the .htaccess file on a per-domain basis on some hosted servers. My experience with that is by default the user account owns the .htaccess file and cannot be overwritten by a PHP script, which is often running with system-level userid (e.g., "nobody", "httpd"), without making it world-writeable. But on a home server used only for testing, this might be a handy little trick.
Sorry Bruce, I'd have to disagree here. You are right that basically THE php.ini is a server-wide file. But you can override the master php.ini by a local one. It may also be dependent on hoster config if you can set certain php_flags/directives (register globals, display errors) in your .htaccess. The script/link provided by recordbreaker is suitable for those at a hoster that won't change their php.ini AND that won't allow these things to be set in htaccess.
The only thing to keep in mind is that if you do take the approach of having a local php.ini, it MUST reside in every directory and subdirectory of your site. And naturally some extensions or bridged apps might create directories on the fly, as needed... i.e. Gallery2, whenever you create a new album (subalbum). At that point you have a directory without the local php.ini = meaning i.e. Register Globals is set back to the undesired default as set by the hoster.
What I did here was simply put the script in a crontab so that it is rerun every x minutes/hours. Not the best solution, but until we've moved the site to a more Joomla friendly host, it will have to do.
And for dedicated servers I'd demand that they the configure the host EXACTLY to my own preferred settings. php.ini, software versions, well just about everything. It's my server, right?