Do your clients report or discuss any issues with vBulletin when running php as CGI? vB staff is "down" on cgi but they have not offered any details as to why.
On the contrary, vBulletin is heavily in favor of "CGI" actually and also highly recommend it as the solution to just about everything and if I did not mention this earlier their own support is who told my clients to switch over to "CGI" in each case and that always helped greatly!
Confused? I'm not surprised!
I just used the term "CGI" differently than what you expected and I did so deliberately to illustrate a very strong point as you will soon see.
The reason you are are confused a bit is because the same word "CGI" is used in several different ways when discussing it's relation to PHP and complicates many discussions as it's application depends on it's usage ....
CGI, in the broadest sense covers most everything PHP related that is not "Apache Module" (DGO) and the term can be applied loosely to most any PHP type out there when used in this manner.
CGI, as a specific PHP type usually always refers to phpSuExec though.
When you hear people talking about not using CGI with vBulletin", they are specifically referring to not using either straight CGI or phpSuEXEC which both have some very serious problems which would also be the very reason they have been pretty much abandoned for all practical purposes these days in favor of some of the newer PHP types.
However, in somewhat of an irony, these very same people who tell you that you should not use CGI will at the same time tell you that you should indeed use FastCGI or FCGI though which is actually a CGI based PHP type to add to the confusion and irony. However, this is NOT phpSuExec which I will explain more below. Basically, you have got multiple use of the very same terms and it is not surprising that this little fact creates a lot of confusion for many people out there.
I don't have time to sit here and give you all the in depth technical details as to how each of these PHP type work inside and underneath it all or the reasons and whys as I would be here typing all night as it would be very each to write a 10,000+ book on that subject alone.
With that said though, I will give you a very brief rough outline of the PHP types out there and what you really need to know:
Apache Module (DSO) -- original PHP type that would be the 3rd fastest performance of the PHP types but due to they way it is designed causes more resource consumption, cannot handle ownership and file permissions very well and is riddled with massive security problems and could probably write another book on the subject of why not to use it as the issues with dso cross into nearly every area of discussion.
***** NOTE: I DO NOT RECOMMEND ANYONE USING DSO AT ALL *****
CGI -- The first CGI based PHP solved some of the resource issues previously felt from it's DSO sibling but at the expense of performance and was even more of a nightmare with the unending problems and turned out to be worse than DSO security wise to complicate matters.
phpSuExec -- Basically a subtle variation of plain CGI adding 'setuid' (suexec support) and a few other modifications mainly in an effort to try to address DSO's massive cross site scripting exploit problems specifically but while doing so it actually introduced a few new security issues of its own that much like it's predecessor were much worse than those it was meant to solve. (This is presently CGI plus SuExec)
[NOTE: SuExec is NOT the same as phpSuExec but does use it]
SuPHP -- A different group trying to take a new stab at creating a solution for the problems went back to the drawing board and actually ended up creating a "mixed technology" type that is a blend of both DSO and CGI and unlike prior attempts finally resolved much of the security problems where failed with each of its predecessors. As a plus, it is also substantially faster in performance than either straight CGI or phpSuExec and only slightly slower than DSO but well worth the security and resource advantages it offers which far outweigh any slight degradation in performance over it's DSO counterpart. It is also the best equipped for handling larger numbers of sites on a server making it the best choice for shared hosting type environments since it essentially takes from the best aspects of each of the types out there.
FastCGI/FCGI -- These are actually two different flavors of PHP but I will lump them together because they are so very similar. Originally, this was essentially just a higher performance versions of phpSuExec but it has since evolved substantially and today this is much more like a higher performance version of SuPHP in that its security is now very nearly identical to that of SuPHP though it is a bit more complicated to configure and maintain and not as well suited to handle large numbers of web sites on the same server machine but it's strengths lie very heavily in its ability to handle larger and more heavy traffic sites with a lot more simultaneous users and this is also the PHP flavor with the fastest performance of all the PHP types. It is a very good choice if you have a few sites on your server or a really busy web site with a lot of visitors. The technical differences are quite fascinating from a programmer's perspective but that is definitely beyond the scope of this post which is really just meant as rough draft overview to answer your question.
My first choice in the case of vBulletin would be FGI/FastCGI and might also look into a caching accelerator like X-Cache or similar to push the performance bar a bit further. The second choice on the totem pole behind that would be SuPHP behind that.
I would **NOT** use DSO (Apache), phpSuExec, or standard plain CGI for this (or any other purposes for that matter) for a great many reasons.
Hope this helps clears up a few of these things a bit for you
