Chinmay, that's a little bit overkill on the disable_functions there!
Anyway, regarding the original posters question ...
Apache suEXEC on
Does this mean it is suPHP?
Just looking at what you posted alone, I can tell you that you are not
running SuPHP and that is something that would definitely be recommended
as that allows you to run all PHP scripts under the owner instead of the
generic "nobody" account of the Apache web server. This allows you to
better track script execution and closes a very serious security vulnerability
when setting up a shared hosting environment with multiple hosting accounts.
(Side FYI: Apache's suexec function is something entirely different)
There are quite a number of settings you can use in PHP.INI to further lock
down your configuration but some things such as "disable_functions" you also
need to weigh against functionality. It is a balance really between disabling
the more dangerous functions and keeping functionality for most scripts.
There are also other settings such as script execution times, upload sizes,
loadable module support, and others that you would also want to address
in your main PHP.INI file (Most are self documented within the file).
Regarding PHP security, it would also be good to install SuHOSIN which
gives you another line of defense against script exploits. This one can be
installed from EasyApache from script or WHM but is often easier and better
installed manually after your initial PHP base is built.
Unfortunately you mentioned that you are running on a VPS server so there
are some things that you won't ever be able to secure just because of the
nature of how VPS servers actually operate. Some things such as not being
able to set the server time are an irritant when it comes to VPS servers but
there are also more dangerous limitations as well which effect security.
That said though, there is still much you can do in terms of helping secure
your VPS server account but it will never be as secure as a real server!
Now remember that PHP is just one single aspect in a much bigger picture
when talking about securing your server so you also need to consider
security of the operating system and services, dangerous programs,
Apache security, disabling unused services that could be exploited as
much as possible with a VPS, installing a firewall and other defensive
programs to help monitor network traffic, keeping system core files,
libraries, and various files updated with the latest versions, etc.
If you need assistance securing your server, drop me a private
message and I will give you a hand with that.
.
What is the most secure configuration?
ADDENDUM NOTE:
-----------------
As to your specific question about the best way to operate PHP in terms of security:
The answer to that question is clearly SuPHP!
There are 3 main ways to run PHP namely Apache (DSO) Module, PhpSuExec (CGI), and SuPHP (PHP CGI called by DSO)
Apache (DSO) Module - All scripts are run as "nobody" and it is very easy to exploit cross site scripting
attacks even when user's are theoretically supposed to be restricted to their own accounts and provides
virtually no security whatsoever. Most (but not all) your main server PHP configuration settings could
be overridden with commands in your .HTACCESS files or from within scripts themselves unless disabled.
phpSuExec - This was the first attempt to close down the inherit problems of running PHP as an Apache Module
by forcing scripts to run as the account owner instead of the main Apache user (nobody). It was great in theory
but actually opened up a few even more dangerous security issues in the process. In addition, phpSuExec allowed
for custom PHP.INI files from the user's home directories which allowed for greater PHP customization per account
but also opened yet another serious avenue of security concern. To complicate matters further, phpSuExec also
had significantly slower performance running scripts than running them as an Apache module.
SuPHP - Finally comes along SuPHP which gives you the best of both worlds. The main SuPHP portion operates
as an Apache module itself and in turn calls the PHP CGI binary upon script execution which actually allows for
significantly faster execution than phpSuExec and almost as fast as running as an Apache module. Unlike phpSuExec,
running PHP from SuPHP doesn't introduce the new security concerns mentioned above that phpSuExec had brought
while still closing down the inherent problems of running directly as an Apache module. The issue of custom
configuration was also handled better as well being moved off to the server administrator's discretion allowing the
main server administrator to setup custom configurations for users for each account but not the user's themselves!
Basically in a nutshell, you get all the good things of both Apache module PHP and phpSuExec without the bad!