As far as I am aware, php's getcwd()
(and similar functions eg dirname(__FILE__)
) are supposed to return the current directory of the file being executed.
If the current directory happens to be a symlink to another directory, php (presumably in conjunction with apache) is supposed to return the path showing the symlink name as the 'directory' you're in.
Example:
from /var/www,
directory 'one' contains index.php
symlink 'two' points at directory 'one'
one/index.php: <?php echo getcwd(); ?>
Accessing http://localhost/two/index.php in a browser shows /var/www/one
.
I would expect it to show /var/www/two
Does anyone know if this is a php or apache setting I can change? Or am I unable to use symlinks in this manner?
Options FollowSymLinks
– Imprintmkdir a; ln -s a b; php -r 'chdir( "b" ); echo getcwd();'
, php will show you that you're in a directory called 'a', even though you chdir()ed to 'b'. – Leann