一、Zend Framework 2 安装环境要求

Apache:

1、打开 mod_rewrite 支持(1)打开 httpd.conf 文件(2)找到 #LoadModule rewrite_module modules/mod_rewrite.so 这一行(3)把这行左侧第一个字符(#)删除(4)保存修改后的 httpd.conf 文件并重启 Apache2、支持 .htaccess 文件要支持 .htaccess 文件有两种方法下面的操作假设 ZF2 开发项目保存在 e:\Web\zf2working\ 目录下方法一:直接修改 httpd.conf 文件(1)、打开 httpd.conf 文件(2)、找到 <Directory "e:/Web/zf2working"> 段,如果没有可以全新手动添加(3)、添加 AllowOverride All 或者将原有的 AllowOverride None 修改成 AllowOverride All(4)、保存修改后的 httpd.conf 文件并重启 Apache方法二:在 httpd-vhosts.conf 文件中修改(1)打开 httpd-vhosts.conf 文件,该文件一般在“Apache安装路径/conf/extra/”目录下(2)在文件底部手动添加以下信息<VirtualHost *:80>DocumentRoot "E:/Web/ZF2Working/zf2-tutorial/public"ServerName zf2-tutorial.localhost# This should be omitted in the production environmentSetEnv APPLICATION_ENV development<Directory "E:/Web/ZF2Working/zf2-tutorial/public">DirectoryIndex index.phpAllowOverride AllOrder allow,denyAllow from all</Directory></VirtualHost>以上代码详细说明将在后面ZF2环境配置中详细介绍,这里只要注意加粗部分就可以了。(3)保存修改后的 httpd-vhosts.conf 文件并重启 Apache

PHP:

1、版本要在 5.3.x 以上(包含 5.3.x)由于 ZF2 采用了 PHP5.3+ 中很多的特性和函数,例如:namespaces, late static binding, lambda functions and closures 所以要求 PHP 版本必须为 5.3 以上(含 5.3)2、打开 openssl 支持(可选)这个要说一下,在接下来的安装过程中会介绍两种安装方式:(1)在线安装;(2)手动安装,如果采用“在线安装”那么 openssl 需要打开,不然安装会失败,如果是“手动安装”openssl 开不开就无所谓了。(1)打开 php.ini 文件(2)找到 ;extension=php_openssl.dll这一行(3)将这行左侧第一个字符(;)去掉(4)保存修改过的 php.ini 文件并重启 Apache3、打开 PDO MySQL 数据库支持(可选)PHP默认是打开了 Sqlite 支持的,如果需要使用到 MySQL 就需要打开 PDO 的 MySQL 数据库支持(1)打开 php.ini 文件(2)找到 ;extension=php_pdo_mysql.dll这一行(3)将这行左侧第一个字符(;)去掉(4)保存修改过的 php.ini 文件并重启 Apache

MySQL:

没有特别需求,如果项目不牵涉到数据库,MySQL 甚至可以不装。也可以根据项目要求使用其它的数据库,例如:Sqlite 等。

1.直接去https://github.com/zendframework/ZendSkeletonApplication下载项目文件

2.创建vendor文件,存放库文件

3.去官网http://framework.zend.com/下载库文件



4.解压ZendFramework-2.4.3.zip,并放入vendor/ZF2中


5.配置hosts文件


6.配置虚拟主机
httpd.conf

httpd-vhosts.conf

<VirtualHost *:80>DocumentRoot "D:/phpsuit/apache/htdocs/ZendSkeletonApplication/public"ServerName zf2.local# This should be omitted in the production environmentSetEnv APPLICATION_ENV development<Directory "D:/phpsuit/apache/htdocs/ZendSkeletonApplication/public">DirectoryIndex index.phpAllowOverride AllOrder allow,denyAllow from all</Directory>
</VirtualHost>

7. 注意:


如果出现上面错误,则:

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');
}


