對於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
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的權限,這可以使用下面的命令:
$config->enable_loging的值由false改爲true.
如果你希望能夠登錄,保證你安裝了PEAR安裝包LOG;保證你的網絡服務器擁有將文件寫入文件/var/log/serweb的權限,這可以使用下面的命令:
shell> touch /var/log/serweb
shell> chown apache /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的值中在加上,就是畫蛇添足了。
<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> 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
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
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的默認路徑
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));
這三句註釋掉.瀏覽器上顯示的時候就不會出現錯誤了.
virtual(multidomain_get_file($config->html_separator));
virtual(multidomain_get_file($config->html_epilog));
這三句註釋掉.瀏覽器上顯示的時候就不會出現錯誤了.
(10)可以使用serweb了.用[url=mailto:[email protected]][email protected][/url]ladmin和heslo作爲用戶名和密碼登錄serweb.
localhost.localadmin是在數據庫ser的subscriber表格中的domain屬性.如果admin後不加上這個,就不能登錄.
以管理者登入,打開瀏覽器,輸入[url]http://your_domain/seradmin/html/admin/index.php[/url]
當然,路徑名稱請依照你的環境修改,照上面輸入是看不到任何東西的。
如果一切正常的話,應該會看到登入的畫面。