包括可用于多个站点的PHP文件

我有一个我们使用的web服务器,apache,centos5,php

我有一个名为“include.php”的文件,我需要包含在多个站点中。

例如。 我有一个名为testsite.co.za的网站,现在在index.php我想包括include.php文件,include.php不在testsite.co.za的根目录,

现在我创build了另一个文件夹包含在web根目录下,其中包含include.php

我的代码看起来如下testsite.co.za/index.php

require_once '../includes/include.php'; 

如果我运行testsite.co.za它不能检测到include.php。 为了包含此文件,是否需要更改某个服务器设置?

我的目录结构

– 在/ var / www / html等
-testsite.co.za
-index.php
– 包括
-include.php

希望这使得sence

请记住,当使用require '../[something]' ,您指的是PHP的工作目录 ,而不是实际脚本的path。 我更喜欢总是使用

 require(dirname(__FILE__).'/path'); 

这样,我知道我需要一个相对于require语句所在文件的文件

那么在这种情况下,你的包含将是:

 require_once( dirname(__FILE__).'/../includes/include.php'); 

这是很久以前问,但任何人通过谷歌find它,正确的答案是确保此文件是在php.ini中设置的PHP include_path或通过php.ini添加您的path到php include_path或在运行时通过set_include_path()php函数[ http://php.net/manual/en/function.set-include-path.php ]

然后可以通过include('myfile.php')或require('myfile.php')来访问文件,这两个文件都searchPHP include_path以及要包含的文件的当前目录。

你也可以在php 5.2或者更低版本中查看__autoload()或者在php 5.3和5.4中调用SplAutoloadRegister()来创build函数,根据你想要的方式通过创build这个魔术函数自动加载你的类,或者在后一种情况下注册一个自动加载function。

希望这会帮助一路上的人。

理所当然

那么,就我所知,它应该可以工作:我一直使用类似的指令。 我会检查所有的目录权限和所有权,以及文件权限,如果这些都是正确的,我会检查一个stream氓的.htaccess文件或其他一些可能会让你失望的lock-downery。

如果Apache的文档根目录是/ var / www / html,那么你不应该在/ var / www / html / includes /中指定任何东西,除非有一些特定的指令(或权限问题)阻止它。