yii2 增加新的目录结构

搭建新的目录结构详细点击这里

搭建Restful API 点击这里

1.开发环境
操作系统        Windows Server 2012 R2 Datacenter
PHP架构        Apache版UPUPW PHP5.4
编程软件        Zend Studio 12.0.2

2.环境配置
解压缩UPUPW到D盘根目录,分别在UPUPW中新添加三个站点,如下
http://admin.mxq.com 
http://www.mxq.com 
http://api.mxq.com
网站目录都是用默认路径,然后修改D:\upupw\Apache2\conf\httpd-vhosts.conf文件,例如
将http://admin.mxq.com的DocumentRoot 修改为D:/upupw/vhosts/mxq.com/backend/web,php_admin_value open_basedir修改为D:\upupw\vhosts\mxq.com\,Directory修改为D:/upupw/vhosts/mxq.com/backend/web,其他站点也做相应修改

3.通过归档文件安装 Yii

  • 3.1 从 yiiframework.com 下载 Advanced 归档文件。将下载的文件解压缩到 D:\upupw\vhosts\mxq.com 目录中。
  • 3.2 把php.exe加入系统环境变量
    • ① 右击我的电脑-属性-高级-环境变量
    • ②找到 Path 这一项(可能需要向下滚动才能找到),鼠标双击 Path 这一项,在最后加入你的 PHP 目录和类库所在的路径,包括前面的“;”(例如:;C:\php;C:\php\ext)
    • ③点击“新建”按钮并在“变量名”中输入“PHPRC”,在“变量值”中输入 php.ini 文件所在的目录(例如:C:\php) ,这个步骤是为了让windows找到php.ini.
  • 3.3 运行CMD 进入安装目录中,执行init或在安装目录中运行init.bat,选择 0 开发模式进行安装
  • 3.4在UPUPW中添加本地域名解析,这样就可以通过http://admin.mxq.com进行访问,其他两个类似。

4.添加新应用API
新部署的YII只有backend和frontend,我们手动添加api应用

  • 4.1 复制frontend下的所有文件到api文件夹,批量替换frontend为api
  • 4.2 打开D:\upupw\vhosts\mxq.com\common\config\bootstrap.php,复制包含frontend的那一行,并将frontend改为api,为应用增加别名。
  • 4.3 打开D:\upupw\vhosts\mxq.com\environments\index.php,复制包含frontend的行,改为api,Development和Production下的setWritable和setCookieValidationKey都要做相应复制和修改
  • 4.4 复制D:\upupw\vhosts\mxq.com\environments\dev和D:\upupw\vhosts\mxq.com\environments\prod文件夹下的frontend到相同目录下,改名为api
  • 4.5 执行3.3的操作,通过 http://api.mxq.com 访问新添加的应用

5.添加数据库表前缀
打开D:\upupw\vhosts\mxq.com\common\config\main-local.php,
在db中增加子项

  1. ‘tablePrefix‘ => ‘mxq_‘,

复制代码

6.配置 Gii 为其添加允许外网访问的 IP 地址
打开D:\upupw\vhosts\mxq.com\backend\config\main-local.php,将

  $config[‘modules‘][‘gii‘] = ‘yii\gii\Module‘;

复制代码

一行注释掉,改为

$config[‘modules‘][‘gii‘] = [

‘class‘ => ‘yii\gii\Module‘,

‘allowedIPs‘ => [‘127.0.0.1‘, ‘192.168.0.*‘]

];

192.168.0.*为您的IP地址
开发阶段进行init初始化操作会将其覆盖掉,所以我们直接修改D:\upupw\vhosts\mxq.com\environments\dev\backend\config\main-local.php,其他的应用也这样修改

7.开启国际化支持,源代码中文和设置时区、字符集默认UTF-8
因为所有应用都用中文,所以我们将开启设置在common中。
打开D:\upupw\vhosts\mxq.com\common\config\main.php,
在components一行上加入

‘language‘ => ‘zh-CN‘, // 启用国际化支持

‘sourceLanguage‘ => ‘zh-CN‘, // 源代码采用中文

‘timeZone‘ => ‘Asia/Shanghai‘, // 设置时区

8.禁用api应用的默认布局
打开D:\upupw\vhosts\mxq.com\api\config\main.php,
在components一行上加入

‘layout‘ => false,

