На самом деле это не вопрос, связанный с Apache.Ни один, связанный с PHP.Чтобы понять эту ошибку, вы должны отличать путь на виртуальном сервере от пути в файловой системе .
require
, работающем с файлами.Но на сервере нет файла
/common/configs/config_templates.inc.php
, а скорее
/home/viapics1/public_html/common/configs/config_templates.inc.php
Часть
/home/viapics1/public_html
называется Корень документа и он соединяет виртуальный мир с реальным.К счастью, веб-серверы обычно имеют корень документа в переменной конфигурации, которую они разделяют с PHP.Так что если вы измените свой код на что-то вроде
require_once $_SERVER['DOCUMENT_ROOT'].'/common/configs/config_templates.inc.php';
, он будет работать с любым файлом, размещенным в любом каталоге.
Обновление: в конце концов я написал статью, в которой объясняется разница между относительными и абсолютными путями в файловой системе и на веб-сервере, которая подробно объясняет этот вопрос и содержит некоторые практическиерешения.
К сожалению, такой удобной переменной не существует, когда вы запускаете скрипт из командной строки.В этом случае техника, называемая «единой точкой входа», должна выручить.Вы можете обратиться к статье выше для деталей.