安装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

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

Application Loader下载安装和发布app程序

之前发布App习惯用xcode来发布,现在客户想自己发布app,因为不可能把代码给他们,只有另辟蹊径,在官方文档中找了,地址:https://developer.apple.com/library/i...
  • quanqinayng
  • quanqinayng
  • 2014年02月12日 16:53
  • 7716

从零创建zend framework 2项目框架

系统要求:php5.3.3以上版本 项目目录:/var/web/newzf2 准备工作: 下载zftool.phar和ZFTOOL模块。到/var/web zftool.phar地址:https://...
  • peakerli
  • peakerli
  • 2013年12月26日 15:13
  • 1385

ubuntu下最全的软件安装、卸载、查看命令

说明:由于图形化界面方法(如Add/Remove… 和Synaptic Package Manageer)比较简单,所以这里主要总结在终端通过命令行方式进行的软件包安装、卸载和删除的方法。 一、...
  • wlsfling
  • wlsfling
  • 2016年07月28日 10:49
  • 1578

Set up Zend Framework Skeleton Application on Mac Step by Step

1. Install Composer 2. Verify that Composer is installed successfully 3. Install ZendSkeletonApplica...
  • cs08211317dn
  • cs08211317dn
  • 2016年06月08日 07:30
  • 554

zf2配置文件

  • 2013年08月08日 12:25
  • 741KB
  • 下载

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

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

jeb 2 python scripts api skeleton

前言jeb 1 支持python,java脚本,jeb 2 现在的最新版只支持python脚本(也有可能我没发现如何使用的java脚本). jeb 2 提供了java版本的api(估计是为了开发插件...
  • zhuanshenai
  • zhuanshenai
  • 2016年08月20日 23:15
  • 791

zf2 框架的模版一个模版实例

  • 2016年02月03日 11:06
  • 34KB
  • 下载

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

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

[ThinkPHP菜鸟之路]1.抛弃ZF2

在学习TP前,曾经接触过一些框架,但都浅尝辄止。 xia
  • wsx2487
  • wsx2487
  • 2014年11月14日 16:11
  • 449
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:安装ZF2_Skeleton_ Application和ZFTOOL
举报原因:
原因补充:

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