对于SERWEB,我要说确实是一个好东西,SIP快速路由器的用户接口,包括管理员和普通帐号的双系统,基于LAMP平台,使用了Smarty模板,并用了XMLRPC实现了点击拨叫和SIP即时通信等,虽然功能还不完善,但确实是一个非常好的范例。支持多语言,模板化翻译,本地化很方便。
遗憾的是虽然其文档中号称支持多数据库,包括我最喜爱的Postgresql,但实验下来发现图有其表,真正要达到数据库的迁移还需要自己来进行改写,这是后话了,先把安装记录下来吧。安装的部分参考了一些开源文档,整理如下:
1、解压serweb-0.9.6.tar.gz,并将解压后的文件夹中的所有内容复制到你所想安装serweb的文件夹下。
譬如我的操作是:
shell> tar -zxvf serweb-0.9.6.tar.gz
shell> cp -r serweb-0.9.6/* /usr/local/seradmin
shell> cd /usr/local/seradmin
2、修改serweb的配置文件
(1)apache的httpd.conf配置文件
DocumentRoot的值设为"/usr/local".
(2)打开/config下的config.php文件,
$config->enable_dial_voicemail的值由false改为true;
$config->enable_loging的值由false改为true.
如果你希望能够登录,保证你安装了PEAR安装包LOG;保证你的网络服务器拥有将文件写入文件/var/log/serweb的权限,这可以使用下面的命令:
shell> touch /var/log/serweb
shell> chown apache /var/log/serweb
(3)config_data_layer.php
检查资料库相关的设定如db_type, db_host, db_name, db_user and db_pass等,是否符合你主机上的设定,如果不符请修改。
(4)config_paths.php
<1> $config->root_path的值"/serweb/",根据你的html所在位置的实际情况修改,比如我的就是"/seradmin/html/"。要注意的是值的头尾都有"/",不论少了哪一个"/"都会使显示的时候图片和颜色不显示在浏览器上。而前在"/seradmin"前不可以有"/usr/local"部分,因为在apache的配置文件httpd.conf中已经将地址设为了"/usr/local",如果在$config->root_path的值中在加上,就是画蛇添足了。
<2> fifo_server的预设值为/tmp/ser_fifo,如果你在 config_paths.php 中�]有变更,这个部分常引起错误却很难查出原因,重点在于必须去 /tmp目录下将ser_fifo 这个档案的拥有者改成web server的身份,以RH linux而言就是改变拥有者为apache,这样网页服务器才有写入的权限。或者是在ser.cfg 中fifo="/tmp/ser_fifo" 之後增加fifo_mode=0666
<3> 另一个要改权限的地方也在 /tmp 目录,同样是 config_paths.php 中的设定,/tmp/serweb/目录也请将拥有者改为apache。
shell> chomd 777 /tmp/serweb
(5)打开/usr/local/seradmin/html/domains/_default/config.php
$config->default_timezone的值由America/New_York改为Asia/Shanghai.
(6)如果你的主机有多个domain name,请把 /home/serweb/html/domains/_default1此目录复制成其他的domain name并修改�炔康南喙厣瓒�即可。----->这里没有验证过
(7)安装pear和pecl
shell> pear list
shell> pear install DB
// 还需要安装的pear包有:XML_RPC,Log,HTML_Template_IT,HTTP,Mail,Net_SMTP,Net_Socket,Net_UserAgent_Detect,XML_Parser
shell> pecl list
shell> pecl install classkit-beta
shell> pecl install runkit-beta
(8)php的php.ini配置文件,php.ini文件在/usr/local/lib下
确认你的php.ini档案里已经设定short_open_tag = on , register_globals = on .
并加入以下几行内容:
extension=classkit.so
extension=runkit.so
include_path = ".:/usr/local/lib/php"
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20050922/"
// 所用的文件夹是classkit、runkit默认安装.so文件所在的文件夹。
// extension_dir是classkit.so、runkit.so的默认路径
如果担心php.ini还有错误,可以用shell> php /usr/local/serweb/scripts/cron_job/read_ser_moni.php来测试.
(9)/usr/local/serweb/html/page.php中修改:
virtual(multidomain_get_file($config->html_prolog));
virtual(multidomain_get_file($config->html_separator));
virtual(multidomain_get_file($config->html_epilog));
这三句注释掉.浏览器上显示的时候就不会出现错误了.
localhost.localadmin是在数据库ser的subscriber表格中的domain属性.如果admin后不加上这个,就不能登录.
以管理者登入,打开浏览器,输入 [url]http://your_domain/seradmin/html/admin/index.php[/url]
当然,路径名称请依照你的环境修改,照上面输入是看不到任何�|西的。
如果一切正常的话,应该会看到登入的画面。