JD Isaacks
JD Isaacks

Reputation: 57964

PHP: Include file from different root directory

I have 2 root directories for a site, httpdocs and httpsdocs. I am sure its obvious what the 2 are for. But I want to keep things consistent through-out the site like global navigation. Right now I have two separate files for this (one in each side) and I would like to only have one. This is hard to maintain because each time I change one I have to change the other (if I remember to), it breaks the DRY rule. But if I try to include a file from one side to the other using a relative path it tells me the file path is not allowed because it goes outside the document root. If I try to include it with an absolute URL I get another error saying file access is disabled in the server configuration. (I am on a hosting account so the most I can change as far as server config is limited to .htaccess). So can anyone think of a work-around for this?

Upvotes: 0

Views: 1074

Answers (2)

gnarf
gnarf

Reputation: 106322

Why not put your global include file in yet another directory (lets call it library) and then have each http root have an include file that includes ../library/lib.php, then sets specific paramaters. This gives you the added benifit of your library php files not being in the document root path as well.

And actually. Updating because I just read the entry about "relative path" issues.

Could you set the "include path" php value to include that directory?

Something like this:

ini_set('include_path', realpath(dirname(__FILE__)."/../library").":".ini_get('include_path'));
require_once('lib.php');

Did a little more research - seems that changing open_basedir is not possible unless you are able to edit the httpd.conf or php.ini values. PHP Manual: open_basedir

Upvotes: 1

ceejayoz
ceejayoz

Reputation: 179994

Do you have the ability to create symbolic links between the two directories?

Upvotes: 1

Related Questions