Php – Can’t execute index.php in root folder when PHP is installed as CGI binary

cgiPHP

I'm trying to make a website on my school's server, but they have PHP installed as CGI, so .php files can only run in the cgi-bin folder.

This is somewhat problematic if I want my index to be a .php file and not a .html, since it needs to be outside of the cgi-bin folder and in the root WWW folder.

Furthermore, it's an apache server, so I tried editing my .htaccess file only to realize i don't know where the php-cgi binary is (this is my school's server, after all, and I don't have permissions just to explore).

Is there any other way of getting the .php index file which is outside of the cgi-bin folder to work without having to do something ugly like make an index.html file in the root directory which redirects to a .php file within the cgi-bin folder?

Best Answer

You have a few options. If mod_rewrite is switched on, you can use that to rewrite requests to a path in your /cgi-bin/. $_SERVER[] will still contain the original request URI so that you can conditionally perform actions based on the requested path.

Alternatively, if you’re dead set on using .htaccess to enable PHP files to be executed anywhere (which might not even be possible—httpd.conf specifies, via the AllowOverride directive, what .htaccess files can and can't do), then create a PHP file containing

<?php
phpinfo();

and place it in your cgi-bin directory, it will tell you all of the relevant details about that installation of PHP, (which should include the location of the php-cgi executable).