root path for php files in Linux apache

17,755

Solution 1

If your document root is /var/www/ then you can use:

include $_SERVER['DOCUMENT_ROOT'] . '/include/header.php';

Typically, PHP gets the DOCUMENT_ROOT correct so you can usually rely on that.

If you want to include the file relative to the script that is doing the include, you can do:

include dirname(__FILE__) . '/../include/header.php';

Solution 2

The leading slash indicates an absolute path. Most applications will define an APP_ROOT constant or something similar early in the cycle to solve these problems.

define('APP_ROOT', dirname(__FILE__));

Then later on you can include files with:

include(APP_ROOT . '/includes/header.php');

Solution 3

I would try the following

include_once($_SERVER['DOCUMENT_ROOT'].'/include/header.php');

Share:
17,755
mk_89
Author by

mk_89

Updated on June 14, 2022

Comments

  • mk_89
    mk_89 almost 2 years

    I am having problems with locating files with php include on my Ubuntu server.

    structure of site

    /var/www/
         home/index.php
         include/header.php
    

    When I try to insert the following include_once('/include/header.php') in the file home/index.php it does not work.

    however if I change that to include_once('../include/header.php'), it works fine, but to have consistency through out my site I can't allow this

    What is the best way to fix this?

  • mk_89
    mk_89 over 11 years
    Thanks this works, it's only a shame there's no dreamweaver user friendly solution
  • drew010
    drew010 over 11 years
    Why doesn't dreamweaver like it?
  • mk_89
    mk_89 over 11 years
    it doesn't let you preview php files from the top file navigation, but I guess it's not a big deal