Zend Framework 2多域名多模块部署

使用Zend Framework 2进行开发,有时我们想要将不同的域名指向不同的模块。比如:

  • 访问www.fynas.com指向到网站主功能Application模块;
  • 访问blog.fynas.com指向到网站博客功能Blog模块。

要实现这种需求,其实有多种办法,这里介绍两种供参考,这两种方法都先要求两个域名均指向一个ip上的同一个web server,请在域名提供商处设置好。

第一种方案:web server虚拟主机配置不同域名指向不同目录

这种情况下典型的zend framework目录结构如下:

首先我们可以看到public(因为zend framework官方工具生成的入口文件夹就叫public,所以我们此处与之保持一致便于理解)和blog两个平行的目录,且目录下的内容结构也差不多,都包含一个入口文件index.php和几个静态资源文件夹。来看一下两个目录下的index.php的区别,以下是默认的public/index.php的代码:

而blog/index.php的代码与上面只需要改一下最后一句,变成:

看到这里,我们也注意到config目录下有两个配置文件——application.config.php和blog.config.php,没错,这正是上面两个不同的index.php分别加载的配置文件。下面两段代码分别是application.config.php和blog.config.php的module配置代码:

可以看到两个的module配置加载了不同的模块。

接下来配置不同的域名指向不同的目录,以apache为例,在vhosts.conf文件中配置如下:

最后不要忘了在public和blog目录下都放置一个.htaccess文件,两边内容一样,使用zend framework官方示例的即可:

到此为止,就可以实现刚开始提出的需求了。

 

第二种方案:.htaccess将不同域名请求转发到不同入口文件

这种方案与上种方案有很多地方是类似的,这里介绍不同的地方。老规矩,先上目录结构:

从目录结构上来看,简单了一些,没有前一种方案中与public平级的blog目录了,取而代之的是在public目录下新建了一个入口文件blog.php,而blog.php的代码与方案一中blog/index.php的代码一样,这里不再重复。

webserver的配置也简单一些,所有域名请求都指向到public目录:

要.htaccess文件配置相对就复杂一些,如下:

 

好了,至此两种方法都介绍完了,当然这两种方法也不局限于不同域名配置不同模块,不同路径配置不同模块也可以参考。通过module.config.php中配置路由的方式来将不同路径指向不同的模块可能会存在view_manager相互覆盖导致多个模块无法使用多个布局的问题,详细可见《Zend Framework 2 module.config.php配置详解》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值