cygwin64 配置swoole+php+nginx环境
Swoole 是一个使用 C++ 语言编写的基于异步事件驱动和协程的并行网络通信引擎,为 PHP 提供协程、高性能网络编程支持。提供了多种通信协议的网络服务器和客户端模块,可以方便快速的实现 TCP/UDP服务、高性能Web、WebSocket服务、物联网、实时通讯、游戏、微服务等,使 PHP 不再局限于传统的 Web 领域。
为方便windows开发环境下体验swoole的功能,推荐采用cygwin64来部署。
1、首先下载cygwin64。
从官网 http://cygwin.com/install.html 下载setup-x86_64.exe
点击运行安装包,选择默认的资源镜像源。
除了选择需要安装到磁盘哪个目录外,其他选项都采用默认即可。
镜像源,也就是它的download sites是 http://cygwin.mirror.constant.com
这个资源镜像源的地址,每次安装新的库时,要保持和之前的一致。
然后就可以像在 linux里面一样,在它的包和库管理窗口 Select Packages里面按照 view的类型为 category 选择要安装的工具包,知道具体的包名时,通过search 搜索包名更快,这些包名,基本上和linux环境的包名一致。
因为swoole 在cywin64 上需要编译安装。
所以要在cywin64 的包管理器中 Devel开发类包中勾选需要安装 的
gcc、make、autoconf 等包,勾选安装php分类全部包,当然要选择php7.3版本。
用同样的方法,安装nginx 包。不推荐在cygwin环境编译安装nginx和php,而是直接采用包管理器安装。
步骤2
Cygwin64 Terminal 是一个命令行窗口,这个命令行基本类似linux的命令。
nginx的安装和启动 。
首先在cygwin下搜索nginx并安装(不建议编译安装,官方有封装好服务),安装cygrunsrv(设置Windows服务的基础),安装好后 以管理员身份运行Cygwin nginx服务文件为/etc/rc.d/init.d/nginx,在Cygwin下是可执行程序。
/etc/rc.d/init.d/nginx {start|stop|status|install|uninstall|restart|condrestart}
先不着急执行install命令,
先执行cygserver-config并输入yes接受默认值即可,然后执行如下命令
/etc/rc.d/init.d/nginx install
此时服务安装好了,不着急启动,不然服务可能会无法启动,因为缺少必要的文件夹,所以要先创建必要的文件夹/var/log/nginx和/var/lib/nginx/tmp,然后执行/etc/rc.d/init.d/nginx start即可启动服务,结束!
步骤3 ,编译安装swoole 。
编译步骤参考swoole的流程,在Cygwin64 Terminal 上进行命令操作。
当编译失败时,看提示缺少哪些包,再在Cygwin 的包管理器中勾选安装即可。
步骤很多,也可能遇到一些不一样的问题,但是swoole是可以成功安装的。
然后把 swoole 作为 php的扩展,配置到php.ini文件中。此文件在 /etc/php.ini 文件。
然后是通过nginx 的配置一个代理到 swoole的服务端口。
nginx的配置文件在 /etc/nginx/nginx.conf 里面。
cygwin 的nginx 配置,可以参考 http://www.siyueweb.cn/index.php?c=show&id=364
文章内容,实现了nginx 代理到 thinkphp-swoole 运行的端口20108的 websocket服务上。
它是一个websocket 的 聊天服务 crmchat的开源工具。
好了本文内容全部结束。感谢你的阅读,希望对你有所帮助。