笔者在 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 社区版并安装。
下载页面.png
注意点就是安装过程中会提示是否允许使用 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 根据教程先配置加速器。
setting.png
配置完成后在
laradock 目录下运行
docker-compose up -d nginx
这里运行时间很长,可能会发生错误。不知道是不是出错了就一直等光标出现,这时候是运行结束了。然后执行
docker-compose ps
看看
运行状况.png
如果是和上面的一样,那么就是可以了。如果发生了错误,大概是需要 翻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 环境下的项目。









网友评论