Zend 框架与 XAMPP 的集成

Posted

技术标签:

【中文标题】Zend 框架与 XAMPP 的集成【英文标题】:Zend Framework Integration with XAMPP 【发布时间】:2011-12-18 04:32:40 【问题描述】:

我一直在尝试将 zend 框架与 xampp 集成。却一事无成。

E:\Program Files\XAMPP\xampp\php\PEAR

从上面的路径中删除我的zend库

目前zend框架在

中可用
G:\ZendFramework-1.11.11\ZendFramework-1.11.11

我也尝试从

添加 zend 库
G:\ZendFramework-1.11.11\ZendFramework-1.11.11\library

E:\Program Files\XAMPP\xampp\htdocs\testproject\library

但是,每当我尝试通过此 URL 打开我的页面时

http://localhost:85/testproject/public/

我收到了欢迎使用 zendframework 的输出

但是,每当我尝试打开使用 ZEND_FORM 等 zend 库的任何页面时,都会出现异常

Fatal error: Class 'Zend_Form' not found in E:\Program Files\XAMPP\xampp\htdocs\testproject\public\Guestbook.php on line 15

我还更新了我的 php.ini 文件并将我的 include_path 恢复到此

include_path = ".;E:\Program Files\XAMPP\xampp\php\PEAR;G:\ZendFramework-1.11.11\ZendFramework-1.11.11\library\"

我们将不胜感激紧急帮助

我的操作系统是 Windows 7。

当我输入命令 php -v 然后它返回给我

PHP 5.3.0 (cli) (built: Jul  2 2009 21:08:11)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies

然后 zf show version 返回了我

zf show version
Zend Framework Version: 1.11.11

xampp 的版本是 1.7.2

应用程序版本是:

Apache/2.2.12 (Win32) DAV/2 mod_autoindex_color PHP/5.3.0 mod_perl/2.0.4 Perl/v5.10.0

Index.php 文件

<?php
// Set the initial include_path. You may need to change this to ensure that 
// Zend Framework is in the include_path; additionally, for performance 
// reasons, it's best to move this to your web server configuration or php.ini 
// for production.
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(dirname(__FILE__) . '/../library'),
    get_include_path(),
)));

// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

/** Zend_Application */
require_once 'Zend/Application.php';  

// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV, 
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap();
$application->run();
    enter code here

.htaccess 文件

SetEnv APPLICATION_ENV development

RewriteEngine On
RewriteCond %REQUEST_FILENAME -s [OR]
RewriteCond %REQUEST_FILENAME -l [OR]
RewriteCond %REQUEST_FILENAME -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

【问题讨论】:

您是否尝试过在创建项目后将 zend 框架库放在项目的库文件夹中? 我不明白你为什么要做这一切。要让 ZF 工作,您只需安装 XAMP,将 ZF 解压缩的文件夹放入 localhost,运行 zf.bat 以创建您的项目,然后将 ZF 库复制/粘贴到您的项目文件夹中。之后,您必须将一条规则更改为您的 http.conf,即将 AllowOverride None 更改为 AllowOverride All 试过但没有帮助仍然是同样的错误:( 发布你的 .htaccess 文件和 index.php 的来源 我已经更新了我的问题并包含了您要求我提供的两个文件。 【参考方案1】:

也许这会有所帮助,我使用的是 EasyPhp(而不是 XAMPP) 和zend的自动生成的.htaccess,我在apache中有这个

NameVirtualHost 127.0.0.1:80

<VirtualHost abc:80>
DocumentRoot "C:/www/www/abc/public"
ServerName .local
SetEnv APPLICATION_ENV development
<Directory "C:/www/www/abc/public">

    Options Indexes MultiViews FollowSymLinks

    AllowOverride All

    Order allow,deny

    Allow from all
</Directory> 

</VirtualHost>

这就是目录的样子

 Directory di c:\www\www\abc

[.]              [..]             .buildpath       .project
[.settings]      .zfproject.xml   [application]    [cache]
[data]           [docs]           [library]        [public]
[scripts]        [tests]

 Directory di c:\www\www\abc\library

[.]          [..]         [abc] [tcpdf]      [Zend]       [ZendX]

【讨论】:

以上是关于Zend 框架与 XAMPP 的集成的主要内容,如果未能解决你的问题,请参考以下文章

Smarty集成到CodeIgniter框架中

ZF2 将 BjyAuthorize 与 Zend\Navigation 集成

Xampp 中的 Zend 框架

将“流行”因素与 zend-search lucene 正确集成的最佳方法是啥?

PHP 将Zend Framework 1.10与Doctrine 2集成

使用 zend 框架安装和使用学说