您的位置:首页 > wordpress

Mac/Windows 系统【tǒng】中使用 Laradock 搭【dā】建基于 Docker 的 Laravel 开发环境【jìng】
wordpress 2024-9-21编辑:深圳网站建设阅读( WordPress 搭建 环境

简介

Laradock 是为 Docker 提供的完整 PHP 本地【dì】开发环境【jìng】,和 Homestead 一样提供了一系列【liè】打包好(包括配置)的【de】 Docker Image。Laradock 早【zǎo】期专【zhuān】注为【wéi】 Laravel 打造 Docker 开发环境,因而最【zuì】早在 Laravel 社【shè】区【qū】中出名,后来随着【zhe】影响力的扩【kuò】大,逐渐被 PHP 社区【qū】接纳【nà】和【hé】采【cǎi】用,目前【qián】支持的 PHP 项目除了【le】 Laravel 之外,还有 Symfony、CodeIgniter、WordPress、Drupal 等等。

Docker 扫盲

在学习和【hé】使用 Laradock 之前,我们有【yǒu】必【bì】要先学习和了【le】解 Docker,而在【zài】使用 Docker 之前,又有必【bì】要搞清楚下面【miàn】两个问题:

Docker 是什么

Docker 基于 Go 语【yǔ】言开发,是一【yī】个基于 LXC 技术之上构建的 Container 容器引擎。容器是【shì】一种以固定【dìng】格【gé】式打包软件【jiàn】的【de】方式,以便让【ràng】软件可以【yǐ】在【zài】共【gòng】享的操作系统中运行,不【bú】同【tóng】于【yú】虚拟机,容器并【bìng】不需要捆【kǔn】绑这【zhè】个操【cāo】作系统,只需要软件正常工作所必须的库和设置即可,这使得【dé】容器更加高效、轻量级【jí】、可以自成系统【tǒng】并且不【bú】管部署【shǔ】在什么地方【fāng】都可以保证运【yùn】行【háng】结果一致。

Docker提供了一种在安【ān】全、可重复的环境中自动部署软件的方式,它的出现【xiàn】拉开了基于【yú】云【yún】计【jì】算【suàn】平【píng】台发布产品方【fāng】式的变【biàn】革序幕。开发者使用 Docker 可以解决当【dāng】需要和同事共享代码时"只【zhī】能在我的机器工作【zuò】"的【de】问题;操作者【zhě】使用 Docker 可以在关联容器中【zhōng】边运【yùn】行【háng】边管理以便获取更好【hǎo】的【de】计算密度;企业使用 Docker 可以用来【lái】构建敏捷【jié】的【de】软件分发管道以便可以更【gèng】快【kuài】处理新特【tè】性。

为什么要使用 Docker

Docker 的出现就是为了解决以下问题:

  • 环境管理复杂: 从各种 OS 到【dào】各种中间件再到各种【zhǒng】 App,一款【kuǎn】产品【pǐn】能够成功发布,作为开【kāi】发者【zhě】需要关心【xīn】的【de】东西【xī】太多【duō】,且【qiě】难于管理【lǐ】,这【zhè】个问题在软件【jiàn】行业中普遍存在并【bìng】需要直接面对【duì】。Docker 可以简化部署多种应【yīng】用【yòng】实例工作,比如Web应用、后台应用【yòng】、数据库应用【yòng】、大数【shù】据应用比如 Hadoop 集群、消息【xī】队列等等都可以打包【bāo】成一个【gè】 Image 部署。
  • 云计【jì】算时代的到来: AWS 的成功, 引【yǐn】导开发者将应用【yòng】转【zhuǎn】移到云【yún】上, 解决了硬件管理的【de】问题,然而软件【jiàn】配置和管理相关的问题依然存在【zài】。Docker 的【de】出【chū】现正好能帮助【zhù】软件开【kāi】发者开阔思路,尝试新的软件管理方【fāng】法【fǎ】来【lái】解决【jué】这个问题。
  • 虚拟化手【shǒu】段的变化: 云【yún】时代采【cǎi】用【yòng】标配硬件来降低成本,采用虚拟化【huà】手段来满【mǎn】足用户按需分配的资源需【xū】求以及保证【zhèng】可用性和隔离性。然而无论是 KVM 还【hái】是【shì】 Xen,在 Docker 看【kàn】来都在【zài】浪费【fèi】资源,因为用户需【xū】要的【de】是高效运行环境而非 OS, GuestOS 既【jì】浪费资源【yuán】又难于管【guǎn】理【lǐ】, 更加轻【qīng】量级的 LXC 更加灵活和快【kuài】速。
  • LXC的便携性【xìng】: LXC在 Linux 2.6 的 Kernel 里就已经存在了【le】,但是【shì】其【qí】设计之【zhī】初【chū】并非【fēi】为云【yún】计算考虑的,缺少标准化的描述【shù】手段和容器的可便携【xié】性【xìng】,决定其构建出的【de】环境难于分发和【hé】标准化管理【lǐ】。Docker就在这个问题上做出了实质性的【de】创新方法。

Docker 通常用于如下场景:

  • Web 应用的自动化打包和发布;
  • 自动化测试和持续集成、发布;
  • 在服务型环境中部署和调整数据库或其他的后台应用;
  • 从【cóng】头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台【tái】来搭【dā】建自己【jǐ】的 PaaS 环境。

本教程不将【jiāng】那么多高大上的东西了【le】,我【wǒ】们专注【zhù】于通过 Docker 构建【jiàn】一【yī】个可移植的本地开发环【huán】境【jìng】。

Docker 安装使用

首先我们需要在【zài】系统安【ān】装 Docker 的【de】免费社区版,官【guān】方提供 Windows、Mac 及 Linux 等版本下载:下载地址。下载操作系【xì】统对应版本后,按照引【yǐn】导流程安装,最后打开 Docker 应用,即可在【zài】命令【lìng】行【háng】检查【chá】是【shì】否【fǒu】安装成功:

Mac

Windows

注:Windows 系【xì】统下使用 Docker 需启用 Hyper-V 组件(推荐在原生系【xì】统【tǒng】中使用【yòng】,Windows 10 专业版【bǎn】默认已启用,另【lìng】外,Windows 10 家庭版不支持 Docker for Windows 桌【zhuō】面版),如【rú】果是在 VMware 或 Parallels 虚拟机中【zhōng】使【shǐ】用 Windows,需【xū】要在设【shè】置里【lǐ】面启用嵌套的虚【xū】拟化支持(设【shè】置【zhì】->处理器和内【nèi】存->高级【jí】选项->启用【yòng】虚拟化管理程序),如【rú】果虚拟机不支持此【cǐ】配置或【huò】 Hyper-V,可以尝试额【é】外【wài】安装【zhuāng】 Docker ToolBox 来支持使【shǐ】用 Docker(详情参考官方文档【dàng】)。我这里的环境就是 Mac + VMware Fusion + Windows 10(虚拟机)。

配置镜像加速器

在本地操作系统安装好【hǎo】 Docker 后,需要【yào】为 Docker Hub 镜【jìng】像仓库配置【zhì】镜像【xiàng】加速器以加速国内 Docker 镜像下载速度,比如【rú】阿里云【yún】提供的镜像加速器,Mac 系统点【diǎn】击任【rèn】务栏 Docker 图【tú】标选择 Preferences->Docker Engine,Windows 系统通【tōng】过 Settings->Docker Engine 即【jí】可进入镜像加速器配置界面【miàn】(下图是 Windows 示例,Mac 与之【zhī】类【lèi】似,只是【shì】入【rù】口为 Preferences 而已,阿里云 Docker 镜【jìng】像加速【sù】器获取【qǔ】参考这篇教程:https://yq.aliyun.com/articles/29941):

然后点【diǎn】击「Sign In」菜单【dān】通【tōng】过 Docker ID/密【mì】码登录【lù】到 Docker Hub(注意是 Docker ID,非注册邮箱),以免镜像拉【lā】取过程中有认证【zhèng】问题。

快速上手

深入了【le】解 Laradock 之【zhī】前让【ràng】我们先见识下如何在 Laradock 中快速安装 Nginx、PHP、Composer、MySQL、Redis 吧,有了这些【xiē】开发 Laravel 必备的工具【jù】组【zǔ】件也就差不离了。

1、首先将 Laradock 项目代码克隆到本地:











1















2、进入 laradock 目录将 env-example 重命名为 .env











1















然后在 .env 中修改镜像构建过程中 Linux 软件源为国【guó】内镜【jìng】像以免镜像构建【jiàn】过【guò】程中【zhōng】出现【xiàn】网络超【chāo】时问题:











1





2





3





4















3、构建镜像 & 启动容器:











1















nginx 镜像构建在 php-fpm 之上,php-fpm 构建在 workspace 之上,所以启动 nginx 会先启动 workspace 和 php-fpm

如果指定端口已经被占用,运【yùn】行上【shàng】述命令会报错【cuò】,关闭相【xiàng】应【yīng】的服务再重新运【yùn】行上述命令【lìng】即可。

如果在 Windows 系统中上述指令构建镜像过程中报错:











1















可参考【kǎo】这个 issue 解决【jué】:https://github.com/laradock/laradock/issues/2450。

4、打开 Laravel 项目的 .env 文件并添加如下配置:











1





2





3















5、要【yào】测试配【pèi】置【zhì】访【fǎng】问域名指向 Docker 环境目录,我们先在 laradock 父级目录下创建一个与 laradock 同级的 wwwroot 目录,然后在 wwwroot 目录下运行 composer create-project laravel/laravel blog --prefer-dist 命令创【chuàng】建一个新的 Laravel 应【yīng】用,相应【yīng】的层级目录关【guān】系如下所示:

然后我们需要到 laradock 下编辑 .env 中的 APP_CODE_PATH_HOST 配置项:











1















这样就相当于为 wwwroot 与 Docker 的 /var/www 目录建立了软链接,然后我们在 laradock/nginx/sites 目录下新增一个 blog.conf 配置,设置虚拟域名为 blog.test











1





2





3





4





5





6





7





8





9





10





11





12





13





14





15





16





17





18





19





20





21





22





23





24





25





26





27





28





29





30





31





32





33





34















接下来需要在 /etc/hosts (Windows 下对应文件路径是 C:WindowsSystem32driversetchosts)文件中新增如下这行配置:











1















最后,需要重启 Docker 的 Nginx:











1





2















这样,我们就可以在浏览器中通过 http://blog.test 访问这个应用了:

以上就【jiù】是【shì】 Laradock 的简单上手指【zhǐ】南。这里【lǐ】我们设【shè】置的场景【jǐng】是新建一个应用,如【rú】果是多个应【yīng】用的话要怎【zěn】么办呢?也【yě】很简单,就是在上述 wwwroot 目录下创建多个应用目录,然后在 laradock/nginx/sites 下对应创建多个配置文件,最后不要忘记在系统 /etc/hosts 中配置相关域名绑定 IP 即可。

注:更多使【shǐ】用细节【jiē】请【qǐng】参考官方文档【dàng】:http://laradock.io/documentation/

功能特性

最后,我们来捋一下 Laradock 的功能特性:

  • 可【kě】轻松【sōng】在不同版本 PHP 之【zhī】间切换【huàn】: 7.2、7.1、5.6 等
  • 自【zì】由选择数据库【kù】: MySQL、Postgres、MariaDB 等
  • 运【yùn】行自己的软件: Memcached、HHVM、Beanstalkd 等
  • 每个【gè】软件都运行在【zài】隔离的容器【qì】中: PHP-FPM、NGINX、PHP-CLI 等
  • 轻松自定义容器,只需编辑 Dockerfile 文件即可
  • 所有的镜像都扩展自官方的镜像
  • 预配置的 NGINX
  • 可以在每【měi】个项目中使【shǐ】用 Laradock, 也可以让所有【yǒu】项目共【gòng】享一【yī】个 Laradock
  • 使用环境变量在容器中轻松安装/卸载软件
  • 干净、结构良好的 Dockerfile
  • 最新版本的 docker-compose 文件
  • 一切均可见、可编辑
  • 快速构建镜像

除【chú】此之外,目【mù】前为止,Laradock 支持的软【ruǎn】件包括但不【bú】限于【yú】:

  • 数【shù】据库引擎【qíng】: MySQL - MariaDB - Percona - MongoDB - Neo4j - RethinkDB - MSSQL - PostgreSQL - Postgres-PostGIS.
  • 数据库【kù】管理工具【jù】: PhpMyAdmin - Adminer - PgAdmin
  • 缓存工具: Redis - Memcached - Aerospike
  • Web 服务器: NGINX - Apache2 - Caddy
  • PHP 编译器: PHP-FPM - HHVM
  • 消息队列: Beanstalkd - RabbitMQ - PHP Worker
  • 队列【liè】管【guǎn】理器: Beanstalkd Console - RabbitMQ Console
  • 大国【guó】重器: HAProxy - Certbot - Blackfire - Selenium - Jenkins - ElasticSearch - Kibana - Mailhog - Minio - Varnish - Swoole - Laravel Echo 等【děng】
  • Laradock 还引入了 Workspace 镜像【xiàng】作为开发环【huán】境,里面【miàn】包含了丰富且【qiě】实【shí】用的【de】工具集:PHP CLI - Composer - Git - Linuxbrew - Node - V8JS - Gulp - SQLite - xDebug - Envoy - Deployer - Vim - Yarn - SOAP - Drush 等

Docker 还是 Vagrant

最后,我们绕【rào】不开的话题是【shì】作为开发环境【jìng】,选【xuǎn】择【zé】 Docker(Laradock) 还是【shì】 Vagrant(Homestead),Mac 系统上官方还提【tí】供【gòng】了 Valet,尝鲜的话、做Demo或【huò】者快速学习为目【mù】的当【dāng】然 Valet 还【hái】是不二之选,因为它最【zuì】小巧、最轻量【liàng】级,上手最快,天下武功【gōng】,唯快【kuài】不破。

至于 Laradock 还【hái】是 Homestead,就【jiù】是【shì】见仁见智了【le】,Laradock 相对 Homestead 而言更加轻量级,因为正【zhèng】如前【qián】面所言,Homestead 是 VM 级别的虚拟化解决方案,依赖一个完整的操作【zuò】系【xì】统,虽然功能很全,但【dàn】是【shì】很【hěn】重,而 Laradock 是容器,只依赖那些它【tā】必需的【de】软件,更加灵活,更加高【gāo】效。

还有一点【diǎn】需要提【tí】及的是 Docker 可以用于本地【dì】也可以用于线上,所谓【wèi】 same environment everywhere,而 Vagrant 部署的【de】开发环境只能用于本地,这一【yī】点也可以作【zuò】为【wéi】重要考量因【yīn】素【sù】。

服务范围:WordPress搭建【jiàn】、WordPress主题开发、WordPress二次开发、WordPress插件开发
其它服务:网站建【jiàn】设、企业邮箱、数字【zì】证书ssl、400电【diàn】话【huà】、
技术标签:企业网站、外贸网站、外贸商城、其它问题
联系方式:电话:13714666846 微信同号

企业网站定制

企业网站定制 根据企业需求,量身定制设计

企业网站定制:2800元起
添加微信 请说明来意
联系我们
站内搜索 MORE+

24小时服务热线 0755-29765948
  • 地址:深圳市罗湖区人民北路2033号206
  • 电话【huà】:0755-29765948 传真:82256610
  • 手机:13714666846 18948334877
  • 邮箱:gong@city96.com 164761418@qq.com
  • 粤ICP备14049207号
创意化数字品牌整合网络营销
营销网站让你坐等商机坐佣客户,Rss

版权所有:深圳市网商在线科技有限公司

版权所有:深圳市网商在线科技有限公司
友情连接link: