美文网首页从零到一
用 Laradock搭建本地 PHP 容器开发环境&宝塔Dock

用 Laradock搭建本地 PHP 容器开发环境&宝塔Dock

作者: 思考蛙 | 来源:发表于2020-03-22 16:33 被阅读0次
    image.png

    很多时候工作中我感觉到深深的痛苦,因为我不能愉快的开发,50%甚至80%的时间都浪费在环境搭建上,依赖问题、环境变量问题、端口冲突、编译库、扶墙走问题等等。

    可以说Docker很大程度拯救了我,这个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,不在受本地环境限制,就能得到良好的工作环境,并且便携无迁移痛苦,在我实践的这几年中深深受益。

    今天是要总结的是 PHP开发、部署环境。我因为主业不是PHP开发,虽然有一定经验,但也比较少去做一些基于 php 的大型项目,但它来了,所以我就祭出 docker 来搭建一套方便的开发部署环境,平时我的本地开发环境需求比较复杂,既会做 java、nodejs、python,现在又加上 php,还有一些非语言类的环境,如果都安装在本地先不说会不会冲突,维护起来也真够一梦的,所以当前的本地开发除非必要全部都是 docker 容器化。

    不说废话,开始工作。

    搭建PHP Docker 开发环境

    这次的 PHP docker 开发环境有大神已经做好了,我们只要下载回来安装即可,在 github 中搜索 laradock。

    一、配置

    cd ~
    mkdir PHP_Workspace
    cd PHP_Workspace
    git clone https://github.com/laradock/laradock
    cp env-example env
    

    .env 文件大部分情况下不需要改动,但很有可能我们会遇到 docker 镜像拉取慢、npm 包下载慢等网络问题,所以我们进行如下配置。

    1、Docker 源配置

    image
    {
      "registry-mirrors": [
        "https://dockerhub.azk8s.cn",
        "https://hub-mirror.c.163.com"
      ]
    }
    

    配置为国内源的源。

    2、Wokspace 配置

      # If you need to change the sources (i.e. to China), set CHANGE_SOURCE to true
      CHANGE_SOURCE=true
      # Set CHANGE_SOURCE and UBUNTU_SOURCE option if you want to change the Ubuntu system sources.list file.
      UBUNTU_SOURCE=aliyun
    

    3、NVM配置

     WORKSPACE_NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
    

    其它各种开发配置都可以在 .env 文件中找到,如 php debug相关

    PHP_FPM_INSTALL_XDEBUG

    WORKSPACE_INSTALL_XDEBUG

    二、启动容器

    docker-compose up -d nginx mysql phpmyadmin redis workspace 
    

    这步操作会执行 docker 的自动下载 image 以及 buid 相关操作,执行后会得到以下容器

    • nginx
    • mysql
    • phpmyadmin
    • redis
    • php-fpm
    • workspace

    三、开发配置

    这个时我们就可以进行项目开发相关的配置

    将我们的项目放在 PHP_Workspace 工程下面,与 laradock 同级,目录如下

    ➜  PHP_Workspace
    .
    ├── laradock
    └── mp-shop
    

    配置 nginx

    cd ./laradock/nginx/sites
    
    .
    ├── app.conf.example
    ├── confluence.conf.example
    ├── default.conf
    ├── laravel.conf.example
    ├── laravel_varnish.conf.example
    ├── mp-shop.conf
    └── symfony.conf.example
    

    可以看到文件夹中有一些配置模板,根据需要可以 copy 过来使用或者自建,我这里新建了 mp-shop.conf,配置就是 copy laravel.conf 但是略有调整

    image

    Nginx 就配置好了,然将我们的 server_name 做一下本地的 host 映射

    127.0.0.1 mp-shop.test
    

    检验

    docker-compose exec workspace bash
    
    drwxr-xr-x 87 root root 2784 Mar 22 01:21 laradock
    drwxrwxr-x 14 root root  448 Mar 21 07:36 mp-shop
    

    可以看到进入 workspace 容器后里面已经映射好当前 PHP_Workspace 中的项目以及 laradock 环境。

    访问 mp-shop.test 网页如期而遇的展现出来。

    一些项目的补充说明,当前开发环境启动后,我们的程序针对数据库、redis 或其它服务的主机名,可以在.env 中找到

    DB_HOST=mysql
    REDIS_HOST=redis
    
    // 数据库配置
    $config = [
        'host' => 'mysql',
        'database' => 'default',
        'username' => 'default',
        'password' => 'secret',
        'port' => '3306',
        'charset' => 'utf8',
    ];
    

    **以上就是基于 **laradock 的本地 docker 开发环境的配置,中间我遇到的主要问题就是网络环境和一些配置不清的问题,所以这方面遇到问题的同学可以与我直接交流,接下来就是关于上线所应用的宝塔。

    Docker 宝塔一键部署

    宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能。在运维界知名度相当高,也非常的好用、实用,但直接安装还是稍微繁琐,今天我们就用 docker 来一键部署。

    这里我用一个完成度很好的 docker 脚本项目,简单介绍下:

    • 镜像默认使用 Centos7 基础镜像,使用 Dockerfile 构建* 该脚本每次 build 的用户名和密码以及登录URL都不同,请使用 docker-compose logs app 查看默认信息* 安装时间视网络环境而定,建议更换 Docker 的国内源* 启动脚本是 ./DockerScript/init.sh* 配置文件 .env 中都有详细的注释* 使用 volume 作持久化存储,数据卷名为 baota_app

    1、克隆项目

    git clone https://github.com/ifui/baota
    

    2、配置环境

    cp .env-example .env
    

    3、启动镜象

    docker-compose up -d app
    

    完成!

    总结

    此篇文章主要介绍了如何利用 Laradock 搭建一套完善的本地 php 开发环境,以及如何利用 docker 去方便的部署宝塔,此次项目中主要遇到了网络问题、配置说明不清晰的问题,耽误了不少时间,但效果是非常好的。下面附上文中应用的相关项目。

    相关文章

      网友评论

        本文标题:用 Laradock搭建本地 PHP 容器开发环境&宝塔Dock

        本文链接:https://www.haomeiwen.com/subject/gyjvyhtx.html