8.完成


二、 测试 .htaccess 文件
在浏览器中输入 http://zf2.local/1234 由于 1234 这个文件不存在,如果您的 .htaccess 文件的设定是有效的话,应该可以看到如下的显示


三、错误报告配置(可选)

<VirtualHost *:80>DocumentRoot "D:/phpsuit/apache/htdocs/ZendSkeletonApplication/public"ServerName zf2.local# This should be omitted in the production environmentSetEnv APPLICATION_ENV development<Directory "D:/phpsuit/apache/htdocs/ZendSkeletonApplication/public">DirectoryIndex index.phpAllowOverride AllOrder allow,denyAllow from all</Directory>
</VirtualHost>

在代码中有一行

SetEnv APPLICATION_ENV development

这行说明目前我们将整个项目的模式设定为”开发模式(developement)“,在这个模式下 PHP 会向浏览器输出所有的错误信息,方便我们的开发和调试。

注意:项目正式上线之前要将这个模式删除,以免造成信息泄露和安全漏洞。

除了在虚拟主机的配置文件中设定开发模式之外,还需要在项目入口文件中做一点额外的设定。

打开 D:/phpsuit/apache/htdocs/ZendSkeletonApplication/public/index.php ,默认的代码如下

<?php
/*** This makes our life easier when dealing with paths. Everything is relative* to the application root now.*/
chdir(dirname(__DIR__));// Decline static file requests back to the PHP built-in webserver
if (php_sapi_name() === 'cli-server' && is_file(__DIR__ . parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH))) {return false;
}// Setup autoloading
require 'init_autoloader.php';// Run the application!
Zend\Mvc\Application::init(require 'config/application.config.php')->run();

在文件顶部添加以下代码

/*** Display all errors when APPLICATION_ENV is development.*/
if ($_SERVER['APPLICATION_ENV'] == 'development') {error_reporting(E_ALL);ini_set("display_errors", 1);
}

最终的代码如下:

<?php
/*** Display all errors when APPLICATION_ENV is development.*/
if ($_SERVER['APPLICATION_ENV'] == 'development') {error_reporting(E_ALL);ini_set("display_errors", 1);
}/*** This makes our life easier when dealing with paths. Everything is relative* to the application root now.*/
chdir(dirname(__DIR__));// Decline static file requests back to the PHP built-in webserver
if (php_sapi_name() === 'cli-server' && is_file(__DIR__ . parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH))) {return false;
}// Setup autoloading
require 'init_autoloader.php';// Run the application!
Zend\Mvc\Application::init(require 'config/application.config.php')->run();

