环境: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.localhostDocumentRoot /path/to/zf2-tutorial/publicSetEnv APPLICATION_ENV "development"<Directory /path/to/zf2-tutorial/public>DirectoryIndex index.phpAllowOverride AllOrder allow,denyAllow 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.mdThis 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.localhostDocumentRoot /path/to/zf2-tutorial/publicSetEnv ZF2_PATH "/path/to/ZF2/library"SetEnv APPLICATION_ENV "development"<Directory /path/to/zf2-tutorial/public>DirectoryIndex index.phpAllowOverride AllOrder allow,denyAllow 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

安装ZF2_Skeleton_ Application和ZFTOOL相关推荐

  1. 安装WebSphere Application Server

    2 WebSphere Application Server 2.1 安装WebSphere Application Server 2.1.1 使用imcl安装WebSphere Applicatio ...

  2. IIS安装ARR(Application Request Router)反向代理插件

    最近接管了一个ASP的项目.前后台两个站点.每次后台站点上传图片,都是手动将图片拷贝到前台站点服务器的方式来实现的.美其名曰,图片审核,呵呵. 我的想法是在前端服务器上配置反向代理.避免每次都需要手动 ...

  3. ArcGIS Server9.3+ArcGIS Desktop9.3破解安装(for microsoft .net)

    操作系统:windwos server 2008 enterprise edition 安装文件:ArcGIS Server 9.3              ArcGIS Desktop 9.3   ...

  4. WebSpher 6.1 安装与应用

    1. 名词术语解释 1.1 名词缩写: 1. WAS: 即IBM公司的应用服务器WebSphere Application Server的简称: 2. ND: 即IBM公司的应用服务器WebSpher ...

  5. 【Docker】Docker学习笔记:安装部署

    Docker 是实现轻量级的操作系统虚拟化解决方案. Docker目前已经支持非常多的Linux平台,Ubuntu.Red Hat企业版Linux.Debian.CentOs.Fedora.Oracl ...

  6. macOS中安装docker

    如官方文档中所说: 1.点击进入boot2docker/osx-installer release页面. 2.在下载页面中点击 Boot2Docker-x.x.x.pkg 来下载 Boot2Docke ...

  7. linux6 安装oracle11g

    Linux 转自:http://blog.csdn.net/nhm_lxy/article/details/37813789 转自:https://www.cnblogs.com/saratearin ...

  8. ubuntu 安装sql_在Ubuntu上进行SQL Server安装和故障排除

    ubuntu 安装sql A couple of years ago, Microsoft announced that SQL Server would be available on Open S ...

  9. php 安装redis 扩展

    下载  redis 下载:https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz安装包上传到服务器   或者 直接wget https:/ ...

最新文章

  1. C ++变量,文字和常量
  2. 锅都不敢背,凭什么让大家跟着你干?
  3. uniapp启动页,底部虚拟按钮向上闪一下的问题
  4. sublime text3安装python插件和flake8_让你的代码符合PEP8标准——sublime text 2 安装及使用 Python Flake8 Lint 插件...
  5. 使用动画播放文件夹中的图片
  6. 为什么我们不要 .NET 程序员
  7. 做出的一个图片的自动展示效果(JS版本)
  8. 机器学习中生成模型和判别模型
  9. 利用模板引擎配合ajax进行数据的导入
  10. 一文读懂clickhouse的世界
  11. 正则除了几个汉字的其它汉字_理解汉字的几个层次
  12. Lc151翻转字符串里的单词
  13. Win10配置FORTRAN环境 CodeBlocks下载安装教程
  14. 【易我分区大师】磁盘分区助手无损c盘扩容方法
  15. android一键改机之真改机build.prop
  16. VS Code插件离线安装教程
  17. con 元器件符号_电子元器件常用的符号
  18. (转载)一文教你 “量子编程”入门式
  19. Internet Explorer无法打开internet站点文件.....操作终止
  20. 数据结构和算法经典书籍

热门文章

  1. 语音识别技术之声学模型
  2. 常用的十种算法--克鲁斯卡尔算法
  3. React 中 useState 清理的必须性
  4. 请把ios文件解压出来是什么意思_ios信息列表美化,iphone必用技巧
  5. 老年人手抖一定是帕金森吗
  6. 2019年小学计算机室管理制度,2018年-2019上小学微机室工作计划.doc
  7. logisim 快速加法器设计实验报告_基于Logisim平台的《计算机组成原理》实验教学探究...
  8. 网站管理后台模板 Charisma
  9. Win7注册表优化工具箱
  10. 小米手机录音机录音音频保存在哪个路径文件夹?