PHP file outside doc root needs files outside and inside the document root
Posted
by jax
on Stack Overflow
See other posts from Stack Overflow
or by jax
Published on 2010-06-12T18:15:54Z
Indexed on
2010/06/12
18:23 UTC
Read the original article
Hit count: 244
php
I have a library of classes, all interrelated.
Some files are inside the document root and some are outside using the <Directory> and Alias
features in httpd.conf
Assuming I have 3 files:
webroot.php (Inside the document root)
alias_directory.php (Inside a folder outside the doc root)
alias_directory2.php (Inside a **different** folder outside the doc root)
If alias_directory2.php needs both webroot.php and alias_directory.php, This does not work. (Remember alias_directory.php and alias_directory2.php are not in the same locations)
require_once $_SERVER['DOCUMENT_ROOT'].'/webroot.php'; //(ok)
require_once $_SERVER['DOCUMENT_ROOT'].'/alias_directory.php'; //(not ok)
This does not work because alias_directory.php is not in the doc root.
Similarly
require_once $_SERVER['DOCUMENT_ROOT'].'/webroot.php'; //(ok)
require_once dirname(__FILE__).'/alias_directory.php'; //(not ok)
The problem here is that dirname(__FILE__)
will return the path for alias_directory2.php not alias_directory.php.
This works:
require_once $_SERVER['DOCUMENT_ROOT'].'/webroot.php'; //(ok)
require_once '/full/path/to/directory/alias_directory.php'; //(ok)
But is very nasty and is a maintenance nightmare if I decide to move my library to another location.
How do I solve this problem, is seems that I need a way to resolve an Alias folder properly.
© Stack Overflow or respective owner