第2讲 ZF2.4 最新框架搭建相关推荐

  1. 基于SpringMVC下的Rest服务框架搭建【1、集成Swagger】

    基于SpringMVC下的Rest服务框架搭建[1.集成Swagger] 1.需求背景 SpringMVC本身就可以开发出基于rest风格的服务,通过简单的配置,即可快速开发出一个可供客户端调用的re ...

  2. Android MVVM框架搭建(三)MMKV + Room + RxJava2

    Android MVVM框架搭建(三)MMKV + Room + RxJava2 前言 正文 一.添加依赖 二.MMKV 1. 初始化 2. 数据存取 3. 使用 三.Room 1. @Entity ...

  3. spring cloud多模块项目框架搭建-Redis-Cluster集群搭建及系统集成

    第九章 Redis-Cluster集群搭建及系统集成 本系列博客旨在搭建一套能用于实际开发使用的spring cloud多模块微服务项目框架,并不是一个spring cloud的demo而已,提供系统 ...

  4. 游戏用户流失原因及分析框架搭建

    文章讲的是游戏用户流失原因及分析框架搭建,在游戏公司中,玩家流失一直是制作人.策划.业务运营最为关心的问题之一.本文将围绕用户流失,介绍如何针对流失搭建数据分析模型.我们从玩家流失原因说起. 玩家为什 ...

  5. 基于SSM框架搭建的论坛系统

    基于SSM框架搭建的论坛系统 页面展示: 主页 帖子页面 论坛数据库设计 SSM框架搭建 RootConfig.java WebConfig.java WebInit.java 配置po模型 User ...

  6. SSH框架搭建问题总结

    1.eclipse中tomcat配置是否正确?能否在网页中访问的到? 如何在eclipse中配置tomcat就不说了,我们看下问题,在网页上访问tomcat的地址,为什么出现404错误呢? 解决办法: ...

  7. (三) Angular2项目框架搭建心得

    前言: 在哪看到过angular程序员被React程序员鄙视,略显尴尬,确实Angular挺值得被调侃的,在1.*版本存在的几个性能问题,性能优化的"潜规则"贼多,以及从1.*到2 ...

  8. class unity 定义类_Unity 游戏框架搭建 2019 (二十五) 类的第一个作用 与 Obselete 属性...

    在上一篇我们整理到了第七个示例,我们今天再接着往下整理.我们来看第八个示例: #if UNITY_EDITORusing UnityEditor; #endif using UnityEngine; ...

  9. Unity 游戏框架搭建 (九) 减少加班利器-QConsole

    为毛要实现这个工具? 在我小时候,每当游戏在真机运行时,我们看到的日志是这样的. 没高亮啊,还有乱七八糟的堆栈信息,好干扰日志查看,好影响心情. 还有就是必须始终连着usb线啊,我想要想躺着测试... ...

  10. 基于GitBook框架搭建技术文档平台

    源宝导读:为了向用户更好的传递ERP开放平台的价值与技术知识,我们基于GitBook框架搭建了一个文档中心站点,本文将介绍此站点的设计与实现过程. 一.项目架构图 因为文档会涉及到很多的产品线,所以目 ...

最新文章

  1. i.MX6UL: i.MX 6UltraLite处理器 - 低功耗,安全,Arm® Cortex®-A7内核
  2. FFMPEG转码常用命令研究
  3. 构建微服务时的三大常见错误
  4. 今天的工作发现了4年前的“bug一枚”
  5. Java时间操作工具类
  6. 如何保证Linux服务器的安全
  7. 从电脑传PDF到IPad的阅读器上
  8. ActiveX控件的另类免费签名法
  9. docker mysql开机自启动_Docker 学会让容器开机自启服务
  10. python全栈计划_Python 全栈学习视频教程,包含了从 0-99天的全栈学习计划,估计可以学习 1024 小时。...
  11. 清除vlan.dat文件
  12. 大数据开发笔记(十):Hbase列存储数据库总结
  13. SPSS和excel数据分析之平均值和标准误差对比图
  14. sis最新ip地址2020_2020 前端面试 | 第一波面试题总结
  15. 计算机 无法 访问共享网络打印机,共享打印机无法连接怎么办解决方案
  16. Adobe Illustrator CS5 序列号及安装方法
  17. CAD二次开发--ZOOM自定义缩放到视口区域,解决SelectCrossingWindow等方法对视口外实体不起作用的问题
  18. 股票买卖原理_如何在智能手机上买卖股票
  19. 监控系统与服务器的连接,监控服务器的连接方法
  20. 毕设 - 大数据用户画像分析系统 - 数据分析可视化

热门文章

  1. ASP.NET MVC 4 中Jquery上传插件Uploadify简单使用-版本:3.2.1
  2. cygwin清屏技巧
  3. 不要奢望.NET能够跨平台
  4. 用python重温统计学基础:描述性统计分析
  5. ModelAttribue注解的使用
  6. 九宝老师微信小程序开发的过程
  7. 变相解决Unidac无法向Postgresql传游标RefCursor的问题
  8. 数据转换软件公司——HYFsoft
  9. 14个新鲜的免费图标集
  10. redis string底层数据结构