1) верно.
2) Есть понятие - "точка входа" в приложение. Это файл, который доступен для обращения по HTTP. Тут есть варианты.
а) Единая точка входа. Это файл index.php, который лежит в корне сайта, и на который, с помощью mod_rewrite перенаправляются все запросы. В этом файле анализируется запрошенный адрес ($_SERVER['REQUEST_URL']), определяется чего хочет пользователь, и подключаются инклудами необходимые файлы. В этом случае достаточно определить в index.php константу, например,
define ('ROOT', __DIR__);
которая и будет содержать в себе путь к корню сайта в файловой системе. В дальнейшем, в подключаемых файлах просто используем эту константу для построения путей.
ROOT . '/my_folder/my_file.php';
б) Несколько точек входа. Такой подход тоже популярен и используется, например, на данном форуме. Тут есть несколько входных файлов: index.php, viewtopic.php и т.д. Самое простое - разместить все точки входа в корне сайта, во всех прописать константу, как указано выше, и использовать ее для построения путей в подключаемых файлах. Самый гемморойный (и, я считаю, неправильный) это когда ваши точки входа валяются черт-те знает где, на разных уровнях вложенности. Тут в каждом файле вы пишете примерно такое
$root = realpath(__DIR__ . '/../../');
define('ROOT', $root);
Т.е. так же объявляете константу с путем до корня сайта, но в каждой конкретной точке входа следует правильно указывать количество переходов на верхний уровень (../) в зависимости от расположения данного файла.
Что весьма гемморно, и породит ошибки, если вы захотите переместить файл в другое место.
PS про инклуд паф я наверное поспешил. чтобы его указать, тоже нужно знать абсолютный путь. Честно говоря, никогда им не пользуюсь. Предпочитаю абсолютную адресацию файлов во избежание всяких неожиданностей.