宝塔Windows面板PHP安装Swoole Loader
前言:
百度大部分教程使用Cygwin,做了N期步骤,误人子弟。然后就有接下来我在win2012r2系统下安装宝塔,php7.2安装Swoole扩展教程。
安装前确认信息
上传{swoole-compiler-loader.php}确认信息
下载扩展
下载地址:
[vip-hide]链接:https://pan.baidu.com/s/1GksIsPlMjYaIlxvSkzNCdg 提取码:xm9s[/vip-hide]
链接:https://pan.baidu.com/s/1GksIsPlMjYaIlxvSkzNCdg 提取码:xm9s
下载对应的Swoole Loader扩展,解压。
宝塔php7.4下正确配置Swoole
先在php7.4版配置下查找
[ioncube]
;zend_extension=php_ioncube.dll
在前面加个;禁用,因为swoole 和ioncube.dll冲突,不能同时使用。
然后按下面步骤安装:
1 – 点击下载 windows PHP7.4 Swoole Loader扩展文件
2 – 安装Swoole Loader
将刚才下载的Swoole Loader扩展文件(php_swoole_loader_php74_nzts_x64.dll)上传到当前PHP的扩展安装目录中:ext
3 – 修改php.ini配置(如已修改配置,请忽略此步骤,不必重复添加)
编辑此PHP配置文件:C:\BtSoft\php\74\php.ini
在此文件底部结尾处加入如下配置并且保存 :extension=php_swoole_loader_php74_nzts_x64.dll
注意:需要名称和刚才上传到当前PHP的扩展安装目录中的文件名一致
最后 – 重启PHP或者重启服务器,刷新当前页面即可
PHP通用配置Swoole
解压出来的Swoole Loader扩展文件{swoole_loader版本号.dll}上传到当前PHP的扩展安装目录中:ext
修改php.ini配置
编辑此PHP配置文件:C:\BtSoft\php\72\php.ini,在此文件底部结尾处加入如下配置
extension=刚才上传的文件名.dll
需要名称和刚才上传到当前PHP的扩展安装目录中的文件名一致
最后重载php7.2配置,检查是否安装成功。
注意
扩展冲突
由于某些跟踪调试的 PHP
扩展大量使用了全局变量,可能会导致 Swoole
协程发生崩溃。请关闭以下相关扩展:
- xdebug
- phptrace
- aop
- molten
- xhprof
- phalcon(
Swoole
协程无法运行在phalcon
框架中)
其中 xdebug
和 phptrace
可以用 sdebug 代替;
xhprof
、blackfire
和 molten
可
用 SwooleTracker 代替。
安装过程中发现与php_phalcon.dll有冲突,记得妥善处理。
======================分隔库=================
IIS+PHP安装步骤如下:
第一步下载:swoole官网下载Swoole – PHP 协程框架cygwin-x64,只支持 64 位的系统;或到网盘下载
[vip-hide]链接:https://pan.baidu.com/s/1GksIsPlMjYaIlxvSkzNCdg 提取码:xm9s[/vip-hide]
第二步解压到指定文件夹:G:\swoole-cli-v5.0.3-cygwin-x64
第三步设置环境变量:把解压后的文件夹下的 bin 目录路径配置到系统的 Path 环境变量中,确定保存
第四步检查安装情况:打开CMD命令行输入:swoole-cli -v,安装成功
第五步:编写简单的WebSocket服务器代码:sw.php
<?php
//创建WebSocket Server对象,监听0.0.0.0:9502端口。
$ws = new Swoole\WebSocket\Server('0.0.0.0', 9502);
//监听WebSocket连接打开事件。
$ws->on('Open', function ($ws, $request) {
echo "Message: {$request->fd} is in!\n";
$ws->push($request->fd, "hello, welcome!xw\n");
});
//监听WebSocket消息事件。
$ws->on('Message', function ($ws, $frame) {
echo "Message: {$frame->data}\n";
$ws->push($frame->fd, "server: {$frame->data}");
});
//监听WebSocket连接关闭事件。
$ws->on('Close', function ($ws, $fd) {
echo "client-{$fd} is closed\n";
});
$ws->start();
第六步:编写简单的WebSocket客户端代码:index.html,客户端index使用phpstudy虚拟域名指向,配置可以在浏览器打开访问
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>swoole-cli demo</title>
</head>
<body>
<script>
var wsServer = 'ws://127.0.0.1:9502';
var websocket = new WebSocket(wsServer);
websocket.onopen = function (evt) {
console.log("Connected to WebSocket server.");
};
websocket.onclose = function (evt) {
console.log("Disconnected");
};
websocket.onmessage = function (evt) {
console.log('Retrieved data from server: ' + evt.data);
};
websocket.onerror = function (evt, e) {
console.log('Error occured: ' + evt.data);
};
</script>
</body>
</html>
第七步:运行服务端:swoole-cli sw.php;浏览器访问客户端index.html,完成!
======================分隔库==============================
LINUX 安装步骤如下:
1 – 点击下载 unix PHP7.4 Swoole Loader扩展文件
2 – 安装Swoole Loader
将刚才下载的Swoole Loader扩展文件(swoole_loader74.so)上传到当前PHP的扩展安装目录中:/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902
3 – 修改php.ini配置(如已修改配置,请忽略此步骤,不必重复添加)
编辑此PHP配置文件:/www/server/php/74/etc/php.ini
在此文件底部结尾处加入如下配置并且保存 :extension=swoole_loader74.so
注意:需要名称和刚才上传到当前PHP的扩展安装目录中的文件名一致
4 – 重启PHP或者重启服务器