You should really submit this as a bug and offer your suggested fix, if you want to make sure that the ez crew give it a look over - The forums are community supported, so there's no guarantee that they'll read this.
If you've already done this (I had a quick look in the bug reports and couldn't see it) then you can probably ignore this :)
Can you tell us whether this was fixed in the latest version or not? Also, the line numbers have changed so I can't try to apply the fix myself. Any help would be appreciated!
To get EZPublish-3.4.2 to work on a shared hosting plan with PHP installed as a CGI and SuEXEC I modified the ezsys.php file. Before modifying ezsys I could install EZPublish with no problems using the install wizard. However, I could never access ../index.php/plain_admin. EZPublish would always default to the index.php page.
Here is what I changed
lib/ezutils/classes/ezsys.php
Line 756
Change
$phpSelf = eZSys::serverVariable( 'PHP_SELF' );
To $phpSelf = eZSys::serverVariable( 'REQUEST_URI');
If anyone knows of any problems this may cause please let me know. I am new to PHP and only tried this fix based on the orginal fix proposed in this thread.
Note that PHP_SELF will not be equal to REQUEST_URI under Apache if mod_rewrite has been used to move one URL to another--PHP_SELF will contain the rewritten address, and REQUEST_URI will contain the URL the user sees in their browser.
So the fix probably won't work if you use rewrite rules.
EDIT: This fix isn't valid as of 3.4 and higher where a '?' is added to work around this.
However that fix made all GET requests break, including search, so to really support cgi a better solution is needed. Another comment in the php docs to understand why PHP_SELF is used and why the '?' is added in cgi mode:
Given a URL of http://www.example.com/Info.php/Page/Home
Apache 2.2.4/Win32/PHP 5.2.2/Apache 2.0 Handler
----> PHP_SELF = Info.php/Page/Home
Apache 1.3.37/Unix/PHP 5.2.2/CGI
----> PHP_SELF = Info.php
Apache 1.3.33/Unix/5.1.4/FastCGI
----> PHP_SELF = Info.php