使用 Laradock 搭建基于 Docker 的 PHP 开发环境
一、安装
官网地址:http://laradock.io/documentation/
1、首先将 Laradock 项目代码克隆到本地:
git clone https://github.com/Laradock/laradock.git
2、进入 laradock 目录将 env-example 重命名为 .env:
cp env-example .env
3、运行容器:
docker-compose up -d nginx mysql redis beanstalkd
如果指定端口已经被占用,运行上述命令会报错,关闭相应的服务再重新运行上述命令即可。或者可以更改端口,在.env文件里。
4、打开项目的 .env 文件并添加如下配置:
DB_HOST=mysql
REDIS_HOST=redis
QUEUE_HOST=beanstalkd
5、要测试配置访问域名指向 Docker 环境目录,我们先在 laradock 父级目录下创建一个与 laradock 同级的 wwwroot 目录,然后在 wwwroot 目录下运行 laravel new blog 命令创建一个新的 Laravel 应用,相应的层级目录关系如下所示:

然后我们需要到 laradock 下编辑 .env 中的 APPLICATION 配置项:
APPLICATION=../wwwroot/
注:最新版本的 laradock 对应的配置项是APP_CODE_PATH_HOST。
这样就相当于为 wwwroot 与 Docker 的 /var/www 目录建立了软链接,然后我们修改 laradock/nginx/sites/default.conf 中的映射关系:

接下来,需要重启 Docker 的 Nginx:
docker-compose up -d nginx
这样,我们就可以在浏览器中通过 http://localhost 访问这个应用了,当然,如果需要的话,也可以将 localhost 换成任意你想要的域名,不过还需要配置 /etc/hosts 和 laradock/nginx/sites/default.conf 里面的域名信息:

以上就是 Laradock 的简单上手指南。这里我们设置的场景是新建一个应用,如果是多个应用的话要怎么办呢?也很简单,就是在上述 wwwroot 目录下创建多个应用目录,然后在 laradock/nginx/sites 下对应创建多个配置文件,最后不要忘记在系统 /etc/hosts 中配置相关域名绑定 IP 即可。


二、错误处理
问题1:
错误:g++: internal compiler error: Killed (program cc1plus) Please submit a full bug report
原因:内存不足
方案: 使用交换分区解决
sudo dd if=/dev/zero of=/swapfile bs=64M count=16
#count的大小就是增加的swap空间的大小,64M是块大小,所以空间大小是bs*count=1024MB
sudo mkswap /swapfile
#把刚才空间格式化成swap格式
sudo swapon /swapfile
#使用刚才创建的swap空间
之后继续执行你的相关操作就可以了
*如果创建了临时空间之后仍提示“g++: internal compiler error: Killed (program cc1plus)”,可能是因为分配的空间不够大,可以继续分配更大的空间。
sudo swapoff /swapfile
sudo rm /swapfile
网友评论