9.去掉地址栏URL编码
http://yii2/index.php?r=site%2Flogin
http://yii2/index.php?r=site/login
以上两个网址,那个看起来更清晰明了呢?显而易见是第二个,为了达到这个效果,可以进行如下修改
打开D:\upupw\vhosts\mxq.com\vendor\yiisoft\yii2\web\UrlManager.php将

  $url = "$baseUrl?{$this->routeParam}=" . urlencode($route);

改为

  $url = "$baseUrl?{$this->routeParam}=" . $route;

10.为Controller制定布局模版
在init方法中写入

  $this->layout = ‘‘;

引号之间填入您的布局文件名

11.Apache下三个应用公用一个高级模版配置

<VirtualHost *:80>
        DocumentRoot "D:/upupw/vhosts/mxq.com/backend/web"
        ServerName admin.mxq.com:80
        ServerAlias admin
        ServerAdmin [email protected].mxq.com
        DirectoryIndex index.html index.htm index.php default.php app.php u.php
        ErrorLog logs/admin.mxq.com-error.log
        CustomLog logs/admin.mxq.com-access_%Y%m%d.log comonvhost
        php_admin_value open_basedir "D:\upupw\vhosts\mxq.com\;D:\upupw\memcached\;D:\upupw\phpmyadmin\;D:\upupw\temp\;C:\Windows\Temp\"
    <Directory "D:/upupw/vhosts/mxq.com/backend/web">
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    <LocationMatch "/(inc)/(.*)$">
        AllowOverride none
        Require all denied
    </LocationMatch>
    <LocationMatch "/(attachment|attachments|uploadfiles|avatar)/(.*).(php|php5|phps|asp|asp.net|jsp)$">
        AllowOverride none
        Require all denied
    </LocationMatch>
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot "D:/upupw/vhosts/mxq.com/frontend/web"
        ServerName www.mxq.com:80
        ServerAlias www
        ServerAdmin [email protected]
        DirectoryIndex index.html index.htm index.php default.php app.php u.php
        ErrorLog logs/www.mxq.com-error.log
        CustomLog logs/www.mxq.com-access_%Y%m%d.log comonvhost
        php_admin_value open_basedir "D:\upupw\vhosts\mxq.com\;D:\upupw\memcached\;D:\upupw\phpmyadmin\;D:\upupw\temp\;C:\Windows\Temp\"
    <Directory "D:/upupw/vhosts/mxq.com/frontend/web">
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    <LocationMatch "/(inc)/(.*)$">
        AllowOverride none
        Require all denied
    </LocationMatch>
    <LocationMatch "/(attachment|attachments|uploadfiles|avatar)/(.*).(php|php5|phps|asp|asp.net|jsp)$">
        AllowOverride none
        Require all denied
    </LocationMatch>
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot "D:/upupw/vhosts/mxq.com/api/web"
        ServerName api.mxq.com:80
        ServerAlias api
        ServerAdmin [email protected]
        DirectoryIndex index.html index.htm index.php default.php app.php u.php
        ErrorLog logs/api.mxq.com-error.log
        CustomLog logs/api.mxq.com-access_%Y%m%d.log comonvhost
        php_admin_value open_basedir "D:\upupw\vhosts\mxq.com\;D:\upupw\memcached\;D:\upupw\phpmyadmin\;D:\upupw\temp\;C:\Windows\Temp\"
    <Directory "D:/upupw/vhosts/mxq.com/api/web">
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    <LocationMatch "/(inc)/(.*)$">
        AllowOverride none
        Require all denied
    </LocationMatch>
    <LocationMatch "/(attachment|attachments|uploadfiles|avatar)/(.*).(php|php5|phps|asp|asp.net|jsp)$">
        AllowOverride none
        Require all denied
    </LocationMatch>
</VirtualHost>
时间: 2024-10-26 17:31:24

yii2 增加新的目录结构的相关文章

Laravel5的新特性 - 目录结构和命名空间

Laravel5的新特性 - 目录结构和命名空间 从Laravel4.2升级到Laravel5最大的一个原因就是因为目录结构的调整.Laravel5的目录结构能够更好的帮助人们理解web开发的最佳实践,对WEB的规范化将会做出不小的贡献.那么,Laravel5的目录结构是什么样的呢? app Commands Console Events Handlers Commands Events Http Controllers Middleware Requests Providers Service

