I am setting up a testing environment for a client project for an application that was already programmed by someone else. I have created a subdirectory called iftc in the hosting account that we normally use for such purposes.
Now, all include files are not being found as they are being referenced through
include($_SERVER['DOCUMENT_ROOT'].'/Includes/Connect.php');
And so on.
Short of setting up a whole new hosting account just for testing purposes for this particular client, can I change the value of $_SERVER['DOCUMENT_ROOT'] somehow to include a subfolder iftc that the files are in?
My preferred solution
There are a couple of ways to do it but the best is to simply find and replace all uses of
$_SERVER['DOCUMENT_ROOT']with a simple function call.So your example would become:
Define your current run mode:
Now for the function definition:
Overriding the actual values in
$_SERVERis bad idea. Should some one else later come to work on the project it will not be clear what is happening.This is a very simplified version of the bootstrapping of environments that I use in production every day.
Where you can’t do it
SetEnvfamily of functionsRewriteRule ^$ /home \[E=VAR:VAL\]Another way you can do it
When I setup my mass virtual environment for developing I encountered this issue. See http://blog.simonholywell.com/post/1516566788/team-development-server#virtual_document_root
Because I could not override
$_SERVER['DOCUMENT_ROOT']using either of the above methods I had to do it in anauto_prepend_file.I would not recommend that you use this technique to solve this particular issue however as it is better solved at the application level in this case.