我有一个我们使用的网络服务器,apache,centos5,php
我有一个名为“include.php”的文件,我需要将其包含在多个站点中。
例如。我有一个名为 testsite.co.za 的站点,现在我想在 index.php 中包含 include.php 文件,include.php 不在 testsite.co.za 的根目录中,
现在我在 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
-includes
-include.php
希望这是有道理的
请记住,使用 时
require '../[something]'
,您指的是 PHP 的工作目录,而不是实际脚本的路径。我更喜欢总是使用这样,我知道我需要一个与 require 语句所在的文件相关的文件
因此,在这种情况下,您的包含将是:
这是很久以前问过的,但是对于通过谷歌找到它的任何人,正确的答案是确保此文件位于 php.ini 中设置的 PHP include_path 中,或者通过 php.ini 将您的路径添加到 php include_path 或在运行时通过 set_include_path() php 函数 [ http://php.net/manual/en/function.set-include-path.php ]
然后可以通过 include('myfile.php') 或 require('myfile.php') 访问您的文件,它们都搜索 PHP include_path 以及要包含的文件的当前目录。
您还可以查看 php 5.2 或更低版本中的 __autoload() 或 php 5.3 和 5.4 中的 SplAutoloadRegister() 来创建函数以根据您想要的方式从文件中自动加载您的类,方法是通过创建该魔术函数或在后一种情况下注册自动加载功能。
希望这将有助于沿途的人。
完全有道理。
好吧,据我所知,它应该可以工作:我一直使用类似的指令。我会检查所有目录权限和所有权,以及文件权限,如果这些都正确,我会检查流氓 .htaccess 文件或其他一些可能会让你绊倒的锁定。
如果 Apache 的文档根目录是 /var/www/html,那么指向 /var/www/html/includes/ 中的某些内容应该没有任何问题,除非有某些特定指令(或权限问题)阻止它。