Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
en:faq:how_to_configure_multiple_servers [2016/11/08 03:23]
solo created
en:faq:how_to_configure_multiple_servers [2017/12/12 03:05] (current)
Line 8: Line 8:
   * PHP server 2:192.168.1.70   * PHP server 2:192.168.1.70
  
-<​note> ​注:做分布之前,先确保所有服务器的asterCC的版本必须是一样的,其次 安装相同的模块。 ​</​note>​+<​note> ​Before you start to config, please make sure all servers have same astercc version and modules</​note>​
  
-1.对系统进行分布配置前,首先需要将CTI机器上的数据库备份。 ​ +1.Backup database on your CTI server. ​ 
-<​code>​ mysqldump -uroot -p密码 ​astercc10 > 备份文件.sql </​code>​+<​code>​ mysqldump -uroot -pyour_password ​astercc10 > astercc_backup.sql </​code>​
  
-再在新的mysql数据库服务器(192.168.1.60)上进行备份数据的导入。 +Copy the sql file to your MySQL(192.168.1.60) ​sever and do import: 
-<​code>​ mysql -uroot -p密码 astercc10 ​备份文件.sql </​code>​+<​code>​ mysql -uroot -pyour_passwordastercc10 ​astercc_backup.sql </​code>​
  
  
-2.MySQL机器上,对CTI、PHP1、PHP2机器进行数据库的授权。 +2.set privileges on your MySQL server, to make sure you have mysql access on CTI and PHP servers 
-在 mysql> ​下执行如下命令:+Run the following commond on your mysql server 
 +mysql>
 <​code>​ grant all privileges on astercc10.* to astercc@'​192.168.1.%'​ identified by '​asterccpw';​ </​code>​ <​code>​ grant all privileges on astercc10.* to astercc@'​192.168.1.%'​ identified by '​asterccpw';​ </​code>​
  
 +Now you are supposed to have mysql access from 192.168.1.*
  
-3.分别在CTI、PHP1、PHP2三台机器上的/​etc/​astercc.conf ​中,修改:[database][statistics]标签下的数据库信息:+3.update ​/​etc/​astercc.conf ​on the CTI,​PHP1,​PHP2 servers, section ​[database] ​and [statistics]:
 <​code>​ <​code>​
 [database] ​ [database] ​
Line 50: Line 52:
 </​code>​ </​code>​
  
-<​note> ​注:该conf文件中system的标签下,做什么集群,就将该处修改成什么。 ​</​note>​+<​note> ​For cluster option under system, choose what kind of cluster config you want to use</​note>​
  
  
-4./​var/​www/​html/​asterCC/​app/​config/​database.php文件中将文件末尾的 var $default = array数据库信息修改成如下内容:+4.update php database config ​/​var/​www/​html/​asterCC/​app/​config/​database.php ​on your php servers
  
 class DATABASE_CONFIG {  class DATABASE_CONFIG { 
Line 67: Line 69:
         );          ); 
  
-<​note> ​注:$test 的内容无需修改。 ​</​note>​+<​note> ​You don't need to update ​$test</​note>​
  
  
-5.配置iptables服务,各机器配置完成后执行:service iptables restart ​+5.Update firewall config file: /​etc/​sysconfig/​iptables, then do service iptables restart ​
  
-CTI(Nginx)机器上:+On CTI(Nginx):
 <​code>​ <​code>​
 *filter ​ *filter ​
Line 101: Line 103:
  
  
-MySQL机器上:+On MySQL:
 <​code>​ <​code>​
 *filter ​ *filter ​
Line 128: Line 130:
  
  
-PHP1机器上:+On PHP1:
 <​code>​ <​code>​
 *filter ​ *filter ​
Line 149: Line 151:
  
  
-PHP2机器上: +On PHP2: 
-PHP1+same as PHP1
  
 <note tip><​code>​ <note tip><​code>​
