安装ZF2_Skeleton_ Application和ZFTOOL

原创 2013年12月05日 16:52:57

环境:XAMPP for Linux 1.8.3(php5.5.3  Apache/2.4.4) CentOS6 x86_64

ZF2.2.5 

ZendSkeletonApplication-zf-release-2.1.0-83

1 下载并安装XAMPP

2 下载ZendSkeletonApplication

3 使用命令安装

3.1 解压到你所要的的目录,这里使用的是文档中用的文件名zf2-turorial

3.2 目录要apache能够有权限访问到,这里放到htdocs目录下

一般要给权限755

3.3 创建虚拟主机

这里参照文档中的配置:

<VirtualHost *:80>
    ServerName zf2-tutorial.localhost
    DocumentRoot /path/to/zf2-tutorial/public
    SetEnv APPLICATION_ENV "development"
    <Directory /path/to/zf2-tutorial/public>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

3.4 参照文档,执行命令

php composer.phar self-update
php composer.phar install

3.5 在此过程中
self-update更新的composer.phar,更多信息参照composer.phar文档
然后install进行安装时,检查依赖后,会下载ZendFramework

查看vendor目录可以看到,目录下多了zendframework、bin、composer、autoload.php

具体它是怎么找到zf2 的大家查一下文档。

3.6 运行

4 手动安装

这里不使用命令安装,把ZF2解压到外面,看vendor下面的说明意思是第三方库一般放在vendor下面。

README.md

This vendor/ directory is where third-party modules should be installed.

这里放在了网站外面。这时就要手动指定ZF2所在的位置

根据文档设定include_path和环境变量。

4.1 include_path在php.ini中设定

4.2 环境变量可以在apache的虚拟主机中使用SetEnv设定,也可以在操作系统中设定,如系统级的/etc/profile等linux下设定环境变量的方法。

<VirtualHost *:80>
    ServerName zf2-tutorial.localhost
    DocumentRoot /path/to/zf2-tutorial/public
    SetEnv ZF2_PATH "/path/to/ZF2/library"
    SetEnv APPLICATION_ENV "development"
    <Directory /path/to/zf2-tutorial/public>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

4.3 重启apache 并运行

这里可以看一下init_autoloader.php是如何查找ZF2的

if (file_exists('vendor/autoload.php')) {
    $loader = include 'vendor/autoload.php';
}

$zf2Path = false;

if (is_dir('vendor/ZF2/library')) {
    $zf2Path = 'vendor/ZF2/library';
} elseif (getenv('ZF2_PATH')) {      // Support for ZF2_PATH environment variable or git submodule
    $zf2Path = getenv('ZF2_PATH');
} elseif (get_cfg_var('zf2_path')) { // Support for zf2_path directive value
    $zf2Path = get_cfg_var('zf2_path');
}

if ($zf2Path) {
    if (isset($loader)) {
        $loader->add('Zend', $zf2Path);
    } else {
        include $zf2Path . '/Zend/Loader/AutoloaderFactory.php';
        Zend\Loader\AutoloaderFactory::factory(array(
            'Zend\Loader\StandardAutoloader' => array(
                'autoregister_zf' => true
            )
        ));
    }
}

if (!class_exists('Zend\Loader\AutoloaderFactory')) {
    throw new RuntimeException('Unable to load ZF2. Run `php composer.phar install` or define a ZF2_PATH environment variable.');
}

上面的if else语句标示了不使用命令手动配置查找ZF2的过程。

注意:安装过程注意查看文档,和所下载包里面的INSTALL README等说明文件。

至此手动安装(vendor下不含zendframework)的程序的目录结构如下:

zf2-tutorial2
|-- composer.json
|-- composer.phar
|-- config
|   |-- application.config.php
|   `-- autoload
|       |-- global.php
|       |-- local.php.dist
|       `-- README.md
|-- data
|   `-- cache
|-- init_autoloader.php
|-- LICENSE.txt
|-- module
|   `-- Application
|       |-- config
|       |   `-- module.config.php
|       |-- language
|       |   |-- ar_JO.mo
|       |   |-- ar_JO.po
|       |   |-- ar_SY.mo
|       |   |-- ar_SY.po
|       |   |-- cs_CZ.mo
|       |   |-- cs_CZ.po
|       |   |-- de_DE.mo
|       |   |-- de_DE.po
|       |   |-- en_US.mo
|       |   |-- en_US.po
|       |   |-- es_ES.mo
|       |   |-- es_ES.po
|       |   |-- fr_CA.mo
|       |   |-- fr_CA.po
|       |   |-- fr_FR.mo
|       |   |-- fr_FR.po
|       |   |-- it_IT.mo
|       |   |-- it_IT.po
|       |   |-- ja_JP.mo
|       |   |-- ja_JP.po
|       |   |-- nb_NO.mo
|       |   |-- nb_NO.po
|       |   |-- nl_NL.mo
|       |   |-- nl_NL.po
|       |   |-- pl_PL.mo
|       |   |-- pl_PL.po
|       |   |-- pt_BR.mo
|       |   |-- pt_BR.po
|       |   |-- ru_RU.mo
|       |   |-- ru_RU.po
|       |   |-- sl_SI.mo
|       |   |-- sl_SI.po
|       |   |-- tr_TR.mo
|       |   |-- tr_TR.po
|       |   |-- zh_CN.mo
|       |   |-- zh_CN.po
|       |   |-- zh_TW.mo
|       |   `-- zh_TW.po
|       |-- Module.php
|       |-- src
|       |   `-- Application
|       |       `-- Controller
|       |           `-- IndexController.php
|       `-- view
|           |-- application
|           |   `-- index
|           |       `-- index.phtml
|           |-- error
|           |   |-- 404.phtml
|           |   `-- index.phtml
|           `-- layout
|               `-- layout.phtml
|-- public
|   |-- css
|   |   |-- bootstrap.css
|   |   |-- bootstrap.min.css
|   |   |-- bootstrap-theme.css
|   |   |-- bootstrap-theme.min.css
|   |   `-- style.css
|   |-- fonts
|   |   |-- glyphicons-halflings-regular.eot
|   |   |-- glyphicons-halflings-regular.svg
|   |   |-- glyphicons-halflings-regular.ttf
|   |   `-- glyphicons-halflings-regular.woff
|   |-- img
|   |   |-- favicon.ico
|   |   `-- zf2-logo.png
|   |-- index.php
|   `-- js
|       |-- bootstrap.js
|       |-- bootstrap.min.js
|       |-- html5shiv.js
|       |-- jquery-1.10.2.min.map
|       |-- jquery.min.js
|       `-- respond.min.js
|-- README.md
`-- vendor
    |-- README.md
    `-- ZF2
