Swoole 使 PHP 开发人员可以编写高性能高并发的 TCP、UDP、Unix Socket、HTTP、 WebSocket 等服务,让 PHP 不再局限于 Web 领域。
解决php -v查看到版本与phpinfo()版本不一致问题 以宝塔为例 安装php7,2后发现phpinfo的版本是7.2.18,而php -v查看的却是5.4.45 php−v𝑝ℎ𝑝−𝑣 find / -name php.ini php−i|grepphp.ini𝑝ℎ𝑝−𝑖|𝑔𝑟𝑒𝑝𝑝ℎ𝑝.𝑖𝑛𝑖 vi /etc/profile //最后一行添加 export PATH=”/www/server/php/72/bin:PATH”//临时添加,直接执行𝑃𝐴𝑇𝐻”//临时添加,直接执行 wq $ source /etc/profile
1、下载安装包 $ sudo wget https://github.com/swoole/swoole-src/archive/v4.8.10.tar.gz $ sudo tar zxvf v4.8.10.tar.gz
2.编译安装 使用安装 php 时生成的 phpize 来生成 configure 配置文件(可以用 whereis phpize查看路径,其中 php-config 和 phpize 所在的目录是相同的) cdswoole−src−4.8.10𝑐𝑑𝑠𝑤𝑜𝑜𝑙𝑒−𝑠𝑟𝑐−4.8.10 phpize (centos 没有安装phpize可执行命令:yum install php-devel来安装phpize) ./configure−−with−php−config=/www/server/php/74/bin/php−config./𝑐𝑜𝑛𝑓𝑖𝑔𝑢𝑟𝑒−−𝑤𝑖𝑡ℎ−𝑝ℎ𝑝−𝑐𝑜𝑛𝑓𝑖𝑔=/𝑤𝑤𝑤/𝑠𝑒𝑟𝑣𝑒𝑟/𝑝ℎ𝑝/74/𝑏𝑖𝑛/𝑝ℎ𝑝−𝑐𝑜𝑛𝑓𝑖𝑔 make $ sudo make install
3.php.ini开启swoole扩展 编译安装成功后,修改php.ini加入 extension=swoole.so 通过php -m或phpinfo()来查看是否成功加载了swoole.so,如果没有可能是php.ini的路径不对,可以使用php –ini来定位到php.ini的绝对路径。 php -m |grep swoole
phpthinkswoole−d𝑝ℎ𝑝𝑡ℎ𝑖𝑛𝑘𝑠𝑤𝑜𝑜𝑙𝑒−𝑑 php think swoole stop
不开启swoole扩展会出现下列错误 Use of undefined constant SWOOLE_PROCESS – assumed ‘SWOOLE_PROCESS’ (this will throw an Error in a future version of PHP)
{ “url”:”plugin/layim/index/send”, “type”:”chatMessage”, “arguments”:{ “mine”: { “username”:”淘赏测试”, “avatar”:”http://cdn.firstlinkapp.com/upload/2016_6/1465575923433_33812.jpg“, “id”:26, “mine”:true, “content”:”haha” }, “to”:{ “username”:”wmainng”, “id”:28, “avatar”:”http://cdn.firstlinkapp.com/upload/2016_6/1465575923433_33812.jpg“, “sign”:””, “name”:”zhoutong”, “type”:”friend” } } }
wss配置 在nginx中配置wss方法 #wss协议转发 小程序里面要访问的链接
访问:wss://xxxx.com/wss
location /wss { proxy_pass http://im.taoshangapp.com:9501;#代理到上面的地址去, proxy_http_version 1.1; proxy_set_header Upgrade httpupgrade;proxysetheaderConnection”Upgrade”;proxysetheaderX−real−ipℎ𝑡𝑡𝑝𝑢𝑝𝑔𝑟𝑎𝑑𝑒;𝑝𝑟𝑜𝑥𝑦𝑠𝑒𝑡ℎ𝑒𝑎𝑑𝑒𝑟𝐶𝑜𝑛𝑛𝑒𝑐𝑡𝑖𝑜𝑛”𝑈𝑝𝑔𝑟𝑎𝑑𝑒”;𝑝𝑟𝑜𝑥𝑦𝑠𝑒𝑡ℎ𝑒𝑎𝑑𝑒𝑟𝑋−𝑟𝑒𝑎𝑙−𝑖𝑝remote_addr; proxy_set_header X-Forwarded-For $remote_addr; }