-端口说明:请按实际情况,对/​etc/​sysconfig/​iptables文件中端口进行保留。 +Port usage: please open correct port on /​etc/​sysconfig/​iptables 
-21:FTP默认端口 +21:FTP 
-22:SSH默认端口 +22:SSH 
-80:http默认端口,由于我的机器改成8081了,所以CTI的iptables添加了8081 +80:http, if you changed http port in nginx, please make sure you set this properly 
-123:NTP默认端口 +123:NTP 
-137:udp samba的端口 +137:udp samba 
-138:udp samba的端口 +138:udp samba 
-139:tcp samba的端口 +139:tcp samba 
-389:tcp samba的端口 +389:tcp samba 
-445:tcp samba的端口 +445:tcp samba 
-901:tcp samba的端口 +901:tcp samba 
-161:SNMP的端口 +161:SNMP的 
-162:SNMP-trap的端口 +162:SNMP-trap 
-443:https默认端口 +443:https 
-2727:MGCP默认端口 +2727:MGCP 
-3306:mysql默认端口 +3306:mysql 
-4569:IAX2默认端口 +4569:IAX2 
-5036:IAX1默认端口 +5036:IAX1 
-5038:Asterisk默认端口 +5038:Asterisk ​AMI 
-5060:sip默认端口 +5060:sip 
-9000:php默认端口 +9000:php ​fpm 
-10000:​20000:Asterisk中RTP要使用的端口+10000:​20000:Asterisk ​rtp
 </​code></​note>​ </​code></​note>​
  
  
-6.在CTI、PHP1上安装samba服务,执行命令:+6.Install ​samba on your CTI and php servers
 <​code>​ yum install samba </​code>​ <​code>​ yum install samba </​code>​
  
  
-7.安装完成后,分别创建samba用户及密码,如:sbu/​123456, +7.Configure ​samba username and password, such as: sbu/​123456, 
-先执行:+first:
 <​code>​ useradd sbu </​code>​ <​code>​ useradd sbu </​code>​
-再执行,并在提示时输入123456:+then, enter password when it prompts:
 <​code>​ smbpasswd -a sbu </​code>​ <​code>​ smbpasswd -a sbu </​code>​
  
-8.修改samba配置文件 ​/​etc/​samba/​smb.conf,在smb.conf 文件末尾添加如下内容:+8.Update ​samba configure file /​etc/​samba/​smb.conf, append the following lines:
  
-CTI机器上:+on CTI server:
 <​code>​ <​code>​
 [ccastspool] ​ [ccastspool] ​
Line 237: Line 239:
 </​code>​ </​code>​
  
-PHP1机器上:+on PHP1 server:
 <​code>​ <​code>​
 [ccdata] ​ [ccdata] ​
Line 263: Line 265:
  
  
-9.配置完成后,重启Samba 服务配置生效,执行命令:+9. restart sambe, execute:
 <​code>​ service smb restart </​code>​ <​code>​ service smb restart </​code>​
  
