最简单的Yii环境搭建方法

您所在的位置:网站首页 yii2源码分析 最简单的Yii环境搭建方法

最简单的Yii环境搭建方法

2023-10-13 10:54| 来源: 网络整理| 查看: 265

微信公众号中有本文的视频演示,关注即可观看。 在这里插入图片描述

1、概述

Yii的源码中其实已经提供了一种快速搭建开发环境的方式,包括php/apache/mysql,不过需要事先安装好docker环境。优点如下:

一键安装,快速方便;

不需要分心安装php/apache/mysql这些软件,已有默认的配置可以跑应用;

便于升级,如果想升级php版本,只要改变一下Dockerfile的基础镜像就可以;

2、安装步骤 2.1 下载源码

从Github拉取

git clone -b 2.0.42 https://github.com/yiisoft/yii2-app-advanced.git advanced

github是国外的网站,有些同学因为网络原因,导致无法访问,或者拉取数据缓慢,因此我在gitee上同步了这个项目,建议使用下面的方式拉取代码,非常快。

从Gitee拉取

git clone -b 2.0.42 https://gitee.com/lvzmen_github/yii2-app-advanced.git advanced 2.2 源码分析

源代码中提供了三个容器编排文件,如下所示:

chenzhiwei:advanced$ tree -L 2 . ├── docker-compose.yml ├── backend │ └── Dockerfile └── frontend └── Dockerfile

我们看一下docker-compose.yml:

version: '3.2' services: frontend: build: frontend ports: - 20080:80 volumes: # Re-use local composer cache via host-volume - ~/.composer-docker/cache:/root/.composer/cache:delegated # Mount source-code for development - ./:/app backend: build: backend ports: - 21080:80 volumes: # Re-use local composer cache via host-volume - ~/.composer-docker/cache:/root/.composer/cache:delegated # Mount source-code for development - ./:/app mysql: image: mysql:5.7 environment: - MYSQL_ROOT_PASSWORD=verysecret - MYSQL_DATABASE=yii2advanced - MYSQL_USER=yii2advanced - MYSQL_PASSWORD=secret

从上述源码可以分析可知:

frontend.build => frontend

这表示使用frontend目录下的Dockerfile文件来生成需要使用的镜像,backend同理。这么做是为了避免管理中间镜像,让整个编排都处于源码可编辑的状态;

frontend.ports => 21080:80

这个表示容器内的服务端口号是21080,并和宿主机的80端口绑定,目的是当宿主机的80端口有http请求时,会自动转发到容器内的21080端口;

frontend.volumes => ./:/app

表示把当前的目录映射到宿主机的/app目录下,实现代码共享,便于开发人员开发。

mysql

mysql容器会读取这四个环境变量,并将配置应用于数据库。

注意:由于mysql并没有volumes将数据库映射到宿主机,因此删除容器后,数据库也会被删除!

接下来我们看一下frontend/Dockerfile:

FROM yiisoftware/yii2-php:7.4-apache # Change document root for Apache RUN sed -i -e 's|/app/web|/app/frontend/web|g' /etc/apache2/sites-available/000-default.conf

从上述文件我们可知:

使用的基础镜像是:yiisoftware/yii2-php:7.4-apache使用的apache配置文件是:/etc/apache2/sites-available/000-default.conf 2.3 安装docker-compose工具 sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

如果发现太慢下不了,则可以到我的网盘中下载:

链接: https://pan.baidu.com/s/1gMSInCDo60Li2TEdwipMHg 提取码: 2ij6

注意:要配置可执行权限。

2.4 一键部署

进入到advanced目录,执行如下命令:

chenzhiwei:advanced$ sudo docker-compose up -d Creating network "advanced_default" with the default driver Creating advanced_frontend_1 ... done Creating advanced_mysql_1 ... done Creating advanced_backend_1 ... done

-d 表示后台安装,不会把安装时的日志打印出来,因此报错也不知道,如果第一次安装的话,可以去掉。

如果docker ps后可以看到下面的内容,表示容器正常运行,环境部署成功:

chenzhiwei:advanced$ docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Image}}" CONTAINER ID NAMES IMAGE ad3cc7dcf763 advanced_backend_1 advanced_backend aecb968efedd advanced_mysql_1 mysql:5.7 abdd6c885b2b advanced_frontend_1 advanced_frontend 2.5 初始化项目

容器部署已经完成,但是对于新的项目,尚未初始化,compose依赖也没有拉取,因此无法正常工作,下面就来初始化项目。

进入frontend容器:

chenzhiwei:advanced$ docker exec -it advanced_frontend_1 /bin/bash _ _ __ _ (_|_)/ _| | | _ _ _ _| |_ _ __ __ _ _ __ ___ _____ _____ _ __| | __ | | | | | | _| '__/ _` | '_ ` _ \ / _ \ \ /\ / / _ \| '__| |/ / | |_| | | | | | | | (_| | | | | | | __/\ V V / (_) | | |


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3