【发布时间】:2013-12-21 11:11:37
【问题描述】:
我目前正在制作一个与 phpBB 论坛融合的网站。在official solution to phpBB3 Sessions Integration 之后,我使用以下代码来包含我的 phpBB 安装中的相关文件:
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : 'forums/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
我的论坛文件夹是(根路径)/forums/,因此只要执行脚本位于域的根文件夹中,它就可以完美运行。但是,如果我尝试从另一个文件夹中包含此代码,则会引发以下错误:
[phpBB 调试] PHP 警告:在文件中 /home/unrealsp/public_html/includes/phpbb.php 在第 5 行: 包括(论坛/common.php)[function.include]:无法打开流: 没有这样的文件或目录 [phpBB 调试] PHP 警告:在文件中 /home/unrealsp/public_html/includes/phpbb.php 在第 5 行: 包括(论坛/common.php)[function.include]:无法打开流: 没有这样的文件或目录 [phpBB 调试] PHP 警告:在文件中 /home/unrealsp/public_html/includes/phpbb.php 第 5 行:include() [function.include]:未能打开“forums/common.php”以供包含 (include_path='.:/usr/lib/php:/usr/local/lib/php') [phpBB 调试] PHP 警告:在文件 /home/unrealsp/public_html/includes/phpbb.php 在线 6:包含(论坛/包含/functions_display.php)[function.include]: 无法打开流:没有这样的文件或目录 [phpBB 调试] PHP 警告:在文件 /home/unrealsp/public_html/includes/phpbb.php 在线 6:包含(论坛/包含/functions_display.php)[function.include]: 无法打开流:没有这样的文件或目录 [phpBB 调试] PHP 警告:在文件 /home/unrealsp/public_html/includes/phpbb.php 在线 6:include() [function.include]:打开失败 'forums/includes/functions_display.php' 用于包含 (include_path='.:/usr/lib/php:/usr/local/lib/php')
我的解决方案尝试如下:
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : 'forums/';
到
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '/forums/';
但这只是在从域根目录运行时破坏了它,而不是修复它,这也是我不明白的。
如何从服务器上的任何位置可靠地包含我的 phpBB 代码?
附录:我目前正在为我的网站空间使用一个临时 URL,它由一个带有用户文件夹的 URL 组成,例如 http://XXX.XXX.XXX.XXX/~user/。但是,将变量更改为 '/~user/forums/' 也不起作用。
【问题讨论】:
标签: php include relative-path phpbb document-root