-10.将samba的文件,相互挂载。(注:挂载之前,请先将本机要mount过来的代码进行备份。比如:在CTI机器上,需要mount PHP1机器上的ccdata ​到CTI机器的 ​/​var/​www/​html/​asterCC/​data ​目录,那么需要在CTI机器上,将/​var/​www/​html/​asterCC/​data ​进行备份,备份过程此处不做详细讲述)+10. Mount files. ​(Please do backup first before you mount, let's say you are going to mount ccdata ​to /​var/​www/​html/​asterCC/​data, backup your /​var/​www/​html/​asterCC/​data ​first)
  
- +on CTI server, execute:
-CTI机器上,依次执行命令,进行挂载:+
 <​code>​ <​code>​
 mount -t cifs -o username=sbu,​password=123456 //​192.168.1.61/​ccdate /​var/​www/​html/​asterCC/​data mount -t cifs -o username=sbu,​password=123456 //​192.168.1.61/​ccdate /​var/​www/​html/​asterCC/​data
Line 275: Line 276:
 </​code>​ </​code>​
  
-PHP1机器上,依次执行命令,进行挂载:+on PHP1, execute:
 <​code>​ <​code>​
 mount -t cifs -o username=sbu,​password=123456 //​192.168.1.62/​ccastspool /​var/​spool/​asterisk ​ mount -t cifs -o username=sbu,​password=123456 //​192.168.1.62/​ccastspool /​var/​spool/​asterisk ​
Line 283: Line 284:
 </​code>​ </​code>​
  
-PHP2机器上,依次执行命令,进行挂载:+on PHP2, execute:
 <​code>​ <​code>​
 mount -t cifs -o username=sbu,​password=123456 //​192.168.1.61/​ccstatistics /​var/​www/​html/​asterCC/​statistics mount -t cifs -o username=sbu,​password=123456 //​192.168.1.61/​ccstatistics /​var/​www/​html/​asterCC/​statistics
Line 294: Line 295:
  
  
-11.修改 ​/​etc/​php-fpm.d/​www.conf ​配置文件内容 +11. update php-fpm config file /​etc/​php-fpm.d/​www.conf 
-CTI机器上:+on CTI:
 <​code>​ <​code>​
 [www] [www]
Line 302: Line 303:
 </​code>​ </​code>​
  
-PHP1机器上:+on PHP1:
 <​code>​ <​code>​
 [www] [www]
Line 309: Line 310:
 </​code>​ </​code>​
  
-PHP2机器上:+on PHP2:
 <​code>​ <​code>​
 [www] [www]
Line 317: Line 318:
  
  
-12.修改/​usr/​local/​nginx/​conf/​nginx.conf ​配置文件 +12.update nginx config file /​usr/​local/​nginx/​conf/​nginx.conf
-CTI机器上:+
  
-12-1:在http中添加以下内容:+on CTI: 
 + 
 +12-1: add the following content in http section:
 <​code>​ <​code>​
 http{ http{
  
 upstream myphp {  upstream myphp { 
-        #ip_hash; PHP负载均衡+        #ip_hash; PHP load balance
         server 192.168.1.61:​9000 weight=2; ​         server 192.168.1.61:​9000 weight=2; ​
         server 192.168.1.70:​9000 weight=2; ​         server 192.168.1.70:​9000 weight=2; ​
Line 332: Line 334:
 </​code>​ </​code>​
  
-<​note>​ 注:http中server内的listen xxxx default,是指的页面访问的端口号。 </​note>​ +12-2:update ​location ​section:
- +
-12-2:location中前面位置添加以下内容,并将默认配置的fastcgi_pass ​ 127.0.0.1:9000; 用#​号注释掉:+
 <​code>​ <​code>​
 location ~ .*\.(php|php5)?​$ ​ location ~ .*\.(php|php5)?​$ ​
  
-       #这个表示login和reload时,使用本机的PHP服务,因此CTI的php-fpm服务是开启的,而且开机自启动+       #use local server for login and reloadConf action
         set $target myphp; ​         set $target myphp; ​
         if ($request_uri ~* login) {          if ($request_uri ~* login) { 
Line 351: Line 351:
 </​code>​ </​code>​
  
-<​note> ​注:PHP1PHP2机器上,这些配置都不用管,因为PHP1和PHP2上不使用nginx服务,默认fastcgi_pass ​ 均为 127.0.0.1:​9000; ​+<​note> ​you don't need to update nginx on PHP1 and PHP2 </​note>​
  
-如果只使用1台服务器(如:​PHP1)运行PHP服务,而不使用PHP负载均衡,那么,CTI中不需要添加任何的内容。并且,location中第一句set $target myphp; 内容也需要修改成PHP1的地址加端口,即:set $target 192.168.1.61:​9000;​ 
-</​note>​ 
  
 +13. Share licensing ​
  
-13.授权相关文件的共用+on CTI:
  
-CTI机器上:+13-1: do backup:
  
-13-1:先拷贝到mount的目录: 
 <​code>​ cp -Rp /​var/​www/​html/​asterCC/​app/​views/​agents/​agentsxindesk.ctp /​var/​www/​html/​asterCC/​statistics/​agentsxindesk.ctp </​code>​ <​code>​ cp -Rp /​var/​www/​html/​asterCC/​app/​views/​agents/​agentsxindesk.ctp /​var/​www/​html/​asterCC/​statistics/​agentsxindesk.ctp </​code>​
-再执行:+execute:
 <​code>​ ln -s /​var/​www/​html/​asterCC/​statistics/​agentsxindesk.ctp /​var/​www/​html/​asterCC/​app/​views/​agents/​agentsxindesk.ctp </​code>​ <​code>​ ln -s /​var/​www/​html/​asterCC/​statistics/​agentsxindesk.ctp /​var/​www/​html/​asterCC/​app/​views/​agents/​agentsxindesk.ctp </​code>​
  
-13-2:拷贝:+13-2:copy:
 <​code>​ cp -Rp /​var/​www/​html/​asterCC/​app/​config/​database.php /​var/​www/​html/​asterCC/​statistics/​database.php </​code>​ <​code>​ cp -Rp /​var/​www/​html/​asterCC/​app/​config/​database.php /​var/​www/​html/​asterCC/​statistics/​database.php </​code>​
-再执行:+execute:
 <​code>​ ln -s /​var/​www/​html/​asterCC/​statistics/​database.php /​var/​www/​html/​asterCC/​app/​config/​database.php </​code>​ <​code>​ ln -s /​var/​www/​html/​asterCC/​statistics/​database.php /​var/​www/​html/​asterCC/​app/​config/​database.php </​code>​
  
-13-3:/​opt/​asterisk/​scripts/​astercc/​identity.astercc ​文件,不用做任何操作,但要保证该文件,是最开始CTI机器上mount前备份过的文件。+13-3:make sure /​opt/​asterisk/​scripts/​astercc/​identity.astercc, /​opt/​asterisk/​scripts/​astercc/​license.astercc are original files before you mount
  
-13-4:/​opt/​asterisk/​scripts/​astercc/​license.astercc文件, 不用做任何操作,但要保证该文件,是最开始CTI机器上mount前备份过的文件。 
- 
-13-5:拷贝: 
 <​code>​ cp -Rp /​usr/​local/​conf/​hcdesk.conf /​opt/​asterisk/​scripts/​astercc/​hcdesk.conf </​code>​ <​code>​ cp -Rp /​usr/​local/​conf/​hcdesk.conf /​opt/​asterisk/​scripts/​astercc/​hcdesk.conf </​code>​
-再执行: 
 <​code>​ ln -s /​opt/​asterisk/​scripts/​astercc/​hcdesk.conf /​usr/​local/​conf/​hcdesk.conf </​code>​ <​code>​ ln -s /​opt/​asterisk/​scripts/​astercc/​hcdesk.conf /​usr/​local/​conf/​hcdesk.conf </​code>​
  
- 
-13-6:拷贝: 
 <​code>​ cp -Rp /​etc/​astercc.conf /​opt/​asterisk/​scripts/​astercc/​astercc.conf </​code>​ <​code>​ cp -Rp /​etc/​astercc.conf /​opt/​asterisk/​scripts/​astercc/​astercc.conf </​code>​
-再执行: 
 <​code>​ ln -s /​opt/​asterisk/​scripts/​astercc/​astercc.conf /​etc/​astercc.conf </​code>​ <​code>​ ln -s /​opt/​asterisk/​scripts/​astercc/​astercc.conf /​etc/​astercc.conf </​code>​
  
  
-PHP1机器上:+on PHP1:
  
-13-7:将本机的agentsxindesk.ctp文件备份成agentsxindesk.ctp.bak +13-4:​backup ​agentsxindesk.ctp
-备份:+
 <​code>​ mv /​var/​www/​html/​asterCC/​app/​views/​agents/​agentsxindesk.ctp /​var/​www/​html/​asterCC/​app/​views/​agents/​agentsxindesk.ctp.bak </​code>​ <​code>​ mv /​var/​www/​html/​asterCC/​app/​views/​agents/​agentsxindesk.ctp /​var/​www/​html/​asterCC/​app/​views/​agents/​agentsxindesk.ctp.bak </​code>​
-再执行: 
 <​code>​ ln -s /​var/​www/​html/​asterCC/​statistics/​agentsxindesk.ctp /​var/​www/​html/​asterCC/​app/​views/​agents/​agentsxindesk.ctp </​code>​ <​code>​ ln -s /​var/​www/​html/​asterCC/​statistics/​agentsxindesk.ctp /​var/​www/​html/​asterCC/​app/​views/​agents/​agentsxindesk.ctp </​code>​
  
-13-8:备份:+13-5:
 <​code>​ mv /​var/​www/​html/​asterCC/​app/​config/​database.php /​var/​www/​html/​asterCC/​app/​config/​database.php.bak </​code>​ <​code>​ mv /​var/​www/​html/​asterCC/​app/​config/​database.php /​var/​www/​html/​asterCC/​app/​config/​database.php.bak </​code>​
-再执行: 
 <​code>​ ln -s /​var/​www/​html/​asterCC/​statistics/​database.php /​var/​www/​html/​asterCC/​app/​config/​database.php </​code>​ <​code>​ ln -s /​var/​www/​html/​asterCC/​statistics/​database.php /​var/​www/​html/​asterCC/​app/​config/​database.php </​code>​
  
  
-13-9:将本机的hcdesk.conf文件备份成hcdesk.conf.bak +13-6: backup ​hcdesk.conf
-备份:+
 <​code>​ mv /​usr/​local/​conf/​hcdesk.conf /​usr/​local/​conf/​hcdesk.conf.bak </​code>​ <​code>​ mv /​usr/​local/​conf/​hcdesk.conf /​usr/​local/​conf/​hcdesk.conf.bak </​code>​
-再执行: 
 <​code>​ ln -s /​opt/​asterisk/​scripts/​astercc/​hcdesk.conf /​usr/​local/​conf/​hcdesk.conf </​code>​ <​code>​ ln -s /​opt/​asterisk/​scripts/​astercc/​hcdesk.conf /​usr/​local/​conf/​hcdesk.conf </​code>​
  
-13-10将本机的astercc.conf文件备份成astercc.conf.bak +13-7backup ​astercc.conf
-备份:+
 <​code>​ mv /​etc/​astercc.conf /​etc/​astercc.conf.bak </​code>​ <​code>​ mv /​etc/​astercc.conf /​etc/​astercc.conf.bak </​code>​
-再执行: 
 <​code>​ ln -s /​opt/​asterisk/​scripts/​astercc/​astercc.conf /​etc/​astercc.conf </​code>​ <​code>​ ln -s /​opt/​asterisk/​scripts/​astercc/​astercc.conf /​etc/​astercc.conf </​code>​
  
  
-PHP2机器上:+on PHP2:
  
-13-11:将本机的agentsxindesk.ctp文件备份成agentsxindesk.ctp.bak +13-8: bacup agentsxindesk.ctp
-备份:+
 <​code>​ mv /​var/​www/​html/​asterCC/​app/​views/​agents/​agentsxindesk.ctp /​var/​www/​html/​asterCC/​app/​views/​agents/​agentsxindesk.ctp.bak </​code>​ <​code>​ mv /​var/​www/​html/​asterCC/​app/​views/​agents/​agentsxindesk.ctp /​var/​www/​html/​asterCC/​app/​views/​agents/​agentsxindesk.ctp.bak </​code>​
-再执行: 
 <​code>​ ln -s /​var/​www/​html/​asterCC/​statistics/​agentsxindesk.ctp /​var/​www/​html/​asterCC/​app/​views/​agents/​agentsxindesk.ctp </​code>​ <​code>​ ln -s /​var/​www/​html/​asterCC/​statistics/​agentsxindesk.ctp /​var/​www/​html/​asterCC/​app/​views/​agents/​agentsxindesk.ctp </​code>​
  
-13-12:备份:+13-8:
 <​code>​ mv /​var/​www/​html/​asterCC/​app/​config/​database.php /​var/​www/​html/​asterCC/​app/​config/​database.php.bak </​code>​ <​code>​ mv /​var/​www/​html/​asterCC/​app/​config/​database.php /​var/​www/​html/​asterCC/​app/​config/​database.php.bak </​code>​
-再执行: 
 <​code>​ ln -s /​var/​www/​html/​asterCC/​statistics/​database.php /​var/​www/​html/​asterCC/​app/​config/​database.php </​code>​ <​code>​ ln -s /​var/​www/​html/​asterCC/​statistics/​database.php /​var/​www/​html/​asterCC/​app/​config/​database.php </​code>​
  
-13-13:将本机的hcdesk.conf文件备份成hcdesk.conf.bak +13-9: backup ​hcdesk.conf
-备份:+
 <​code>​ mv /​usr/​local/​conf/​hcdesk.conf /​usr/​local/​conf/​hcdesk.conf.bak </​code>​ <​code>​ mv /​usr/​local/​conf/​hcdesk.conf /​usr/​local/​conf/​hcdesk.conf.bak </​code>​
-再执行: 
 <​code>​ ln -s /​opt/​asterisk/​scripts/​astercc/​hcdesk.conf /​usr/​local/​conf/​hcdesk.conf </​code>​ <​code>​ ln -s /​opt/​asterisk/​scripts/​astercc/​hcdesk.conf /​usr/​local/​conf/​hcdesk.conf </​code>​
  
-13-14:将本机的astercc.conf文件备份成astercc.conf.bak +13-10: backup ​astercc.conf
-备份:+
 <​code>​ mv /​etc/​astercc.conf /​etc/​astercc.conf.bak </​code>​ <​code>​ mv /​etc/​astercc.conf /​etc/​astercc.conf.bak </​code>​
-再执行: 
 <​code>​ ln -s /​opt/​asterisk/​scripts/​astercc/​astercc.conf /​etc/​astercc.conf </​code>​ <​code>​ ln -s /​opt/​asterisk/​scripts/​astercc/​astercc.conf /​etc/​astercc.conf </​code>​
  
  
-14.修改一些文件的内容+14. update config files
  
-CTI机器上: +on CTI: 
- +update ​/​etc/​asterisk/​manager.conf, so other servers could access ​asterisk:
-/​etc/​asterisk/​manager.conf ​文件中,在文件最后面,添加所在网段的信息如下,然后保存退出,执行命令: +
-<​code> ​asterisk ​-rx "​manager reload"​ </​code>​+
  
 <​code>​ <​code>​
Line 457: Line 432:
 </​code>​ </​code>​
  
-/​etc/​astercc.conf ​文件中,[asterisk]标签下,server填写CTI的IP+apply the changes 
 + 
 +<​code>​ asterisk -rx "​manager reload"​ </​code>​ 
 + 
 + 
 +update ​/​etc/​astercc.conf
 <​code>​ <​code>​
 [asterisk] ​ [asterisk] ​
Line 467: Line 447:
  
  
-15.注意/​etc/​asterisk ​的权限,asterisk:​asterisk+15.make sure /​etc/​asterisk ​is owned by asterisk:​asterisk
  
-16.crontab文件内容,执行:crontab -e 进行对其内容的编辑。crontab 中监测启动的程序,互补即可,不要有重复运行的。  ​+16.update ​crontab ​by "crontab -e"
  
-CTI:+on CTI:
  
 <​code>​ <​code>​
Line 484: Line 464:
  
 MySQL: MySQL:
-全删除,不需要执行任何程序。+remove all crontabe
  
- +PHP1 and PHP2, you just need to make sure these scripts are executed on either one
-PHP1 和 PHP2,两台机器需要根据配置和负载来划分执行哪些脚本,两台机器不要都执行,做到互补以下脚本即可:+
 <​code>​ <​code>​
 * * * * * /​var/​www/​html/​asterCC/​cake/​console/​cake -app /​var/​www/​html/​asterCC/​app checkonline >/​dev/​null 2>&​1 ​ * * * * * /​var/​www/​html/​asterCC/​cake/​console/​cake -app /​var/​www/​html/​asterCC/​app checkonline >/​dev/​null 2>&​1 ​
Line 504: Line 483:
  
  
-17.mount ​挂载的检测,需要添加到crontab中。+17. make sure mount in crontabe
 CTI: CTI:
 <​code>​ <​code>​
Line 533: Line 512:
  
  
-18.最后,+18. At last,
  
-CTI机器上执行:+On CTI server:
 <​code>​ /​opt/​asterisk/​scripts/​astercc/​asterccc --RNI </​code>​ <​code>​ /​opt/​asterisk/​scripts/​astercc/​asterccc --RNI </​code>​
-PHP1机器上执行:+On PHP1:
 <​code>​ /​opt/​asterisk/​scripts/​astercc/​asterccc --ADI </​code>​ <​code>​ /​opt/​asterisk/​scripts/​astercc/​asterccc --ADI </​code>​
-PHP2机器上执行:+on PHP2:
 <​code>​ /​opt/​asterisk/​scripts/​astercc/​asterccc --ADI </​code>​ <​code>​ /​opt/​asterisk/​scripts/​astercc/​asterccc --ADI </​code>​
  
-正常在CTI上会提示:001,在PHP1上会提示002,在PHP2上会提示003,再重新做授权。在CTI上重启asterccd服务,看是否有报错。 +If everything is good, you will see 001 on CTI server, ​002 on PHP1, 003 on PHP2, after license is issued, run service ​asterccd ​restart on CTI server.
en/faq/how_to_configure_multiple_servers.1478575427.txt.gz · Last modified: 2017/12/12 03:11 (external edit)
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki