以CentOS系统为例。
1. 登陆OpenSIPS官网,获取rpm包的yum源并安装。
选择我需要的OS系统版本和OpenSIPS版本。然后在服务器上执行:
yum install https://yum.opensips.org/3.2/releases/el/7/x86_64/opensips-yum-releases-3.2-6.el7.noarch.rpm
安装OpenSIPS服务:
yum install opensips-3.2.3 (也可以选择其他小版本号,如3.2.0 、3.2.1等)
安装一些需要的模块:
(查询:openSIPS | YUM Repository)
MQ
yum install opensips-rabbitmq-modules-3.2.3-1.el7
Json
yum install opensips-json-module-3.2.3-1.el7
Redis
yum install opensips-redis-module-3.2.3-1.el7
postgres
yum install opensips-postgres-module-3.2.3-1.el7
http
yum install opensips-http-modules-3.2.3-1.el7
regex
yum install opensips-regex-module-3.2.3-1.el7
启动OpenSIPS服务,出现如下报错信息:
Jan 21 14:00:09 dev02 /usr/sbin/opensips[4213]: CRITICAL:httpd:mod_init: the version of libmicrohttpd you have does not support EPOLL feature, you need a version newer than 0.9.50, but running 0.9.33
Jan 21 14:00:09 dev02 /usr/sbin/opensips[4213]: ERROR:core:init_mod: failed to initialize module httpd
Jan 21 14:00:09 dev02 /usr/sbin/opensips[4213]: ERROR:core:main: error while initializing modules
核心问题点:libmicrohttpd版本太低,不支持使用。这个库是在安装opensips-http-modules-3.2.3-1.el7.x86_64时作为依赖库被安装进来的。
因此需要安装高版本的libmicrohttpd库。
通过GNU找到国内镜像地址:
https://mirrors.aliyun.com/gnu/libmicrohttpd/libmicrohttpd-0.9.72.tar.gz
下载,编译、安装。不赘述了。
因为yum默认会安装在/usr/lib64/目录
把编译完成的库拷贝到/lib64/下面,删除原来的低版本库和软连接。
cp /usr/local/lib/libmicrohttpd.so.12.57.0 /lib64/
ln -sf /lib64/libmicrohttpd.so.12.57.0 /lib64/libmicrohttpd.so.10
玩一把偷梁换柱。查看下依赖库的链接信息。已经可以链接成功。
再次启动成功。