在Windows系统上安装Cygwin搭建Swoole测试环境的图文教程
作者:gxcuizy 发布时间:2022-11-13 21:19:34
前言
昨天,在本地安装 Swoole
调试环境的时候,遇到好几个坑,因为我的电脑是 Windows
系统,所以安装的是 cygwin
,但是过程并不顺利,接连出现安装终端的问题,并一步步查资料排坑,最终也顺利安装成功了,为了让其他人也能一次性就安装成功,省掉很多麻烦闹心事,我特地写了这边文章,希望对有需要的人有所帮助。
下载Swoole
Swoole下载地址: https://github.com/swoole/swoole-src/releases
在浏览器中打开下载地址,滑动到下载位置,可以下载 zip
文件包或者 tar.gz
文件包,下载完成等着后面备用。
下载cygwin
cygwin下载地址: https://www.cygwin.com/
在浏览器中打开 cygwin
官网,下滑到 Installing Cygwin
部分,点击 setup-x86_64.exe
下载 exe
文件即可
安装cygwin
找到刚才下载的 setup-x86_64.exe
文件,双击打开,就开始安装cygwin
第一步:打开安装界面,直接点击下一步
第二步:选择下载源,我们直接默认选择 Install from Internet
,然后点击下一步
第三步:选择安装目录,可以在输入框中直接修改安装目录,或者点击 Browse
选择目录,点击下一步
第四步:选择包下载的目录,可以在输入框中直接修改目录,或者点击 Browse
选择目录,点击下一步
第五步:选择网络服务器,直接默认就行了,点击继续下一步
第六步:选择一个下载服务器网址,我们选择 http://mirrors.metapeer.com
,在这里,我们也可以自己添加163的下载服务器,地址为 http://mirrors.163.com/cygwin/
,选定继续下一步
第七步:选择需要安装的软件包界面, View
下拉选择 Category
选项
第八步:搜索并选择需要安装的软件包
gcc-core,在 Search
中搜索 gcc-core
,展开 Devel
,找到下图中的蓝色选中项,在 New
栏,双击选择即可
php和php-devel,在 Search
中搜索 php
,展开 Interpreters
,找到下图中的蓝色选中项,在 New
栏,双击选择即可,切记 php
和 php-devel
两项都要选择
libpcre-devel,在 Search
中搜索 libpcre-devel
,展开 Libs
,找到下图中的蓝色选中项,在 New
栏,双击选择即可
autoconf-archive,在 Search
中搜索 autoconf-archive
,展开 Devel
,找到下图中的蓝色选中项,在 New
栏,双击选择即可
gcc-objc++,在 Search
中搜索 gcc-objc++
,展开 Devel
,找到下图中的蓝色选中项,在 New
栏,双击选择即可
libc++-devel,在 Search
中搜索 libc++-devel
,展开 Devel
,找到下图中的蓝色选中项,在 New
栏,双击选择即可
libc++1,在 Search
中搜索 libc++1
,展开 Devel
,找到下图中的蓝色选中项,在 New
栏,双击选择即可
php-json,在 Search
中搜索 php-json
,展开 PHP
,找到下图中的蓝色选中项,在 New
栏,双击选择即可
pcre2,在 Search
中搜索 pcre2
,展开 Text
,找到下图中的蓝色选中项,在 New
栏,双击选择即可
libpcre2-devel,在 Search
中搜索 libpcre2-devel
,展开 Libs
,找到下图中的蓝色选中项,在 New
栏,双击选择即可
最后一步,选择完全部的软件包,点击下一步,直到安装完成,时间可能有点久,耐心等一下
编译安装Swoole 解压并放到home目录
解压上面下载的 Swoole
压缩包,放到 cygwin
的安装目录下的 home
目录中,为了方便,并改名为 Swoole
,当然可以不改
打开cygwin并且进入Swoole目录
双击运行Cygwin软件,然后通过命令 cd /home/swool/
,进入 Swoole
解压的源程序代码
生成编译的配置文件
在 Swoole
的根目录下,执行命令 phpize
,可以生成编译的配置文件configure
编译配置并检测环境且编译安装
上面生成编译的配置文件后,再输入命令 ./configure && make && make install
,然后就是等待编译安装 Swoole
完成
检测Swoole安装是否成功 查看Swoole扩展是否开启
安装完成后,我们输入命令 php --ini
,可以查找到 php.ini
配置文件的目录位置,可以发现,配置文件的目录在 /etc/php.ini
,然后通过 vi
编辑查看命令 vi /etc/php.ini
,并且进入到文件的最后一行,然后发现,已经有了一行 extension=swoole.dll
的扩展配置,这是因为在编译安装的时候,已经把这个模块编译进了 php
。
然后我们再通过命令 php -m
查看一下是否真的有这个扩展了呢,从下图可以发现,确实已经有了 swoole
的扩展
测试Swoole环境 选择并进入测试目录
在我们下载的 Swoole
源代码中,有很多示例,我们可以直接运行进行测试,进入到 examples
目录,里面的全都是示例代码,我们选择 http/server.php
进行测试,然后 cd http/
进入到 http
目录
执行php程序
上面已经进入到 http
目录,并且发现,当前目录下有一个 server.php
的文件,我们可以通过命令 php server.php
执行
浏览器运行测试
我们打开 server.php
文件,有一行代码 $http = new swoole_http_server("0.0.0.0", 9501);
,开启 swoole
服务的端口为 9501
,那么我们可以直接在浏览器地址栏输入 127.0.0.1:9501
或者 localhost:9501
并访问,显示 Hello Swoole.
,则说明 Swoole
安装成功了!
总结
只要按照文章一步一步的安装,应该能一次性安装成功,因为我是一步一个坑踩过来的,并且已经把坑填上了,不要夸我,会骄傲的。大家在安装过程中,如有任何问题可以直接留言给我,我看到会及时回复并帮助解决的,大家如果有其他更好的想法,也环境分析出来和大家交流,谢谢!
来源:https://segmentfault.com/a/1190000022768589
猜你喜欢
- 在使用Python做socket编程时,由于需要使用阻塞(默认)的方式来读取数据流,此时对于数据的结束每次都需要自己处理,太麻烦。并且网上也
- 1. 图片验证码1.1 工具类-utility.py将所有和图片验证码有关的方法放在类 ImageCodeimport randomimpo
- 背景在爬取网站数据时,我们通常会遇到一些动态渲染页面的网站。传统的静态网站我们可以直接通过 requests.get() 函数获取页面源代码
- 下载了一个小型的记帐软件,发现这个软件数据库用的是access,很想看看它的数据库结构怎样,结果人家加密了。access的解密小case了,
- <?php function CreateShtml() { ob_start(&quo
- 1、python多进程编程背景python中的多进程最大的好处就是充分利用多核cpu的资源,不像python中的多线程,受制于GIL的限制,
- 今天使用python计算数据相关性,但是发现计算出的表格中间好多省略号,而且也不对齐。这也太难看了。于是在程序里加了三行:pd.set_op
- Python过滤txt文件内重复内容,并将过滤后的内容保存到新的txt中示例如下 原文件处理之后的文件 直接上代码# -*-coding:u
- 前言今天就来学习一下图形设计界面的美化,首先我们知道 QtDesigner设计出来的界面默认是不太怎么美观的。所以在以后的实际开发中很多界面
- 今天来给大家推荐一个Python当中超级好用的内置函数,那便是lambda方法,本篇教程大致和大家分享什么是lambda函数lambda函数
- use strict;use warnings;# Print all files in a directorysub print_file
- 本文实例讲述了Python实现简单拆分PDF文件的方法。分享给大家供大家参考。具体如下:依赖pyPdf处理PDF文件切分pdf文件使用方法:
- 这篇文章主要介绍了python重要函数eval多种用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- 前言在前面的分享中,我们制作了一个天眼查 GUI 程序,今天我们在这个的基础上,继续开发新的功能,微博抓取工具,先来看下最终的效果整体的界面
- 1.超链接<a href="https://www.aspxhome.com" title="asp之家
- 1: os.listdir(path) //path为目录 功能相当于在path目录下执行dir命令,返回为list类型 print os.
- 当设计一个产品,其中很多地方要把日期类型保存到数据库中,如果产品有兼容不同数据库产品的需求,那么,应当怎样设计呢?当然,首先想到的是,使用数
- 由于 window.onload 事件需要在页面所有内容(包括图片等)加载完后,才执行,但往往我们更希望在 DOM 一加载完就执行脚本。其实
- 在Web开发的时候,经常会遇到的一种情况就是浏览器提示脚本运行时间过长,停止还是继续,无论你选择什么,相信你都会想尽一切办法让这个对话框远离
- 统计平均数SELECT AVG() FROM 语法用于从数据表中统计数据平均数。语法:SELECT AVG(column) FROM tb_