QQ登录 账号密码登陆 官网首页

安装步骤(源码接入)

2.1 IM目录结构


2.2 IM部署(windows服务器,已phpStudy为例)

A.部署IM的服务器

域名地址指向到im 源码文件的public目录,点击新增并保存设置生成配置文件


B. 修改database文件


C. 在浏览器访问

如果出现500的错误,这是网络字体跨域引起的需要在服务器apache配置项开启LoadModule headers_module modules/mod_headers.so项(去掉#即可)

如果能访问到以下内容说明部署成功

    D.启动workerman socket服务

修改workerman 连接数据库配置。注:新版的im下面不需要修改,直接读取database.php

双击start_for_win.bat文件

如果出现以下界面,说明workerman启动成功

注:如果出现类似"php不是内部或外部命令"的提示,说明没有设置好php环境变量(https://www.workerman.net/windows

workerman GatewayWorke 框架,集成到此便已经完成了


E.Socket连接配置: 


修改以下5个文件,新版im不需要修改test/common/js/main.js和test/common/js/main.mobile.js


修改socket连接端口为IM所在服务器IM, 例如IM 服务器ip为: 192.168.1.200,端口自定义,例如:8283


 


Workerman: start_gateway.php 中配置

以下文件ip固定:0.0.0.0  端口跟上面socket端口保持一致,如:8283


2.3 IM部署(linux服务器)

本系统采用的 Getwayworker 框架,这个框架也是基于 Workerman 开发的。因此在 linux 下搭建的依赖需求和 Workerman 完全相同。

A. linux服务器搭建

1. 需要PHP>=5.4,并配置好PHP的环境变量(环境变量很重要)。

2. Linux用户运行以下脚本检查本地环境是否满足WorkerMan要求

curl -Ss http://www.workerman.net/check.php | php

如果脚本中全部提示ok,则代表满足WorkerMan运行环境

3. workerman 依赖于某些拓展(php -m 可查看php已加载的拓展)。必须安装了pcntlposixpdopdo.mysql扩展,如果并发连接数大于1024建议安装event扩展(php>=5.4)或者libevent扩展(注意目前libevent扩展不支持php7),请根据PHP版本自行选择。

4. 拓展安装链接 :

(http://doc.workerman.net/appendices/install-extension.html)

 

B. 

1.如果出现500错误,查看nginx的报错日志如果如下


解决方案如下:


在/usr/local/nginx/conf/fastcgi.conf(不同安装方法,找相应的路径)文件中,open_basedir后面追加相应的参数

例如:当前的项目目录为/home/wwwroot/im.com,那在后面追加的参数为:":/home/wwwroot/im.com"



然后重启nginx


2.部署IM项目,如果浏览器访问能出现以下页面,说明系统部署成功



C. Getwayworker部署及启动(重点)

1、在IM系统 vendor目录下载linux版Getwayworker,是一个zip 文件,解压重命名就可以用(因 vendor目录下已存在windows 版的Getwayworkerlinux下的注意不要与之重名)(源码已下好,文件为GatewayWorker-linux,此步可跳过)

wget http://www.workerman.net/download/GatewayWork.zip

unzip GatewayWorker.zip(源码以下好,此步省略)。然后将windows下的 Events.php 替换 liunx原来Events.php

修改 start_gateway.php 文件:$gateway=newGateway

("Websocket://0.0.0.0:8283");

修改start_register.php文件 $register = new Register

('text://0.0.0.0:1239');

修改start_businessworker.php 文件$worker->registerAddress = '127.0.0.1:1239';

2workerman/mysql 类文件(源码已下好,该步跳过

分两种方式获得:

方法一:请进入 Getwayworker-linux 目录,通过 composer 安装 workerman mysql composer require workerman/mysql

方法二:源码workerman mysql 类,把widows GatewayWorker /vendor/workerman/mysql 文件复制一份到 GatewayWorker-linux

/vendor/workerman目录下(注意目录结构,windowslinux应一致)。在GatewayWorker-linux目录start.php下 引入mysql类,如下图:

D.启动 workerman

第一种方式:进入 Applications 执行 php start.php start(终端关闭后 workerman 会随之关闭并退出。)

第二种方式:进入 Applications 执行 php start.php start d(终端关闭后 workerman 继续后台正常运行)

初次部署请以第一种方法启动,可查看是否出现错误,当系统稳定后可进入第二种方式启动。

如果出现以下界面,说明部署成功

【注】:

1、若出现php 命令无法执行,请设置php 环境变量。

2、websocket 启动后无法停止,请参考(http://doc.workerman.net/faq/stop-fail.html)。

3、即时聊天或上传图片 出现图片跨域或者500错误,请给public/uploads目录最高权限。

4、更多详情请参考workerman官网,(http://doc.workerman.net/).


上传图片大小限制 \public\config\chat.conf,2改为8支持8M不能改为10或以上

s:8:"img_size";s:1:"2"

ssl配置:

\vendor\GatewayWorker\Applications\live\start_gateway.php 在这个文件中加上ssl配置相关代码

$context = array(
   // 更多ssl选项请参考手册 http://php.net/manual/zh/context.ssl.php
   'ssl' => array(
       // 请使用绝对路径
       'local_cert'                 => '磁盘路径/server.pem', // 也可以是crt文件
       'local_pk'                   => '磁盘路径/server.key',
       'verify_peer'               => false,
       // 'allow_self_signed' => true, //如果是自签名证书需要开启此选项
   )
);
// websocket协议(端口任意,只要没有被其它程序占用就行)
$gateway = new Gateway("websocket://0.0.0.0:8283", $context);
// 开启SSL,websocket+SSL 即wss
$gateway->transport = 'ssl';