最近终于把docker学完了!试着自己compose编排一个php环境,然后一堆问题,果断放弃。最后,选了laradock。

直接线上部署多项目。注:使用的是阿里云学生机


下载

laradock github 如果下载缓慢,可以试着放到迅雷中下载

在自己服务器上找个地方放着吧!

image-20200723214954518

安装

进入laradock

cd laradock

复制.env配置文件

cp env-example .env

修改.env配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
#因为我使用宝塔部署了一套lnmp,所以,端口都被占用,只好换端口
NGINX_HOST_HTTP_PORT=802 Nginx
NGINX_HOST_HTTPS_PORT=445 HTTPS
MYSQL_PORT=3308 MySQL
REDIS_PORT=6381 redis

#下面还有laravels的部署,所以需要开启swoole
WORKSPACE_INSTALL_SWOOLE=true
PHP_FPM_INSTALL_SWOOLE=true

#更换版本
MYSQL_VERSION=5.7
PHP_VERSION=7.3

启动 linux注意更改文件夹权限

docker-compose up -d nginx mysql redis beanstalkd

之后,就可以在上图public目录下新建一个index.php,访问http://你的ip:802打印hello word试试。

配置多项目

进入laradock/nginx/sites目录

里面有很多ngixn配置模板,可以自行cp使用

  • laravel项目:laravel.conf.example

  • thinkphp项目:default.conf

image-20200723223909023

重启docker中的nginx

docker-compose restart nginx

按正常流程,这时候就需要配置/etc/hosts文件了。但是,因为我用的是802端口,所以,这时候需要的是配置主机的nginx

宝塔nginx配置文件路径:/www/server/panel/vhost/nginx

其他可以参考 https://luckilyh.com/2020/06/21/linux-configuration-file-path/ 获取nginx配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#新建 dockerlaravel.luckilyh.com.conf
#编辑
server
{
listen 80;
#绑定域名
server_name dockerlaravel.luckilyh.com;
#转发地址(项目容器宿主ip及端口)
location / {
proxy_pass http://dockerlaravel.luckilyh.com:802;
}

#重定向错误页面到 /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /www/server/nginx/html;
}
}

重启主机nginx

service nginx restart

是不是看到了熟悉的laravel界面

laravel项目下配置变化

.env的配置信息

  • mysql:
1
2
3
4
5
6
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=root
  • redis:
1
2
3
REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PASSWORD=6381
  • beanstalkd:
1
2
QUEUE_HOST=beanstalkd 
QUEUE_CONNECTION=beanstalkd

laravels

进入laravel项目

附录:

docker文档

laradock中文文档