当前位置:网站首页>opensips(1)——安装opensips详细流程
opensips(1)——安装opensips详细流程
2022-04-23 05:41:00 【李王家的翠花】
注意注意:opensips的组件安装,默认是root用户,如果是非root用户,中间会产生很多权限问题,我这里用的是非root用户,会将其中出现的问题展示出来。root用户按照以下步骤安装会更加简单。
下载资源文件都放在 /usr/src/目录下,我安装的是2.4.3版本,安装前执行:
sudo chmod 777 -R /usr/src/
一、mysql安装
opensips添加鉴权用户需使用mysql存储,当然也可使用redis存储。
1、安装
这里安装的是5.6版本
(1)下载安装包
sudo wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
这时会有如下错误(没有就忽略):
wget: unable to resolve host address ‘dev.mysql.com’
无法解析主机地址。这就能看出是DNS解析的问题。
解决方案:
进入/etc/resolv.conf。
修改内容为下
nameserver 8.8.8.8 #google域名服务器
nameserver 8.8.4.4 #google域名服务器
如果没有vim命令:
安装:yum -y install vim*
(2)安装
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
sudo yum install mysql-community-server
2、查看是否安装成功
rpm -qa|grep mysql,安装完成如下:
3、安装后启动
sudo service mysqld restart
4、登陆mysql
mysql -u root
5、修改密码
set password for ‘root’@‘localhost’ =password(‘123456’);
6、设置客户端连接
这一步是为了更加方便的操作数据库,或者更加清晰的看到数据库信息。我用的客户端是navicat。
直接连接,会有如下异常:
Host ‘XXX’ is not allowed to connect to this MySQL server
解决方案:
use mysql;
CREATE USER ‘root’@’ %’ IDENTIFIED BY ‘123456’;
flush privileges;
二、opensips安装
Opensips需要很多依赖包,我们先安装一部分,然后在安装过程中需要什么我们就安装什么。
1、安装依赖包
sudo yum install mysql mysql-server mysql-libs mysql-devel
sudo yum install gcc make
sudo yum install flex bison ncurses libncurses-dev ncurses-devel
2、下载并解压opensips的源码
在usr/src目录下:
sudo wget http://opensips.org/pub/opensips/latest/opensips-2.4.3.tar.gz
如果下载不了,可去官网下载。
解压:tar zxvf opensips-2.4.3.tar.gz
进入:cd opensips-2.4.3/
3、编译
如果希望使用默认编译选项编译,直接执行
Make all
如果希望修改编译参数,执行
make menuconfig
我们在这里执行sudo make menuconfig,一定要sudo
此时会进入这样一个页面:
进入“Configure Compile Options”:
再进入 “Configure Excluded Modules”
空格键选择“db_mysql”
左键返回上一层,“Save Changes”,回车执行
最后,再返回上一层,选择“Compile And Install OpenSIPS”,回车执行,等待安装完成。
4、配置文件目录
在usr/src目录下安装opensips,其安装文件分布如下:
/usr/src //opensips安装路径
/usr/local/ //安装文件根目录
├── etc//配置目录
│ └── opensips
│ ├── opensips.cfg //主要配置脚本文件
│ ├── opensipsctlrc
│ ├── osipsconsolerc
├── lib64
│ └── opensips
│ ├── modules //包含的模块动态库的目录
│ │ ├── acc.so
│ │ ├── alias_db.so
…
│ │ └── usrloc.so
│ └── opensipsctl //命令行MI操作用到的文件
│ ├── dbtextdb
│ │ └── dbtextdb.py
│ ├── opensipsctl.base
│ ├── opensipsctl.ctlbase
│ ├── opensipsctl.dbtext
│ ├── opensipsctl.fifo
│ ├── opensipsctl.mysql
│ ├── opensipsctl.sqlbase
│ ├── opensipsctl.unixsock
│ ├── opensipsdbctl.base
│ ├── opensipsdbctl.dbtext
│ └── opensipsdbctl.mysql
├── sbin
│ ├── opensips //opensips程序可执行文件(启动opensips)
│ ├── opensipsctl //用于opensips命令行MI操作的脚本
│ ├── opensipsdbctl //opensips数据库操作脚本
│ ├── opensipsunix
│ ├── osipsconfig
│ └── osipsconsole
以上目录的权限均需修改:
sudo chmod 777 -R /usr/local/
注意:这里需要给以上目录添加sudo权限,编辑/etc/sudoers文件,更改secure_path配置如下:
这里是为sudo命令定义PATH环境变量。保存即生效。
5、配置数据库信息
cd /usr/local/etc/opensips/
sudo vim opensipsctlrc
配置如下:
6、配置opensips
cd /usr/local/sbin/
sudo osipsconfig
如下图所示:
依次选择–> Generate OpenSIPS Script –> Residential Script–> Configure Residential Script
空格选中以上四项。然后左键返回,选中“Generate Residential Script”,回车,会生成新的cfg文件:
进入cd /usr/local/etc/opensips/
如图所示:
更改文件权限:
sudo chmod 777 -R opensips_residential_2022-2-11_14:55:21.cfg
拷贝和替换原有配置文件:
mv opensips.cfg opensips.cfg.old
mv opensips_residential_2022-2-11_14:55:21.cfg opensips.cfg
修改opensips.cfg:
sudo vim opensips.cfg
如图所示修改:
修改完数据库配置后使用opensipsdbctl新建数据库:
cd /usr/local/sbin/
sudo opensipsdbctl create
这时候会有如下异常:
Access denied for user ‘root’@‘localhost.localdomain’ (using password: YES)
可以看出是数据库不支持localhost.localdomain形式去连接,那好办,新增就行了,如下:
use mysql;
CREATE USER ‘root’@‘localhost.localdomain’ IDENTIFIED BY ‘123456’;
flush privileges;
再继续执行sudo opensipsdbctl create,执行成功。这个时候,opensips数据库和用户创建成功:
三、启动与停止
1、前台运行
如果需要让opensips在前台运行,便于调试和查看日志,可以在opensips.cfg配置文件中设置:
debug_mode = yes
该选项默认为no。然后在安装根目录下直接执行sbin/opensips文件运行opensips/
2、后台运行
将debug_mode配置项设置为no,或屏蔽掉该配置项,然后适用脚本进行启动和停止
启动:opensipsctl start
重启:opensipsctl restart
停止:opensipsctl stop
3、启动失败
先进行下一步日志配置,如果启动失败,可以看到日志。
我这边启动失败,报错为:
解决方案:
mysql -u root
grant all privileges on opensips.* to opensips@localhost identified by ‘opensipsrw’;
flush privileges;
重启成功。
四、日志配置
OpenSIPS使用syslog服务写日志,所以缺省情况下日志会写入/var/log/message这个系统日志文件中。
更改步骤:
1、opensips.cfg配置debug_mode=no及log_stderror=no时日志才会写文件。
2、在sudo vim /etc/rsyslog.conf中,增加一行:
local0.* /data/opensips/logs/opensips.log
3、重启rsyslog服务:sudo systemctl restart rsyslog.service
注意:我这边测试的日志写入比较慢。目前还没有解决办法。
debug_mode=yes 是开启调试模式,前台运行,详细见上文。
参考:https://www.jianshu.com/p/4f17429cfdcd
https://mp.weixin.qq.com/s?__biz=MzI1NjY1ODQ0OQ==&mid=2247483672&idx=1&sn=4ba52c38910711d2d01597b23946f118&scene=19#wechat_redirect
版权声明
本文为[李王家的翠花]所创,转载请带上原文链接,感谢
https://blog.csdn.net/liwangcuihua/article/details/122885601
边栏推荐
- mysql sql优化之Explain
- QT drawpixmap and DrawImage blur problem
- uni使用的一些坑
- Establish excel bookkeeping book through setting context menu
- Find the number of "blocks" in the matrix (BFS)
- Contract lock loophole
- Sword finger offer II 022 The entry node of the link in the linked list
- DWSurvey是一个开源的调查问卷系统。解决无法运行问题,修改bug。
- Solid contract DoS attack
- Sea Level Anomaly 和 Sea Surface Height Anomaly 的区别
猜你喜欢
Deep learning object detection
转置卷积(Transposed Convolution)
Navicate连接oracle(11g)时ORA:28547 Connection to server failed probable Oeacle Net admin error
基于ssm 包包商城系统
jdbc入门\获取数据库连接\使用PreparedStatement
Arithmetic and logical operations
mysql中duplicate key update
Some pits used by uni
uni使用的一些坑
mysql sql优化之Explain
随机推荐
Establish excel bookkeeping book through setting context menu
mysql如何将存储的秒转换为日期
实体中list属性为空或者null,设置为空数组
Similarities and differences between vector and array (notes)
2 - principes de conception de logiciels
QT compressed folder
[machine learning] scikit learn introduction
2-软件设计原则
POI exports to excel, and the same row of data is automatically merged into cells
多个一维数组拆分合并为二维数组
MySQL创建oracle练习表
QT drawpixmap and DrawImage blur problem
2-軟件設計原則
Dwsurvey is an open source questionnaire system. Solve the problem that cannot be run and modify the bug.
QT displays the specified position and size of the picture
Step on the pit: Nacos uses startup CMD - M standalone startup error
Duplicate key update in MySQL
PHP处理json_decode()解析JSON.stringify
After adding qmenu to qtoolbutton and QPushButton, remove the triangle icon in the lower right corner
Common interview questions - 4 (MySQL)