Laradock Windows 初体验
笔者在 win10 下 初次使用 Laradock
感谢以下网站提供的帮助
Laravel 学院
初探laradock
一步步教你如何使用 laradock 搭建项目环境
DaoCloud
翻译了一下Laradock的中文文档
Laradock 官方文档
首先可以先去以上网站了解 docker
及 Laradock
。本文会介绍根据以上链接学习遇到的一些问题。笔者只用到 Laradock
的 php
和 nginx
。mysql
使用的是 phpStudy
的。
1. 安装 Docker
首先去官网 https://www.docker.com/community-edition#/download 下载 Docker
社区版并安装。
注意点就是安装过程中会提示是否允许使用 Hyper-V
,要允许。还提示需要重启。
2. 下载 Laradock
笔者推荐使用 SourceTree
这个工具,它是 git
辅助工具。首次使用会让你登录一个账号,网上有跳过登录的教程,自己百度一下。Laradock
最好是用 git
克隆下来,它经常更新代码,而且你自己改了其中代码也能有记录可撤回。下载的文件就放在 phpStudy
对应的 www
文件夹里就行。
3. 添加项目配置
假设你的 laravel
项目是在这里
进到
laradock
中,复制 env-example
,重命名成 .env
文件。再进到 nginx/sites
中修改 default.conf
文件。改第六行为 server_name xxxx(你的本地测试域名)
, 改第七行为 root /var/www/xxxx/public;
。
4. 创建容器
创建之前先要去 DaoCloud
注册个账号,http://www.daocloud.io/mirror#accelerator-doc 根据教程先配置加速器。
配置完成后在
laradock
目录下运行
docker-compose up -d nginx
这里运行时间很长,可能会发生错误。不知道是不是出错了就一直等光标出现,这时候是运行结束了。然后执行
docker-compose ps
看看
如果是和上面的一样,那么就是可以了。如果发生了错误,大概是需要 翻qiang 或者是端口被占用了。
phpStudy
的服务先不要开,容易端口占用。失败了就继续执行 docker-compose up -d nginx
直到成功。
5. 连接 mysql
这时候访问测试域名网页就能打开了。但是会报错,mysql
连接不上。
打开 phpStudy > 服务管理器 > MySQL > 启动
。再打开 phpStudy > MySQL工具 > MySQL命令行
输入 mysql
密码执行
grant all privileges on *.* to '%' identified by '你项目的数据库连接密码' with grant option;
就完成了。用 laradock
的时候 phpstudy
就开 mysql
就行。
接下来讲一下常遇到的问题
- 多个项目配置
在laradock/nginx/sites
目录下复制laravel.conf.example
文件,重命名随便.conf
。修改其中的项目对应的内容,然后运行
docker-compose restart nginx
就可以了。注意点是,不管运行什么 docker-compose
的命令都要在 laradock
的目录下。还有不要复制 default.conf
,笔者第一次就是复制 default.conf
文件开第二个项目就是不行,原因没深究。
- 修改
php
版本和添加php
扩展
修改php
版本笔者不会,自行去上面的laradock
文档学习。
添加扩展,举个例子,假设添加ZIP_ARCHIVE
扩展。先去laradock/.env
中找对应的扩展包修改PHP_FPM_INSTALL_ZIP_ARCHIVE=false
改成true
。然后去laradock/php-fpm/Dockerfile-71
中找对应的扩展包修改ARG INSTALL_ZIP_ARCHIVE=false
改成true
。然后运行
docker-compose build php-fpm
如果命令安装失败则 翻qiang 后再重新执行,如果命令执行成功,再运行
docker-compose up php-fpm
就可以了。还是不行则 docker-compose restart applications
。
- 电脑重启后开启
laradock
在laradock
的目录下运行
docker-compose start applications
然后看看 docker-compose ps
,看下面三个哪个没有 up
,就哪个 docker-compose start xxx
开启一下。分别 start
是 nginx
,php-fpm
,workspace
。
-
nginx
或者php
报错查看日志
笔者不会,如果玩坏了laradock
,就重建一下容器。
使用感受
虽然 laradock
降低了用 dock
作为开发环境的门槛,但是还是不如 phpstudy
,而且还占内存,学习成本依然很高。再其他举个例子,笔者在开发中用到 basename()
这个函数,它在 Linux
环境下是不能处理中文的,但是在前面先执行 setlocale(LC_ALL, 'zh_CN.GBK');
这个就能解决问题,但实际情况 laradock
的 Liunx
环境下不成功,服务器上的 centos
是可以的。暴露了一个情况,就是需要一个懂 docker
的把 laradock
继续做修改才能达到和服务器一样的环境。而像笔者这种小白体验到的优点基本上寥寥无几(只针对开发环境)。目前优点就是能在 windows
上运行 Linux
环境下的项目。