国庆节忙完工作 (ಥ _ ಥ),趁着空闲时间多,把用了两年多的(开始卡顿的)笔记本的系统重装成win10,重新搭建好工作环境后,想试下windows的子系统(WSL),以及尝试下swoole。
整个安装过程不算复杂,记录下,方便下次安装。
0. apt换源
https://www.jianshu.com/p/16502ed02e29
1. 安装基本的php及扩展
sudo apt install php7.2 php7.2-curl php7.2-gd php7.2-json php7.2-mysql php7.2-opcache php7.2-dev php-pear
其中:
* php-gmp(会自动安装) : 是一个数学扩展,“These functions allow for arbitrary-length integers to be worked with using the GNU MP library” 提供了一组方法,可以(通过GUN MP库)用来处理任意长度的integers
* php-readline(会自动安装) : 实现了访问 GNU Readline 库的接口. 这些函数提供了可编辑的命令行
* php-pear : 通过pecl安装swoole时要用到
* php-dev : 使用phpize来扩展php模块(即swoole)时用到
2. 安装swoole相关依赖
若不需要打开swoole这些模块,则不需要安装依赖依赖
sudo apt install libhiredis-dev
如果需要支持http2,需要安装nghhtp2,apt/源码安装各试了几次,编译swoole时遇到一些坑,暂时用不到先放着。
3.下载并安装swoole
根据官方文档
BashOnWindows 环境下必须关闭 daemonize 选项
需要修改 config.h 关闭 HAVE_SIGNALFD
需要先下载下来,修改文件后在编译安装
- 先下载,或在直接在https://github.com/swoole/swoole-src/releases 下载需要的版本
pecl download swoole
//或 wget https://github.com/swoole/swoole-src/archive/v4.2.1.tar.gz
- 解压
tar -zxf swoole-4.2.1.tgz
- 有用没用的都打开试下,也可以直接按照默认 ./configure后不加任何配置项【默认是都关闭的】
phpize && \
./configure \
--enable-openssl \
--enable-async-redis \
--enable-sockets \
--enable-mysqlnd
并且4.0.1版本开始去除了–enable-coroutine编译选项, 改为动态配置
可选项
–enable-http2 //需要安装nghttp2
- 关闭 HAVE_SIGNALFD
vim config.h
//找到HAVE_SIGNALFD,注释掉,改成0还是最终运行时还是会报错【但是不影响执行】.根据其他博客中的说法:在第二步解压tgz文件后,修改config.m4文件也可以【直接删除HAVE_SIGNALFD一行即可】
/* have signalfd */
/*#define HAVE_SIGNALFD 1*/
- 编译安装
make && sudo make install
4. 修改php.ini
extension=swoole
php -m查看已经安装成功