У меня корень сайта находится в папке /home/user1/site/ , где лежит основной конфиг сайта (siteconf.php), но скрипты лежат в папках:
/home/user1/site/dir1/
/home/user1/site/dir2/dir3/
и так далее.
Если я хочу в скрипте, который будет грузиться через веб, подключить конфиг, то мне сделать это легко:
include_once ($_SERVER['DOCUMENT_ROOT'] . "/siteconf.php" );
Но если мне надо запускать скрипты через CLI, то такой способ не пройдет. Есть вариант, на мой взгляд, не очень хороший, в каждом скрипте прописывать:
include_once ("/home/user1/site/siteconf.php");
так как сайт могут переносить в другой директорию, например при разработке, и потом в каждом скрипте менять пути будет совсем плохо.
Есть вариант указывать в каждом скрипте путь к конфигу через:
include_once ("../siteconf.php"); // для скриптов в папке /home/user1/site/dir1/
include_once ("../../siteconf.php"); // для скриптов в папке /home/user1/site/dir2/dir3/
но тут, получается, если скрипт переносится в другую папку, то там придется править путь.