专注 WordPress 高端企业主题的的设计与开发! 共同抗击疫情,即日至疫情结束8折优惠(不含促销产品),优惠券:TYZH2020。

MAMP PHP环境安装 pcntl 扩展学习 Workerman即时通讯框架

2020 年 7 月 6 日 310次

Workerman是一款开源高性能异步PHP socket框架,在学习的过程中首先得PHP 环境的支持,在 macOS 下的 MAMP Pro 默认的 PHP 环境中并没有安装 pcntl 模块,需要安装该模块才能启动 Workerman。

一、什么是Workerman

Workerman是一款开源高性能异步PHP socket框架。支持高并发,超高稳定性,被广泛的用于手机app、移动通讯,微信小程序,手游服务端、网络游戏、PHP聊天室、硬件通讯、智能家居、车联网、物联网等领域的开发。 支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议。拥有异步Mysql、异步Redis、异步Http、MQTT物联网客户端、异步消息队列等众多高性能组件。

二、切换 PHP 版本为 MAMP 指定的

macOS 系统自带PHP环境,后为开发方便,安装了 MAMP Pro 软件,在终端运行php -v,可查看到 macOS 自带的 PHP 版本,切换 PHP 版本为 MAMP 指定的版本步骤如下:

1、终端输入代码来编辑 .bash_profile 文件,该文件可以不存在,就创建新文件

sudo vim ~/.bash_profile

2、把环境变量代码添加到 .bash_profile 文件里

export PATH="/Applications/MAMP/bin/php/php7.4.2/bin:$PATH"

注:注意 PHP 版本的路径和版本号

3、执行文件,使起生效

source .bash_profile

4、检查是否生效(检验一)

php -v

5、环境变量指向地址(检验二)

which PHP

三、安装 pcntl 模块

1、使用php -v命令查看当前的PHP CLI的版本

~# php -v

2、根据版本下载PHP源代码

PHP历史版本下载页面:http://php.net/releases/,比如 PHP 版本为 7.4.2,则下载 php7.4.2.tar.gz。

3、解压源码压缩包

可使用命令:

~# tar -zxvf php7.4.2.tar.gz

也可以直接在目录下解压,替换

4、进入源码中的ext/pcntl目录

~# cd /Applications/MAMP/bin/php/php7.4.2/ext/pcntl

5、运行 phpize 命令

~# phpize
// 显示内容:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626

6、运行 configure命令

~# ./configure
// 显示内容:
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
...

如果下一步出现错误:

'php.h' file not found

需执行:

~# ./configure --with-php-config=/Applications/MAMP/bin/php/php7.4.2/bin/php-config --prefix=/Applications/MAMP/bin/php/php7.4.2/bin/php

7、运行 make 命令

~# make
// 显示内容:
/bin/bash /tmp/ph7.4.2/ext/pcntl/libtool --mode=compile cc ...
-I/usr/include/php7 -I/usr/include/php7/main -I/usr/include/php5/TSRM -I/usr/include/php7/Zend...
...

8、运 行make install 命令

~# make install
// 显示内容:
Installing shared extensions: /usr/lib/php7/20090626/

9、配置php.ini文件

通过运行 php --ini查找php.ini文件位置:/Applications/MAMP/bin/php/php7.4.2/conf/php.ini,不是 MAMP 面板上打开的 php.ini,然后在文件中添加extension=pcntl.so

extension=pcntl.so

说明: 此方法一般用来安装PHP自带的扩展,例如posix扩展和pcntl扩展。除了用phpize编译某个扩展,也可以重新编译整个PHP,在编译时用参数添加扩展,例如在源码根目录运行

~# ./configure --enable-pcntl --enable-posix ...
~# make && make install

四、启动 Workerman

环境准备好,进入 Workerman 根目录,在终端执行:

php start.php start

就可以启动 Workerman