- _nosay
使用yii2.0快速搭建一个后台环境
2017-12-25 13:34:00
Yii2.0从0开始搭建后台环境
- 首先更换composer中国镜像,执行以下命令
composer config -g repo.packagist composer https://packagist.phpcomposer.com
- 安装Yii2.0 advanced高级版,执行以下命令
composer create-project yiisoft/yii2-app-advanced advanced 2.0.13
然后在advanced项目文件中,执行
php init
初始化项目,期间它会让你选择运行环境,是开发环境还是生产环境,选择0,开发环境,如图
在项目根目录->common->config文件夹中,找到main-local.php文件,在里面配置数据库连接信息,然后在项目根目录下执行
./yii migrate
完成数据库迁移操作
- 配置nginx虚拟主机,增加前台页面和后台页面的映射,相应配置文件参考
server {
listen 80;
listen [::]:80;
server_name www.yii.mu;
root /var/www/yii/advanced/frontend/web;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass php-upstream;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location /.well-known/acme-challenge/ {
root /var/www/letsencrypt/;
log_not_found off;
}
}
server {
listen 80;
listen [::]:80;
server_name admin.yii.mu;
root /var/www/yii/advanced/backend/web;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass php-upstream;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location /.well-known/acme-challenge/ {
root /var/www/letsencrypt/;
log_not_found off;
}
}
- 安装yii2-adminlte-asset模板文件,执行命令
composer require dmstr/yii2-adminlte-asset "^2.1"
- 根据adminlte的文档,我们需要copy两个文件夹至
cdvendor/dmstr/yii2-adminlte-asset/example-views/yiisoft/yii2-app
在这个文件夹下,有两个文件夹,分别是layouts和sitey,我们把它copy到根目录下的 backennd/views,覆盖即可
然后打开admin.yii.mu后台链接,查看是否已经安装成功
- 注册帐号,尝试登陆
- 创建两张表
CREATE TABLE IF NOT EXISTS `adminuser` (
`id` int(11) NOT NULL COMMENT 'ID' PRIMARY KEY AUTO_INCREMENT,
`username` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '用户名',
`realname` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '姓名',
`email` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT '电子邮箱',
`status` int(11) NOT NULL DEFAULT '10' COMMENT '状态',
`password_hash` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT '密码',
`auth_key` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT '授权key',
`password_reset_token` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '密码重置token',
`access_token` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '访问token',
`expire_at` int(11) DEFAULT NULL COMMENT '过期时间',
`logged_at` int(11) DEFAULT NULL COMMENT '登入时间',
`created_at` int(11) DEFAULT NULL COMMENT '创建时间',
`updated_at` int(11) DEFAULT NULL COMMENT '最后修改时间'
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE IF NOT EXISTS `article` (
`id` int(11) NOT NULL COMMENT 'ID' PRIMARY KEY AUTO_INCREMENT,
`title` varchar(512) COLLATE utf8_unicode_ci NOT NULL COMMENT '标题',
`content` text COLLATE utf8_unicode_ci NOT NULL COMMENT '内容',
`category_id` int(11) DEFAULT NULL COMMENT '分类',
`status` int(11) DEFAULT NULL COMMENT '状态',
`created_by` int(11) DEFAULT NULL COMMENT '创建人',
`created_at` int(11) DEFAULT NULL COMMENT '创建时间',
`updated_at` int(11) DEFAULT NULL COMMENT '最后修改时间'
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
- 开启gii
在common/config/main.php文件中,加入以下代码
'modules' => [
'gii' => [
'class' => 'yii\gii\Module',
'allowedIPs' => ['*'],
],
],
- 建立article模型文件,如图
注意,在namespace中,要写commonmodels,因为这是一个公用的model,勾选 Generate Labels from DB Comments
- 建立管理员用户表model,如图
- 管理员用户表的CURD生成,如图
- 文件表的CURD生成,如图