第一章 开发环境的准备

重要提示:本文内容基于Hyperf2.2,由于互联网每时每刻都在更新,所以您看到本文时文中内容可能已经过时。


开发环境的选择

首先,让我们打开Hyperf的官方文档

https://hyperf.wiki/

有兴趣的话,你就把前言和版本管理都看一遍,如果没有兴趣的话,就直接点击快速入门中的“安装”(懒得找的话直接点下面这个链接)

https://hyperf.wiki/2.2/#/zh-cn/quick-start/install

可以看到HF要求你必须使用一个叫做Swoole的扩展(其实这也是HF的核心所在),那展开来说就两条路。一条路就是直接给你的PHP安装并配置一个Swoole扩展实现在本地开发,另一条路就是直接使用HF官方提供的Docker镜像来进行开发。

以我倒腾的经验告诉你,直接闭着眼睛选择使用Docker镜像才是最佳的开发方案。

毕竟在Windows上配置Swoole可并非易事(主要是Swoole不提供Windows的版本,你得装个Cygwin之类的模拟环境才行),而且现在的Windows 10提供了WSL(Windows Subsystem for Linux),简直好用到飞起,真没必要费那个劲去折腾。有这折腾的时间想来去摸摸鱼才是更好的选择。

就算你费劲千辛万苦在Windows环境下直接配置了Swoole扩展,你接下来也要为如何把项目部署上线头疼个一两天(因为服务器环境和本地环境不一致,出一些莫名其妙的问题),后面每次的更新都会是噩梦一样(因为每次要改动的时候你都不可能仅仅只修改某一个文件,时间长了这真的记不住改了哪些文件,文件一多你还会发愁他们是哪里来的)。

安装Docker

首先,打开Docker的官方网站,选择右上角的“Get Started”来到下载页面,或者直接点下面这个

https://www.docker.com/get-started

我们要安装的是Docker Desktop,根据你的电脑来选择需要下载的安装包,这里以Windows 10 21H2(22000.376) 64位专业版为例,直接点击“Download for Windows”就可以下载了。

下载以后一路下一步就可以安装了,中间可能会提示你安装一个叫做WSL2支持的东西,你只需要在弹出的网页中点击下载并安装就可以了。

到这里如果没什么问题的话,此时你应该已经装好Docker了。这里顺带解释几个Docker的名词解释。

Docker 这是一个开源的容器引擎(你可以理解容器就是一个轻量化的虚拟机)

Docker Desktop 这是一个开发环境,提供了一个完整可用的桌面UI,让你可以通过鼠标点击来完成一些基础的操作(实际也没啥用)

Dockerfile 这个文件主要是用来构造一个Docker镜像。一般开源项目里都会自带这个文件,用这个文件就可以构造一个跟开源项目开发者开发这个项目时所使用的相同环境。

镜像 Dockerfile的构造产物,可以用来创造Container(容器),你理解为系统安装盘就可以了。

容器 镜像run起来的产物,你可以理解为每个容器就是一个轻量化的虚拟机,他们使用linux的namespace技术实现,不同于传统的虚拟机,他们直接使用硬件资源而并非像传统虚拟机那样使用虚拟出来的硬件资源。

卷 即Volume,一种虚拟出来的存储设备,实际在主机上是一个目录。

安装MySQL/Redis这两个基础服务

MySQL的链接在这里

https://hub.docker.com/_/mysql

Redis的链接在这里

https://hub.docker.com/_/redis

如果你知道怎么做,你直接安装就可以了。如果你不知道怎么做,继续往下看。

MySQL的安装命令

docker run --name abcmysql -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 -v D:/mysql_data:/var/lib/mysql \ mysql:latest

这句命令的解释就是使用docker运行一个容器;

通过参数--name指定容器的名字是abcmysql;

通过参数-e指定了一个叫做MYSQL_ROOT_PASSWORD的环境变量(容器的)并且给它设置值为123456(也就是设置MYSQL的root密码);

通过参数-d设置这个容器在后台运行(一般常用的组合还有-itd,具体意思可以百度);

通过参数-p映射端口,参数值中前面这个3306是主机端口,后面这个3306是容器端口,意思就是将容器的3306端口绑定到主机的3306端口;

通过参数-v映射目录或者卷,和上面一样,中间的冒号之前是主机的路径(或者volume的名字),冒号之后是容器内部的路径(因为容器一旦销毁再次创建时,内部的数据不会被保存,所以你最好吧mysql的data目录映射出来,保存在本地,这样你以后可以反复映射实现数据的保存。)

并在最后写上mysql:latest,意思是告诉docker要run的这个容器,要从mysql:latest这里取镜像(一般是“[镜像名]:[版本号]”的格式,大多数情况下,公共的Docker镜像都会提供一个叫做latest的版本,这个版本一般就是最新版的意思)。

当然,我建议你在这里增加一个参数叫做--restart=always

使用这个参数可以让Docker在每次开机并运行Docker服务以后,自动启动这个容器。这个参数可以加在docker run 和mysql:latest中间的任何位置,并且参数名和参数值中间可以是等号也可以是空格(比如你写--restart always 也是可以的)

Redis的安装命令

docker run \

    -d \

    --name=redis \

    --restart=always \

    -p 6379:6379 \

    -v A:/Data/redis_data:/data \

    redis:latest

也许你会疑惑为什么到这里就变成了一行行的代码,好像和上面那个不太一样?

其实这里两条命令都是可以运行的,只是上面Mysql那条命令无论在Linux还是Windows中都是可以运行的,但是缺点就是所有参数堆叠在一起,不是很容易看。但是下面这条命令只能在Linux的终端中使用,如果你直接粘贴去Windows的话,会无法识别“ \”这个换行的意思导致执行失败。如果你不理解,请直接复制下面这个来安装redis。

docker run -d --name=redis --restart=always -p 6379:6379 -v D:/redis_data:/data redis:latest

到这里,基础环境的准备工作应该全部都结束了,下一章节将会讲述如何启动一个Hyperf项目。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容