我复制了&在这里粘贴了这个文字。似乎编辑器似乎随机地格式化了一些部分。 ;)
我下载了ZendGdata 1.9.6,将其解压缩并放大了上传到我的网站 root文件夹...,我需要与Youtube API一起使用才能将视频导入我的网站。 我必须说我对这一切都是新手,所以我希望考虑到这一点。
库文件夹位于/ ZendGdata / library。
我遇到的问题是步骤。 3当我按照说明操作时 (http://code.google.com/intl/de-DE/apis/gdata/articles/php_client_lib.html#gdata-installation)
为此目的进行设置。
除了.htaccess文件之外,添加路径的建议位置之一是在php.ini中。 我的网站是共享主机。我无法访问主php.ini文件,但如果需要,我可以创建一个。对于Drupal CMS,对于某些功能,只需将其放在根文件夹中即可。
我添加了这一行:
include_path=".:/usr/lib/php:/usr/local/lib/php:/home/habaris6/
public_html/site.root.folder/ZendGdata/library";
然而,当我去mysite.com/ZendGdata/demos/Zend/Gdata/InstallationChecker.php来测试设置时,就像在 关于Youtube的文档,我收到错误:
PHP Extension ErrorsTested No errors found
Zend Framework Installation Errors: Tested 0
Exception thrown trying to access Zend/Loader.php using 'use_include_path' = true.
Make sure you include Zend Framework in your include_path which currently
contains: .:/usr/lib/php:/usr/local/lib/php
SSL Capabilities Errors: Not tested
YouTube API Connectivity Errors: Not tested
所以我的问题是:这是“将库文件夹的位置添加到PHP路径”的正确方法吗? 我有点混乱了。
有人说php.ini文件只在它所在的文件夹中处于活动状态。如果是这种情况,哪个ZendGdata文件夹应该有它? 正如我所说,我的目的是正确设置Zend框架以允许使用Youtube API,这也是我还需要学习的东西。
在Youtube API Google小组中,我在这里被提及。下载文件附带的文档&在zend.com预先设想,人们比像我这样的初学者知道得多。
另一个人说我尝试放置这个
$clientLibraryPath = '/home/habaris6/public_html/site.root.folder/ZendGdata/library';
$oldPath = set_include_path(get_include_path() . PATH_SEPARATOR . $clientLibraryPath);
在mysite.com/ZendGdata/demos/Zend/Gdata/InstallationChecker.php
然而我之前尝试过的所有内容都失败了,除了第一次测试时,当我将上述代码片段放入安装检查程序时,我对所有内容都进行了正面测试:
Ran PHP Installation Checker on 2009-12-09T21:16:08+00:00
PHP Extension ErrorsTested: No errors found
Zend Framework Installation Errors Tested No errors found
SSL Capabilities ErrorsTested No errors found
YouTube API Connectivity ErrorsTested No errors found
这是否意味着如果我将该代码段放在安装检查程序中,所有需要该库的脚本都可以访问它?
如果没有,请让我知道在自制的php.ini&它应该在哪个文件夹中。 如果这不起作用,我将使用.htaccess文件,究竟是什么,基于上面提到的文件夹应该是内容&究竟应该在哪些文件夹中?我读到.htaccess文件应该放在每个文件夹中。这是否真的意味着我应该在每个ZendGdata文件夹中放置一个? 我很感激能够让我最终开始的任何指导,在其他地方得不到充分的回应之后。
提前致谢。
答案 0 :(得分:0)
没有必要将所有ZendGdata代码放在您的网站文档根目录下。事实上,作为一项规则,我不将PHP类库放在可以通过Web请求直接访问的位置,因为如果有任何方法通过直接调用类文件来进行恶作剧,那么任何人可以做到。
相反,将库放在文档根目录之外,然后从直接运行的脚本中引用它们。例如,您可以创建一个目录phplib
作为public_html
目录的姐妹。然后在该phplib
目录下上载ZendGdata包。
您可以在.htaccess文件中设置PHP包含路径。您不需要在每个目录中创建.htaccess文件,因为任何.htaccess文件中的指令都适用于.htaccess所在目录下的所有文件和目录。有关详细信息,请参阅http://httpd.apache.org/docs/2.2/howto/htaccess.html。
所以我建议在/home/habaris6/public_html/site.root.folder中创建一个包含以下指令的.htaccess文件:
<IfModule mod_php5.c>
php_value include_path ".:/usr/local/lib/php:/home/habaris6/phplib/ZendGdata/library"
</IfModule>
有关详细信息,请参阅http://php.net/manual/en/configuration.changes.php。
请注意,这假设您的网站托管公司允许您使用.htaccess文件,并允许您在.htaccess文件中使用php_value
指令。启用这些选项是Apache配置,出于性能或安全性的原因,它们可以针对此配置制定自己的策略。您应该联系他们获取此答案;互联网上没有人可以回答有关您的托管服务提供商政策的问题。
如果您选择使用set_include_path()
PHP函数将目录附加到运行时包含路径,则需要在每个用作Web请求着陆点的文件中执行此操作。也就是说,如果您允许直接向foo.php
发出请求,则需要将代码添加到foo.php
。 foo.php
随后包含的任何文件或类都使用您定义的包含路径。
另请注意,无论您使用哪种方法来定义包含路径,都必须在生效之前使脚本尝试通过包含路径加载任何PHP类文件。 .htaccess方法应该完成这个,如果你使用代码方法,你只需要在PHP脚本中放置足够高的代码。
我不使用在站点文档树中的每个目录下创建自定义php.ini
文件的方法。这是PHP 5.3.0的新功能,早期版本的PHP不支持。如果你正在使用Apache,你应该使用.htaccess来达到同样的效果。