完。

续:安装ZFTOOL

手动安装,下载并解压,根据文档[1][2]我放到vendor目录下。

.
|-- apache2
|-- bin
|-- build
|-- cgi-bin
|-- docs
|-- error
|-- etc
|-- htdocs
|   |-- conf
|   |-- xampp
|   `-- zf2-tutorial2
|-- icons
|-- img
|-- include
|-- info
|-- lib
|-- libexec
|-- licenses
|-- logs
|-- man
|-- manual
|-- modules
|-- mysql
|-- pear
|-- php
|-- phpmyadmin
|-- proftpd
|-- sbin
|-- share
|-- temp
|-- var
`-- ZendFramework225
    |-- bin
    |-- library
    |   `-- Zend
    `-- resources
查看zf.php为可执行文件。

在vendor下运行。zf.php version 出现了两个问题。第一个是找不到ZF,另外是找不到autoload.php。

对于ZF,上面设置ZF2_PATH是在apache配置文件中设置的,所以使用apache访问页面没问题。但是ZFTOOL却访问不到。

另外,看一下zf.php.

$basePath = getcwd();

ini_set('user_agent', 'ZFTool - Zend Framework 2 command line tool');

// load autoloader
if (file_exists("$basePath/vendor/autoload.php")) {
    require_once "$basePath/vendor/autoload.php";
} elseif (file_exists("$basePath/init_autoload.php")) {
    require_once "$basePath/init_autoload.php";
} elseif (\Phar::running()) {
    require_once __DIR__ . '/vendor/autoload.php';
} else {
    echo 'Error: I cannot find the autoloader of the application.' . PHP_EOL;
    echo "Check if $basePath contains a valid ZF2 application." . PHP_EOL;
    exit(2);
}
寻找的是当前目录下的autoload.php和init_autoload.php。我上面的程序是手动安装的,根目录下只有init_autoloader.php。

所以要解决这两个问题,

首先修改init_autoload.php为init_autoloader.php

其次设置环境变量。我这里没有设置系统的环境变量,而是在init_autoloader.php里设置环境变量。这样ZFTOOL在访问init_autoloader.php的时候就执行了添加了环境变量。

putenv("ZF2_PATH=/opt/lampp/ZendFramework225/library");
第三,在zf2-tutorial2根目录下运行zf.php,我这里使用绝对路径

/opt/lampp/bin/php /opt/lampp/htdocs/zf2-tutorial2/vendor/ZFTool/zf.php version
结果:

ZFTool - Zend Framework 2 command line Tool
The application in this folder is using Zend Framework 2.2.5
完。

参照:

http://framework.zend.com/manual/2.0/en/ref/installation.html

http://framework.zend.com/manual/2.0/en/user-guide/skeleton-application.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Set up Zend Framework Skeleton Application on Mac Step by Step

1. Install Composer 2. Verify that Composer is installed successfully 3. Install ZendSkeletonApplica...

Unity Spine Skeleton Animation 2D骨骼动画 For Game 介绍

欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌...

zf2 英文书籍

  • 2013-11-29 10:52
  • 3.14MB
  • 下载

jeb 2 python scripts api skeleton

前言jeb 1 支持python,java脚本,jeb 2 现在的最新版只支持python脚本(也有可能我没发现如何使用的java脚本). jeb 2 提供了java版本的api(估计是为了开发插件...

zf2配置文件

  • 2013-08-08 12:25
  • 741KB
  • 下载

EvaOAuth : 基于php/ZF2支持OAuth1.0与OAuth2.0的第三方Oauth登录统一接口模块

EvaOAuth是一个统一接口设计,兼容OAuth1.0与OAuth2.0规范的php oauth登录模块,目前支持超过20个主流网站的OAuth登录,包括: 国外 Facebook OA...

单元测试一个ZF2应用程序

在一个大型项目的开发过程中特别是牵涉到许多人员参与时,一个可靠的单元测试是必不可少的。对于应用程序每当有所变化后都返回并手动对每个组件进行测试是不切实际的。在你用相同的方法写自己的测试时单元测试可以帮...

ZF2自动加载非PSR-0标准库及实例(GeoIP地理位置查询)

Zend Framework 2.0的自动加载机制主要基于PSR-0标准,引入新的第三方库只需要注册新的命名空间即可。 比如加载ZendOAuth模块,下载后放于vendor/ZendOAuth...

zf2中文手册

  • 2015-11-10 11:08
  • 1.07MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)