我有一个我们使用的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 /中指定任何东西,除非有一些特定的指令(或权限问题)阻止它。