PHP版本:7.2
composer版本:1.6.3
mysql版本:5.7
nginx版本:1.15.0
PHP运行环境采用laradock工具分别加载nginx、PHP等docker容器镜像。
docker版本
采用docker-ce社区版本,具体版本号如下:
Docker version 18.03.1-ce, build 9ee9f40l
安装docker
1.从docker store下载镜像或者软件需要先登录,所以先注册docker账号注册地址
(docker账号的注册流程会有google的人机验证,国内网络对google相关产品的不友好导致这里注册是需要翻墙的。)
2.从docker store下载Docker CE for Windows下载页面
Docker CE for Windows只支持 64位 的 windows 10专业版或企业版
其他版本的windows系统请下载Docker Toolbox
Docker Toolbox 官方文档
Docker Toolbox 下载地址
3.运行刚下载的安装包进行安装
docker for windows 自带 docker-compose ,无需单独安装
更多安装细节可参考官方文档。
注意:
Docker CE for Windows 需要打开系统的Hyper-V功能(在安装完成后docker会弹窗询问是否开启),同时需要在BIOS中开启CPU的虚拟化功能。如果启动docker过程中遇到问题可先查看以上两项是否已开启。
修改docker镜像源
使用docker的时候,经常需要从官方获取镜像。由于网络及GFW的原因,拉取镜像的过程可能会非常耗时,所以我们需要修改docker镜像源为国内的源。
我们采用DaoCloud提供的镜像源:
修改方式请参考:DaoCloud文档
安装laradock
docker安装完成后,接下来我们采用laradock搭建基于docker的PHP运行环境。laradock官方文档:http://laradock.io
1、在D:\home目录下,将 laradock 项目代码克隆到本地
2、进入到D:\home\laradock目录,将env-example重命名为.env:
cd laradock cp env-example .env
3、打开.env配置文件,找到如下配置项,并将其修改为如下配置值:
CHANGE_SOURCE=true
PHP_VERSION=7.2
WORKSPACE_INSTALL_XDEBUG=true
PHP_FPM_INSTALL_XDEBUG=true
MYSQL_VERSION=5.7
WORKSPACE_INSTALL_NODE=false
WORKSPACE_INSTALL_YARN=false
WORKSPACE_INSTALL_NPM_GULP=false
WORKSPACE_INSTALL_NPM_BOWER=false
WORKSPACE_INSTALL_NPM_VUE_CLI=false
4、打开D:\home\laradock\nginx\Dockerfile文件,将:
ARG CHANGE_SOURCE=false
修改为:
ARG CHANGE_SOURCE=true
5、创建代码目录。
在与D:\home\laradock同级目录下,创建一个www目录,目录结构如下:
home ├── laradock └── www
www即为代码根目录。
6、修改宿主主机项目目录
打开D:\home\laradock\.env配置文件,修改如下配置为:
APP_CODE_PATH_HOST=../www/
这里是设置项目目录的文件映射,将本地的D:\home\www目录映射到容器内的项目目录/var/www
7、关闭opcache。
打开D:\home\laradock\php-fpm\opcache.ini ,修改如下配置为:
opcache.enable="0"
8、通过如下命令即可运行容器:
docker-compose up -d nginx
说明:
-d 表示后台运行
nginx表示运行nginx容器。PHP容器会自动加载,不需要指明
运行后可查看D:\laradock\logs\nginx\error.log文件,里面记录了错误日志
项目运行
1、在D:\home\www目录下,创建名为demo的项目目录:
home ├── laradock └── www └── demo
2、然后在D:\home\www\demo*目录下,新建 demo.php* 文件:
3、项目代码准备好后,接下来我们需要添加nginx配置。打开D:\home\laradock\nginx\sites*目录,新建名为 demo.conf* 的nginx配置文件:
server {
listen80;
server_name demo.marser.cn;
root /var/www/demo/;
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;
#fixes timeouts
fastcgi_read_timeout 600;
include fastcgi_params;
}
access_log /var/log/nginx/demo/access.log;
error_log /var/log/nginx/demo/error.log;
}
说明:
server_name 配置域名
root 配置项目代码目录
access_log 配置访问日志
error_log 配置错误日志
以上配置仅供参考,根据业务情况及时调整。但access_log和error_log必须配置,方便排查错误。
需要注意的是:root配置项中的/var/www/demo/目录会自动映射到宿主主机中的 **D:\home\www\demo*目录。
4、在D:\home\laradock\logs\nginx*目录下创建名为 demo* 的目录来存储demo项目的nginx访问日志和错误日志。
需要注意的是:/var/log/nginx/demo/会自动映射到宿主主机的D:\home\laradock\logs\nginx\demo目录。
5、在D:\home\laradock目录下执行如下命令重启nginx容器:
docker-compose restart nginx
6、最后将配置的域名demo.marser.cn添加到hosts配置中:
127.0.0.1 demo.marser.cn
保存后,在浏览器上访问http://demo.marser.cn/demo.php即可对项目进行正常访问。
数据存储
mysql、redis等数据存储工具,团队中各成员共用一套开发环境。相关信息稍后添加...
hosts切换工具
windows上采用switchhost小工具
mac上采用Gas Mask小工具
参考文档
docker-compose命令
dockfile换源后出现的一些问题
apt-get update出现NO_PUBKEY
运行如下命令,添加公钥解决:
RUN apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 7EA0A9C3F273FCD8(此处替换成报错提醒的公钥)