Cocos2d-x 3.0新引擎目录结构

Cocos2d-x 3.0新引擎目录结构 2014年4月29日  Cocos2d-x 3.0学习 作为一个Cocos2d-x的菜鸟,我倒是挺愿意关注不同版本之间的区别,Cocos2d-x 3.0自2013年7月份开始发布alpha0-pre版本,到2014年4月23日发布正式版,历经9个版本,总算是敲定了.我刚入手的配置环境是基于Cocos2d-x 2.2.3版本的,稍微对比一下,就可以知道最新发布的3.0正式版真的齐整了很多.看看下面两张截图 Cocos2d-x 2.2.3版本目录结构 Coc

Laravel5.1 学习笔记1, 目录结构和命名空间(待修)

自从用 Laravel4做了个小网站,使用了数据库ORM Eloquent, 就放下了一段时间,想不到这个与Asp.net MVC 有着异曲同工之妙的框架已经出了下个版本,而且还有不小的改动,因此不得不从头过一次,顺便更新一下知识点. 下面内容摘自Laravel 5.0 系列, 目录结构和命名空间 Laravel从4升级到5 ,改变的不只是文件的组织方式,而且是思想上的重大转变. 废话不多说, 新版本的目录. app Console Commands Events Exceptions Http

yii2 目录结构

DIRECTORY STRUCTURE 目录结构 ------------------- assets/             contains assets definition 包含资源定义 commands/           contains console commands (controllers) 包含命令行命令,控制器 config/             contains application configurations 包含应用程序配置 controllers/  

Day4 - 迭代器&amp;生成器、装饰器、Json &amp; pickle 数据序列化、软件目录结构规范

---恢复内容开始--- 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 需求:列表a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求把列表里的每个值加1 1 a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 2 b = [] 3 for i in a: 4 b.append(i+1) 5 a = b 6 print(a) 普通青

关于软件目录结构规范———(转自Alex Li)

软件目录结构规范 为什么要设计好目录结构? "设计项目目录结构",就和"代码编码风格"一样,属于个人风格问题.对于这种风格上的规范,一直都存在两种态度: 一类同学认为,这种个人风格问题"无关紧要".理由是能让程序work就好,风格问题根本不是问题. 另一类同学认为,规范化能更好的控制程序结构,让程序具有更高的可读性. 我是比较偏向于后者的,因为我是前一类同学思想行为下的直接受害者.我曾经维护过一个非常不好读的项目,其实现的逻辑并不复杂,但是却耗费

目录结构及文件基本操作

目录结构及文件基本操作 Linux 目录结构及文件基本操作 介绍 1.Linux 的文件组织目录结构. 2.相对路径和绝对路径. 3.对文件的移动.复制.重命名.编辑等操作. 一.Linux 目录结构 在讲 Linux 目录结构之前,你首先要清楚一点东西,那就是 Linux 的目录与 Windows 的目录的区别,或许对于一般操作上的感受来说没有多大不同,但从它们的实现机制来说是完全不同的. 一种不同是体现在目录与存储介质(磁盘,内存,DVD 等)的关系上,以往的 Windows 一直是以存储介

Linux 基础入门----目录结构及文件基本操作

Linux 目录结构及文件基本操作 介绍 1.Linux 的文件组织目录结构. 2.相对路径和绝对路径. 3.对文件的移动.复制.重命名.编辑等操作. 一.Linux 目录结构 在讲 Linux 目录结构之前,你首先要清楚一点东西,那就是 Linux 的目录与 Windows 的目录的区别,或许对于一般操作上的感受来说没有多大不同,但从它们的实现机制来说是完全不同的. 一种不同是体现在目录与存储介质(磁盘,内存,DVD 等)的关系上,以往的 Windows 一直是以存储介质为主的,主要以盘符(C

Linux 目录结构及文件基本操作

整理来自 https://www.shiyanlou.com/courses/running/59 在讲 Linux 目录结构之前,你首先要清楚一点东西,那就是 Linux 的目录与 Windows 的目录的区别,或许对于一般操作上的感受来说没有多大不同,但从它们的实现机制来说是完全不同的. 一种不同是体现在目录与存储介质(磁盘,内存,DVD 等)的关系上,以往的 Windows 一直是以存储介质为主的,主要以盘符(C 盘,D 盘...)及分区的来实现文件管理,然后之下才是目录,目录就显得不是那