我刚刚安装了Zend Framework,当我尝试打开使用该框架创建的网站时,我收到以下错误。
我知道问题是图书馆没有被包括在内,因为我之前检查过其他一些问题......这是我尝试解决的问题,但它仍然没有用。需要注意的一件重要事情是文件正在另一台计算机上运行。所以它不是来自代码。
警告:require_once(Zend / Application.php):无法打开流:第68行的C:\ data \ trunk \ www \ public \ index.php中没有此类文件或目录
致命错误:require_once():无法打开所需的'Zend / Application.php'(include_path ='C:\ data \ trunk \ library ;; C:\ data \ trunk \ www \ application; C:\ xampp \第68行的C:\ data \ trunk \ www \ public \ index.php中的php \ PEAR')
我在:
之间做了一个符号链接C:\data\trunk\library\ZendFramework-1.11.9\library and
C:\data\site.local
我也为符号链接做了一个符号链接:
C:\data\trunk\library\ZendFramework-1.11.9\extras\library and
C:\data\site.local
在我的index.php(C:\ data \ trunk \ www \ public)中:
set_include_path(implode(PATH_SEPARATOR, array(
realpath(dirname(__FILE__) . '/../../library'),
realpath(dirname(__FILE__) . '/../../common'),
realpath(APPLICATION_PATH),
get_include_path(),
)));
require_once 'Zend/Application.php';
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
编辑:
所以我找到了一个确认我应该使用Zend-1.12.3的文件。我还找到了一个txt文件,说“将库文件指向site.local目录。这是zend库所在的位置”。
我在site.local中找到了一个文件
姓名:Zend
内容:链接/Sites/_library/Zend-1.12.3
我在trunk / library中找到了2个文件:
姓名:Zend
内容:链接../../site.local/Zend
名称:ZendX
内容:链接../../site.local/ZendX
如果我遵循所写的内容,这是我的新架构:
C:\ xampp3 \ htdocs中\ mywebsite
site.local
的Zend-1.12.3
ZendX-1.12.3
答案 0 :(得分:0)
你的问题肯定是路径问题......
我可以从上面的路径中看到该库位于C:\data\trunk\library\ZendFramework-1.11.9\library
,不确定您希望在此处使用符号链接实现的目标。
您在代码中查找的类是Zend_Application
(Zend/Application.php
),因此php将查找include_path
中定义的所有位置是否存在Zend/Application.php
文件,它是否包含名为Zend_Application
的类。
如果您将库文件夹从ZendFramework-1.11.9
重命名为ZendFramework-1.11.9
,那应该几乎没问题(虽然它内部不应该有库文件夹...)。也许在ZendFramework-1.11.9/library
文件夹内有Zend
文件夹,这是您在包含路径中需要的文件夹。额外的lib也是一样(我似乎记得它主要提供资源和ZendX库)。
您肯定需要了解include_path
的概念。不要犹豫,使用print_r(explode(';', get_include_path())); exit;
来了解include_path包含的内容。
任何问题都会回来询问!
问题显然来自错误的路径,包括路径。
由于我们不知道从哪里获取库,我将使用我们可以在网上找到的版本来解释。 小心:我不知道您所编辑的库是否已被编辑,有时开发人员倾向于这样做...请在交换它们之前对您的库和地雷进行差异...
因此我们知道该项目位于以下文档根目录下:C:\data\trunk\
根据您的日志include_path='C:\data\trunk\library;;C:\data\trunk\www\application;C:\xampp\php\PEAR'
,这意味着我们可以从C:\data\trunk\library
加载任何类。
现在让我们关注C:\data\trunk\library
文件夹。
您可以从Github下载此库以获取ZF 1.12。*,但根据您在1.11上的第一条消息,您可以从官方网站检索包裹:https://framework.zend.com/downloads/archives
获取您使用的版本,完整版:https://packages.zendframework.com/releases/ZendFramework-1.11.9/ZendFramework-1.11.9.zip
然后打开zip文件,只检索所需的文件夹。您需要将library/Zend
和extras/library/ZendX
复制并粘贴到文件夹C:\data\trunk\library
中。这应该是你真正需要的全部