宝塔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 代替;

xhprofblackfire 和 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或者重启服务器

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。