Laradock 的安装和配置


本章节目录

    为什么使用 Laradock

    Laradock is a full PHP development environment for Docker.
    It supports a variety of common services, all pre-configured to provide a ready PHP development environment.

    引用 Laradock 官方网站 http://laradock.io/ 的“自我介绍”。Laradock 是基于 Docker 的全能 PHP 开发环境,集成了许多常用的服务,并且进行了预先的优化配置。

    我们分开说一下。
    常用的服务:Laradock 集成了基本上所有我们常见的开发环境,涉及Web 服务器、PHP 编辑器、负载均衡器、数据库、数据库管理工具、缓存系统、消息队列等等几十种,具体查看官方的服务支持清单https://laradock.io/introduction/#supported-services
    预配置:这个是更重要的,如果没有足够的使用和踩坑经验,很难配置出较优、较安全的服务,站在巨人的肩上是更好的选择。如下图,都是 Laradock 项目的贡献者,致敬 : )

    另外,Laradock 的服务是完全相互隔离的,我们只需要按需启用即可

    通过 Docker Compose 强大编排管理功能,只需要一个 .env 配置文件,我们可以轻松的完成跨平台、跨设备的开发环境配置,保持团队协作、开发环境、测试环境和生产环境的一致,大大提升开发效率,高效不加班。人生苦短,PHP 优选

    安装前准备

    在使用前,请确定已完成 Git 和 Docker 的安装。可以在命令行执行git --versiondocker --version 来确定。

    如果没有安装请查看相关章节:

    Laradock 安装

    子模块安装

    已经有项目,并且项目已经启用 Git 管理版本控制,在已有项目的根目录下,使用 Git 子模块工具 git submodule 安装和管理。

    git submodule add https://github.com/Laradock/laradock.git
    

    最终的文件夹结构如下:

    * project-a
    *   laradock-a
    * project-b
    *   laradock-b
    

    git submodule 相关文档:https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E5%AD%90%E6%A8%A1%E5%9D%97

    如果对 Git 的使用不是很熟悉,对 Git Submodule 理解不是很透彻,不建议采用此种方式安装使用,免得出现不必要的麻烦,比如:不小心把子模块做为已有项目的子文件夹,添加到了项目 Git 版本控制中去。

    同级目录安装【推荐】

    推荐使用此种方式安装使用

    假如你的项目存放在 /var/www/ 目录下,打开命令行工具进入此目录。

    Windows 用户,可以打开项目存放目录(或计划存放目录),在空白处右击鼠标,选择git bash打开 Git 命令行工具,当然使用 Windows PowerShell 也是可以的。

    执行 git clone 命令下载 Laradock 项目

    git clone https://github.com/laradock/laradock.git
    

    下载完后的目录示例结构是:

     var
         - www
                - laradock
                - 项目一
                - 项目二
                - 项目三
    

    确保 laradock 目录和已有(计划)项目处于同一目录下。

    Laradock 配置

    和 Laravel 一样,Laradock 使用 .env 来配置服务参数。进入 laradock 目录,拷贝 .env.example 文件,重命名为 .env。使用 PHPStorm 打开 .env 文件,里边是已预先设置好的 docker-compose.yml 变量。如下图所示:
    Laradock .env 文件
    麻辣讲 PHP 系列课程要使用 PHP 7.4 + MySQL 5.7 + Nginx 环境来开发,使用 PHPMyAdmin 进行 MySQL 数据库的可视化管理,需要对 .env 文件做一些设置。在 .env 文件中找到对应的变量名,按照以下示例进行设置即可。

    CHANGE_SOURCE=true   # 设置为true,我们需要更换镜像源安装为国内的镜像,这样镜像安装才能又快又稳
    WORKSPACE_COMPOSER_REPO_PACKAGIST=https://mirrors.aliyun.com/composer/  # 指定替换后的 composer 镜像地址,这里使用阿里云的
    MYSQL_VERSION=5.7   # 安装指定版本的 MySQL,如果不指定,默认是安装最新的,目前是 8.0版
    
    PHP_VERSION=7.4 设置 PHP 版本
    
    APP_CODE_PATH_HOST=../  # 项目目录位置,宿主机挂载目录,相对位置,我们使用的是同级目录安装
    APP_CODE_PATH_CONTAINER=/var/www # 容器目录,软链接,注意配置 nginx 站点时使用此目录
    

    APP_CODE_PATH_CONTAINER 划重点这个路径参数,进入工作区时要用到。

    Ok,设置这么多就可以了。其实如果没有网络环境问题,没有 PHP 和 MySQL 版本要求问题,Laradock 是 100% 开箱即用的。

    使用

    构建并启动容器

    在 laradock 根目录下打开命令行。可以使用 PHPStorm 的命令行工具来进行管理,使用 PHPStorm 打开 laradock 文件夹,默认就是根目录,直接打开 PHPStorm 的终端即可。关于PHPStorm的使用,可以参考此专栏:PHPStorm 使用技巧 https://www.malajiang.com/special/4
    在 laradock 根目录下执行以下命令:

    docker-compose up -d nginx mysql phpmyadmin
    

    回车,系统会自动开始构建 Nginx、MySQL、PHPMyAdmin、workspace 容器,自动下载依赖、编译、配置。第一次执行时间会比较久,根据不同的网络情况,可能会需要几分钟到十几分钟不等。

    因为 nginx 容器对 php-fpm 存在依赖关系,所以 php-fpm 一般不需要加入构建命令,如果你有强迫症,加入到命令里也可以。

    进入工作区

    使用以下命令可以进入到 workspace 工作区(在 laradock 根目录下执行)

    docker-compose exec workspace bash
    


    注意:进入工作区的默认路径是前边我们配置的软件链接地址。执行 ls 命令,会列出已有项目目录。

    在实际开发中,我们会经常进入工作区,执行 php artisan 之类的命令来完成 migration 数据迁移、控制器新增、路由缓存等操作。

    可能会遇到的问题

    构建容器时网络连接超时或者 DNS 查找失败

    请查阅【Docker 安装、常用命令以及 docker compose 的安装】章节https://www.malajiang.com/special/show/24 ,配置国内镜像,修改 DNS 为阿里云 DNS。

    php artisan 命令执行失败

    php artisan migrate php artisan route:list 等 Artisan 命令在宿主机目录执行是会失败的,需要进入 workspace 工作区,在对应的项目目录下执行,比如/var/www/malajiang_feedback


    请先 登录
    审核后显示
    讨论记录(0 条)
    暂时还没有讨论

    © 2024 麻辣讲 豫ICP备19017310号-2