# hau-yii2
**Repository Path**: len168_com/hau-yii2
## Basic Information
- **Project Name**: hau-yii2
- **Description**: Hau 是用Yii2框架搭建的API模板
- **Primary Language**: PHP
- **License**: BSD-3-Clause
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 0
- **Created**: 2021-04-21
- **Last Updated**: 2021-04-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Hau is a Yii2 API Admin Template
Hau 是用Yii2框架搭建的API模板 [Yii 2](http://www.yiiframework.com/) .
后台使用 vue + ElementUI
后台前端项目:[hau-vue-admin-template](https://gitee.com/len168_com/hau-vue-admin-template)
Documentation is at [README.md](https://gitee.com/len168_com/hau-yii2/blob/master/README.md).
[](https://packagist.org/packages/yiisoft/yii2-app-advanced)
[](https://packagist.org/packages/yiisoft/yii2-app-advanced)
[](https://travis-ci.org/yiisoft/yii2-app-advanced)
DIRECTORY STRUCTURE
-------------------
```
api
components/ api组件类目录
config/ api配置
controllers/ 控制器类存放目录
modules/ 模块分类目录
runtime/ 运行时目录
tests/ 测试相关:如单元测试
web/ Web 应用根目录,包含 Web 入口文件
assets/ 包含 Yii 发布的资源文件(javascript 和 css)
index.php 应用入口文件
common
actions/ 公共控制器动作类目录
components/ 公共组件类目录
config/ 公共配置
fixtures/ 测试夹具目录
language/ 国际化语言相关
mail/ 邮件视图view存放目录
models/ 公共模型类和表单类目录 模型类与数据库表一一对应
rbac/ 角色与权限相关的规则类存放目录
tests/ 测试相关:如单元测试
widgets/ 小部件类存放目录 本项目未用到
common
config/ 公共配置
mail/ 邮件视图view存放目录
models/ 公共模型类和表单类目录 模型类与数据库表一一对应
tests/ 测试相关:如单元测试
console
config/ 控制台配置
controllers/ 控制台控制器类存放目录 (commands)
migrations/ 数据库迁移文件目录
models/ 控制台模型类目录
runtime/ 运行时目录
vendor/ composer第三方依赖包目录
environments/ 与环境相关的配置文件目录
upload/ 附件上传目录
vagrant/ 虚拟机相关
.gitignore Git仓库忽略文件配置清单
composer.json Composer第三方包依赖配置文件
docker-composer.json Docker容器配置
init Yii初始化脚本(linux)
init.bat Yii初始化脚本(windows)
LICENSE.md 开源协议
README.md 本说明文件
requirements.php Yii运行环境检测脚本
Vagrantfile 虚拟机配置文件
yii Yii控制台命令入口(linux):如shell控制台下运行php yii 可以看到yii命令的帮助说明
yii.bat Yii控制台命令入口(windows):如cmd控制台下运行./yii.bat 可以看到yii命令的帮助说明
yii_test Yii测试控制台命令入口(linux):如shell控制台下运行php yii_test 可以看到yii命令的帮助说明
yii.bat Yii测试控制台命令入口(windows):如cmd控制台下运行./yii_test.bat 可以看到yii命令的帮助说明
```
Installation
### 克隆仓库代码到本地
```
git clone https://gitee.com/len168_com/hau-yii2.git
```
### 安装 Composer
如果还没有安装 Composer,你可以按 [getcomposer.org](https://getcomposer.org/download/) 中的方法安装。 在 Linux 和 Mac OS X 中可以运行如下命令:
```
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
```
在 Windows 中,你需要下载并运行 [Composer-Setup.exe](https://getcomposer.org/Composer-Setup.exe)。
如果遇到任何问题或者想更深入地学习 Composer, 请参考 [Composer 文档](https://getcomposer.org/doc/)。 如果你已经安装有 Composer 请确保使用的是最新版本, 你可以用 composer self-update 命令更新 Composer 为最新版本。
在本指南中,所有 composer 命令都假定您已经安装了全局 的 composer, 这样它可以作为 composer 命令。如果您在本地目录中使用 composer.phar, 则必须相应地调整示例命令。
如果您之前已安装 Composer,请确保使用最新版本。 您可以通过运行 composer self-update 来更新Composer。
> 注意: 在安装 Yii 期间,Composer 需要从 Github API 请求很多信息。 请求的数量取决于您的应用程序所依赖的数量, 并可能大于 Github API 速率限制。如果达到此限制,Composer 可能会要求您提供 Github 登录凭据以获取 Github API 访问令牌。在快速连接上,您可能比 Composer 能够处理的时间早, 因此我们建议您在安装 Yii 之前配置访问令牌。
#### 配置github-oauth
> [创建一个新的token](https://github.com/settings/tokens/new)
配置token 命令中的token请替换为你在Github创建的token
```
composer config [--global] github-oauth.github.com token
```
### 安装composer fxp插件 请确保composer的版本为1.x 不要使用2.0及以上的版本
```
composer global require "fxp/composer-asset-plugin:~1.3"
```
进入代码目录,安装项目的Composer依赖
```
composer install
```
### 初始化项目
根据提示选择运行环境,选项0为dev开发环境,选项1为生产环境。
```
php init
```
配置数据库和缓存
到common\config目录下,main-local.php配置文件,配置好数据库账号密码等。缓存组件建议使用memcache或redis。
```
[
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=hau_yii2',
'username' => 'root',
'password' => '',
'charset' => 'utf8mb4',
'tablePrefix' => 'hau_',
],
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@common/mail',
],
'cache' => [
'class' => 'yii\caching\MemCache',
'servers' => [
[
'host' => '127.0.0.1',
'port' => 11211,
'weight' => 100,
],
],
'useMemcached' => false
],
],
];
```
### 配置web服务器
Api接口 nginx配置如:
```
server {
listen 80;
server_name yourhost.com;
root "/home/www/hau_yii2/api/web";
location / {
index index.html index.htm index.php;
try_files $uri $uri/ /index.php$is_args$args;
#autoindex on;
}
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
```
本地图片 nginx配置如:
```
server {
listen 80;
server_name pic.yourhost.com;
root "/home/www/hau_yii2/upload";
add_header Access-Control-Allow-Origin '*' always;
add_header 'Access-Control-Expose-Headers' 'Authorization,X-Custom-Header,Content-Disposition';
add_header Accept-Ranges bytes;
location / {
}
}
```
### 数据库迁移
在当前代码根目录下,运行控制台命令php yii migrate迁移数据库, 选项yes安装全部迁移。
```
$ php yii migrate
Yii Migration Tool (based on Yii v2.0.41.1)
Creating migration history table "len168_migration"...Done.
Total 6 new migrations to be applied:
m210416_054206_config
m210416_054233_carousel
m210416_054252_attachment
m210416_054308_sms
m210416_054316_user
m210417_053502_menu
Apply the above migrations? (yes|no) [no]:
```
### 安装RBAC数据库迁移
```
php yii migrate --migrationPath=@yii/rbac/migrations
```
### 初始化项目 请按以下顺序运行控制台命令
初始化配置数据
```
php yii init/config
```
初始化权限角色数据
```
php yii rbac/init
```
初始化菜单数据, 并绑定菜单给超级管理员
```
php yii menu/init
php yii menu/set-to-admin
```
创建超级管理员
```
php yii init/create-admin
```
使用管理员账号登录后台。