对于PHP而言,服务应用似乎天生就不适合它,于是swoole出现了,而Hyperf是基于swoole为PHP微服务铺路的框架。Hyperf 将存在丰富的可能性,如实现 Web 服务,网关服务,分布式中间件,微服务架构,游戏服务器,物联网(IOT)等。
官方教程给出了docker下开发的方式。然而如果有些同学就是习惯了原始的方式或者说因为某种原因不能使用该种方式开发,那还有一种就是基于VirtualBox搭建Hyperf开发环境,即不依赖docker。小马有找到一份参考视频教程传送门。然而我们在具体执行过程中可能会出现很多“意外”需要解决,小马这就一一道来。本文记载了执行期间遇到的所有奇奇怪怪的问题和有效解决方案。
首先我们默认已经安装虚拟机VirtualBox,不熟悉的同学可以参考这个《虚拟机安装教程》。下面就是基于VirtualBox搭建Hyperf开发环境的步骤。
一、新建虚拟电脑
安装完虚拟机,我们需要新建一个虚拟电脑。
网卡设置为桥接网卡。创建完之后分别使用ping命令(可以使用“CTRL+c”或“CTRL+z”方式退出ping)查看宿主机(我们原本的电脑主机)和虚拟机的IP,虚拟机将被分配一个和宿主机一样网段的IP,这样才能互相通信,也只有这个IP才能用于xshell连接。如果通过以上设置方式虚拟机得到的是不同网段的IP(一般不会),则可以增加以下的配置方式。
如果仅仅只是图1桥接网卡那样的设置,有时候虚拟机只会有一个非宿主机网段的IP。如果两者都配置了,还是没有得到同网段IP则重启机器。
二、安装lnmp
lnmp的官网点这里。我们迅速找到安装目录下的安装命令。
该命令类似视频教程中的命令。
如果提示Wget命令找不到,则先安装Wget:yum -y install wget。Wget默认是下载文件到当前用户目录。安装过程我们需要注意按照官方要求选择版本。尤其是PHP,安装完可以Php -v查看下版本。如需升级PHP参考这里。
三、安装redis和插件
安装Redis比较简单,如果需要查看Redis是否安装可以参考这里。如图,我们为了后续方便,继续安装一些辅助插件。VirtualBox 安装Centos7后 安装增强功能出现kernel headers not found for target kernel 错误的解决办法(配置网卡和安装插件),小马整理了,可以参看这里。
接下来是共享文件夹。小马参考了几个配置教程,均出现问题。教程1,教程2。于是参考手动自己配置的教程是可行的(但相对繁琐),教程传送门。期间如遇到VBoxLinuxAdditions.run 命令不能执行,亲测解决方案点这里。如遇到/sbin/mount.vboxsf: mounting failed with the error: No such device,则手动安装光驱亲测可行,参考这里。
这里需要特别注意,将宿主机本地的目录直接挂到虚拟机的系统目录,直接挂盘的话原来虚拟机目录中有数据会被同步为本地的空盘而丢失,这种情况可以采用临时盘拷贝方式解决,参考这里。期间如果遇到umount时,目标忙解决办法参考这里。所以整个过程处理起来稍显麻烦,所以最好还是共享目录之后再拉取目录代码。
后续用xshell或putty等其他shell工具连接上机器比较好敲操作命令。分享可能用到的命令:
\cp -rf /home/packageA/* /home/cp/packageB/ 拷贝目录
yum install lrzsz rz上传、sz下载文件
四、安装swoole扩展
使用pecl install swoole命令编译安装swoole的时候提示:Warning: popen() has been disabled for security reasons in /www/server/php/72/lib/php/PEAR/Builder.php on line 525
ERROR: failed to run `phpize’这个错误
说是在php.ini里将popen函数禁用了,于是修改取消禁止popen函数。