基于CWMP(TR069)协议ACS服务器的搭建
Linux上安装openacs
Openacs的安装分为四大步:
1.安装jdk
2.安装jboss
3.安装mysql
4.部署openacs
JDK简介
Java DevelopmentKit(JDK)是由Sun公司发布的针对Java开发人员发布的免费软件开发工具包(SDK, Software development kit)。自Java推出以来,JDK已经成为使用最广泛的Java SDK。作为java语言的SDK,普通用户不需要安装JDK来运行Java程序,只需要安装JRE即可。而程序开发者必须安装JDK来开发、编译和调试程序。这里因为Openacs是基于jdk-1.5.0_22开发的,因此选用1.5版本的JDK来作为运行环境。
JBOSS简介
JBoss是一个基于J2EE的开放源代码的应用服务器。 因为JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用它。在J2EE应用服务器领域,JBoss是发展最为迅速的应用服务器。由于JBoss遵循商业友好的LGPL授权分发,并且由开源社区开发,这使得JBoss广为流行。JBoss应用服务器还具有许多优秀的特质。
Openacs简介
Openacs是一个用Java编写的开源的ACS服务器,该项目于2007-09-06 由Audrius Valunas发起,经过四年的开发,Openacs已经拥有了非常完善的功能,不仅仅可以作为CPE开发的辅助测试工具,而且完全可以胜任对一定数量的CPE进行远程管理。Openacs采用B/S模式,可以通过浏览器访问ACS服务器,对CPE的远程管理可以通过编写Java script来灵活实现。Openacs需要部署在JBoss应用程序服务器,Release的版本有bin(二进制)版本和src(源码)版本的,其中源码版本需要使用ant进行编译。
一.安装JDK1.5
1.从SUN公司的官网上下载二进制格式的JDK安装包jdk-1_5_0_22-linux-i586.bin
2.运行该文件,安装在/opt目录下
Cd /opt
Sh ./ jdk-1_5_0_22-linux-i586.bin
之后选择yes,安装成功会在/opt目录下生成jdk1.5.0_22目录。
3.安装成功后需要设置环境变量,在~/.bashrc文件里加入如下语句:
PATH=$PATH:/opt/jdk1.5.0_22/bin
JAVA_HOME=/opt/jdk1.5.0_22
CLASS_PATH=/opt/jdk1.5.0_22/lib/tools.jar
export PATH JAVA_HOME CLASS_PATH
修改完成后使用source /etc/bashrc来更新环境变量。在终端里使用java -version来查看环境变量是否设置正确。
二.安装JBOSS4.2.2.2
1.下载JBoss的安装包jboss-4.2.2.GA.zip
2.将安 装包解压到/opt文件夹下面,修改环境变量,在~/.bashrc加入如下语句:
PATH=$PATH:/opt/jboss-4.2.2.GA/bin
JBOSS_HOME=/opt/jboss-4.2.2.GA
3.部署完成后到/opt/jboss/bin目录下,以./run.sh -b 0.0.0.0 来运行JBOSS,看是否能启动成功,如果可以正常浏览http://localhost:8080/,说明JBOSS安装成功。(如果以localhost登陆不进去,就把localhost改为你的ip地址,注意是服务器的ip。)
4.如果jboss不能通过ip访问,注意防火墙的问题
a.把要使用的8080端口打开,执行如下命令:
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
b.把更改保存,执行如下命令:
/etc/rc.d/init.d/iptables save
c.重启防火墙,使更改立马生效,执行如下命令:
/etc/init.d/iptables restart
三.安装mysql数据库
1.因为mysql数据库在Linux上实在是太流行了,所以目前下载的主流Linux系统版本基本上都集成了mysql数据库在里面,我们可以通过如下命令来查看我们的操作系统上是否已经安装了mysql数据库
[weishusheng@centos opt]$rpm -qa | grep mysql
有的话,我们就可以用已经安装好的。
2.我是通过yum的方式来进行 mysql 的数据库安装,首先我们可以输入 yum list | grep mysql 来查看yum上提供的 mysql 数据库可下载的版本:
[weishusheng@centos opt]$yum list | grep mysql
3.安装mysql
将mysql ,mysql-server ,mysql-devel都安装好(注意:安装mysql时我们并不是安装了mysql客户端就相当于安装好了mysql数据库了,我们还需要安装mysql-server服务端才行)
[weishusheng@centos opt]$yum install -y mysql-server mysql mysql-deve
4.此时我们可以通过如下命令,查看刚安装好的mysql-server的版本
[weishusheng@centos opt]$rpm -qi mysql-server
5.启动mysql
我们通过输入 service mysqld star命令就可以启动我们的mysql服务[weishusheng@centos opt]$service mysqld start
这时我们会看到第一次启动mysql服务器以后会提示非常多的信息,目的就是对mysql数据库进行初始化操作,当我们再次重新启动mysql服务时,就不会提示这么多信息了
6.我们在使用mysql数据库时,都得首先启动mysqld服务,我们可以 通过 chkconfig --list | grep mysqld 命令来查看mysql服务是不是开机自动启动,如:
[weishusheng@centos opt]$chkconfig mysqld on
7.mysql数据库安装完以后只会有一个root管理员账号,但是此时的root账号还并没有为其设置密码,在第一次启动mysql服务时,会进行数据库的一些初始化工作,在输出的一大串信息中,我们看到有这样一行信息 :
/usr/bin/mysqladmin -u root password 'new-password' // 为root账号设置密码
所以我们可以通过 该命令来给我们的root账号设置密码(注意:这个root账号是mysql的root账号,非Linux的root账号)。
weishusheng@centos opt]$mysqladmin -u root password 'root' // 通过该命令给root账号设置密码为 root
8.此时我们就可以通过 mysql -u root -p 命令来登录我们的mysql数据库了
[weishusheng@centos ~]$ mysql -u root -p
9.以root用户再新建一个openacs用户, 并设置密码为openacs,
mysql> insert into mysql.user (Host,User,Password) values ('localhost','openacs',password('openacs'));
10.刷新系统权限表
mysql>flush privileges;
11.退出后登录一下
mysql>exit;
[weishusheng@centOS6 ~]$ mysql -u openacs –p
mysql>登录成功
12.接下来为openacs授权。我里我以ROOT身份登录。
mysql -u root -p
密码
a.首先为用户创建一个数据库(ACSDB),
mysql> create database ACS;
b.在mysql中创建用户,使该用户对该数据库有完全权限.
可以用 GRANT命令,格式如下 :
GRANT 许可权 ON 数据库名.表名 TO 新用戶名@主机名 IDENTIFIED BY '密码';
如:
mysql> GRANT ALL ON ACS.* TO openacs@localhost IDENTIFIED BY 'openacs';
注:每一句mysql语句后面都跟有“;”号,注意大小写。
c.查看、使用数据库
maql -u openacs -p ### 登录
use ACS; ###使用/选中ACS数据库
show tables; ###查看表
mysql一些常用命令
查看数据库: show databases;
使用数据库: use db_name;
查看表: show tables;
查看表结构: describe table_name;
删除数据库:drop database db_name;
退出mysql:exit
13.将下载到的数据库驱动解压,将mysql-connector-java-5.1.7-bin.jar拷贝到 $(JBOSS_HOME)/server/default/lib/下面。
[weishusheng@centOS6mysql]$cp mysql-connector-java-5.1.7-bin.jar ../jboss/jboss-4.2.2.GA/server/default/lib/
至此数据库和驱动安装完成。
四.部署openacs
1.将acs.ear拷贝到/opt/jboss-4.2.2.GA/server/default/deploy/下面。
2.修改openacs-ds.xml使其适合你的数据库的配置:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>ACS</jndi-name>
<connection-url>jdbc:mysql://localhost/ACS</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>openacs</user-name>
<password>openacs</password>
<min-pool-size>5</min-pool-size>
<max-pool-size>20</max-pool-size>
<idle-timeout-minutes>5</idle-timeout-minutes>
</local-tx-datasource>
</datasources>
主要是修改user-name和password及connection-url 。
3.修改完成后将openacs-ds.xml拷贝到($JBOSS_HOME)/server/default/deploy/下面。
4.创建openacs-service.xml(已经有了就不用创建),并拷贝到($JBOSS_HOME)/server/default/deploy/jms下面,openacs-service.xml格式如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<server>
<mbeancode="org.jboss.mq.server.jmx.Queue" name="jboss.mq.destination:service=Queue,name=acsQueue">
<dependsoptional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
</mbean>
</server>
至此Openacs的配置完成。
到这jboss启动又失败,提示信息为:
17:24:34,951 INFO [Server] Runtime shutdown hook called, forceHalt: true
17:24:34,951 INFO [Server] JBoss SHUTDOWN: Undeploying all packages
17:24:34,969 INFO [Server] Shutdown complete
Shutdown complete
Halting VM
我的解决过程:
1.禁用防火墙或者打开8080端口(问题依旧)。
2.在一篇博客看到说是JAVA_HOME路径的问题,说路径里不要包含不常使用的字符,于是我把JAVA_HOME路径里的特殊字符去掉。(但还是登陆不进去)。
3.最终的解决方法很简单,但也颇费了我一番功夫,找来找去发现是机器重名造成的,直接hostname localhost,用这条命令修改名字。(终于登陆进去了)。
http://192.168.1.21:8080/openacs/
附图一张
![]() |
在此给出几个cwmp相关的服务器和客户端下载链接
1. Perl CWMP Server
- https://github.com/dpavlin/perl-cwmp
2. mini-cwmp
- https://github.com/petersho/mini-cwmp
- http://mini-cwmp.sourceforge.net/
3. open-tr069
- http://code.google.com/p/open-tr069/
4. OpenACS
- http://sourceforge.net/projects/openacs/
5. jCPE
- http://code.google.com/p/jcpe/
6. netcwmp
- http://code.google.com/p/netcwmp/
7. jCWMPServer
- http://sourceforge.net/projects/jcwmpserver/
- http://ftp.heanet.ie/mirrors/sourceforge/j/project/jc/jcwmpserver/
8. cwmpclient
https://bitbucket.org/spapas/cwmpclient
目前 openacs的作者已经移除了相关的全部源代码,不再维护和更新,也有人建议他不要移除,继续留在网上,不更新维护也没关系(因为之前原作者申明openacs是开源的),很遗憾原作者没同意。
大家可以到:http://sourceforge.net/projects/libreacs/去看一下,那里有没移除之前的源代码。
2014.12.16
基于CWMP(TR069)协议ACS服务器的搭建的更多相关文章
- 基于Nginx的Rtmp流媒体服务器环境搭建
一.编译安装 wget http://nginx.org/download/nginx-1.4.2.tar.gz wget https://github.com/arut/nginx-rtmp-mod ...
- 基于腾讯Centos7云服务器搭建SVN版本控制库
基于腾讯Centos7云服务器搭建SVN版本控制库 最近在和小伙伴组队参加一个关于人工智能的比赛,无奈不知道怎么处理好每个人的代码托管问题,于是找到了晚上免费svn托管服务器的服务,但是所给的免费空间 ...
- nginx搭建rtmp协议流媒体服务器总结
最近在 ubuntu12.04+wdlinux(centos)上搭建了一个rtmp服务器,感觉还挺麻烦的,所以记录下. 大部分都是参考网络上的资料. 前提: 在linux下某个目录中新建一个nginx ...
- 基于SSL加密的vsftpd 服务器搭建和配置
基于SSL加密的VSFTPD 服务器搭建和配置 1.安装 ubuntu系统:apt-get install vsftp lftp centos系统:yum install -y vsftpd ftp ...
- TR069协议向导——一个帮助你了解TR069协议的简明教程(一)
您也能够到下面地址下载: http://download.csdn.net/source/993034 1.为什么须要TR069 随着VoIP.IPTV等越来越多IP终端设备的普及(尤其在家庭中 ...
- Ubuntu服务器如何搭建PPTPD(原创保证可用)
Ubuntu是一款基于linux的操作系统,无需许可和订购的费用,Ubuntu Server可以帮助您高效地扩展您的数据中心.它精简的架构和自动化部署的能力让您只需花费更少的运算能力和资源,便可提供更 ...
- git web 服务器的搭建【转】
转自:http://blog.csdn.net/transformer_han/article/details/6450200 目录(?)[-] git服务器搭建过程 需求 硬件需求一台Ubuntu或 ...
- tftp服务器的搭建和使用
一.tftp介绍 TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,==提供不复 ...
- 自学linux——18.FTP服务器的搭建
Centos7下FTP服务器的搭建 一.FTP的作用 文件传输协议(File Transfer Protocol,FTP),是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用 20. ...
随机推荐
- 工厂方法模式与IoC/DI
IoC——Inversion of Control 控制反转 DI——Dependency Injection 依赖注入 1:如何理解IoC/DI 要想理解上面两个概念,就必须搞清 ...
- 自己动手做logo
本文主要记录用 coreDraw 和ps 做公司logo . 我修改的logo.效果还不错. 1 矢量图 和位图的区别 http://jingyan.baidu.com/article/54b6b9c ...
- MVC OF UEditor 图片上传- 额外参数 笔记
最近正巧需要用到UEditor ,因为需求,.需要把上传的图片数据上传到阿里云的OSS与记录图片相关信息到MS SQL中 . 不得已只能翻UEditor的实现代码>_<痛苦. 备忘笔记: ...
- 深入理解css系列:meta标签
积累太少,时间管理技巧欠缺,所以导致了博客更新的速度迟缓.学习中成长,成长中学习.加油吧!最近在做h5的项目,对于meta标签层出不穷的各式属性值有点头晕,所以查资料整理了下. 关键字:meta na ...
- Microsoft Visual C++ Compiler for Python 2.7
Extest.c文件:#include <stdio.h> #include <stdlib.h>#include <string.h>#include " ...
- svn/git的diff、patch
svn/git的diff.patch 前几天,正当我突突的写代码,企业微信嘀嘀一声响”在不,过来帮我看个bug”.本人一向助人为乐,高兴的冲了过去,然后就开始了一段长达1分钟的问题描述.很明显,此同学 ...
- jquery 操作
Jquery使用时要引用,引用时放在最前. Jquery: $代表选择器, $(document) ready(function(e){}):找到页面,页面加载完成后执行. JS选取元素操作内容操作属 ...
- LPTHW 结束了
基本上在学习了LPTHW的 类 继承 和 合成以后基本就结束. 后面几章都是根据web.py进行网页编程,以及自动化测试的.目前来看不太感兴趣. 稍后我可能找个实际项目进行锻炼下,比如 Crossin ...
- 在windows下配置wnmp
1.下载mysql 2.下载php 3.下载nginx 4.创建文件夹wnmp 把php,nginx,mysql放到wnmp目录下,另外新建www目录, 用于存放web文件 配置nginx,如下(ng ...
- cache缓存帮助类
public class CacheHelper { /// <summary> /// 创建缓存项的文件 /// </summary> /// <param name= ...