我一直在尝试在我的网站中实现openid功能。我下载了JanRain的图书馆。
我解析了classes目录中的'Auth'文件夹,并按照'example'文件夹中的示例创建了include目录中的try_auth.php,finish_auth.php,common.php文件。
现在,当我点击openid选择器链接时,系统会显示一条错误消息,指出未找到“openid.php”文件。
此文件存在于Auth目录中。
我纠正了它,然后我遇到了一个不同的错误,上面写着'Auth / Yadis / HTTPFetcher.php'。
如果我坐在auth文件夹中的每个文件中单独更改require路径,则需要很长时间。
我的apps目录结构就像这样
app
班级
Auth(openid库)
配置
元素
包括
意见
Webroot公司
的index.php
请帮助我,我做错了什么。如何设置包含路径,以便所有文件自动采用各自的路径。
由于
答案 0 :(得分:2)
as the documentation states(你没有提到版本,所以我假设你使用的是2.xx),这个包中的Auth/
目录必须在你的PHP include path中。 php.ini
,httpd.conf
/ .htaccess
,ini_set()
,... {{}} {}}您的应用目录为php.ini
,它看起来像是:
/path/to/your/app
答案 1 :(得分:1)
文件在那里你只是没有正确设置路径。
你说这是它正在寻找'Auth / Yadis / HTTPFetcher.php'的路径 您可能需要添加完整路径,如下所示:
/var/www/html/whaterver/Auth/Yadis/HTTPFetcher.php
或
/this/is/where/you/put/the/path/to/the/file/Auth/Yadis/HTTPFetcher.php
只需执行此命令即可找到基本路径并将其附加到文件路径
echo `pwd`;
注意:这些是反引号而不是pwd命令的单引号
编辑:
您只需将此添加到您尝试包含在脚本中的文件中。
实施例
您的文件位于:/var/www/html/index.php
你需要在这里包含这个文件:/classes/package/files.php
此文件:/classes/package/files.php知道包中的所有其他文件的位置,因此无需编辑其中任何文件。
但你需要编辑/var/www/html/index.php文件并添加一些内容:
include('/var/www/html/classes/packages/files.php');
一旦你的脚本中有这个,它应该知道其他所有的东西。
或者@ax已经声明这看起来像是一个php.ini配置
希望这有帮助
答案 2 :(得分:0)
您可以使用set_include_path
函数调用(http://php.net/set_include_path
)设置包含路径,如果这就是您所要求的...
答案 3 :(得分:0)
执行 getcwd 以查找您所在的目录并进行适当的 chdir ( s )以解决您的问题。这是一个肮脏的解决方案,但它应该以最小的努力工作。