当我尝试使用/从网站根目录打开文件时,出现此错误:
严重错误:require():需要打开失败 '/templates/header.php'(include_path ='。:/ usr / local / php70 / pear')在 /home/cultureh/public_html/staging/index.php,第3行
但是当我使用../等相对目录时,它可以正常工作。根目录方法为什么不起作用?
答案 0 :(得分:0)
在基于Linux的操作系统中,/
是指服务器根目录。 Apache和其他Web主机通常无权访问此目录。要获得相对目录,只需排除前导/
,它将与文件所在的目录相关。
对于我的网站,由于我的文件分散在3-4深的树形结构中,因此我使用了一个引导文件,该文件首先在所有包含此文件的页面加载中加载:
DEFINE('ROOT_PATH', dirname(__DIR__));
。
当然,这假定您的引导文件位于站点根目录中。如果您的引导文件位于子目录中,则可以调整常数以升至目录。然后,当您要使用保证相对于站点根目录的路径时,只需输入:ROOT_PATH . '/templates/header.php'
。