CENTOS 服务器安装指南
在Centos 服务器安装结束之后,Centos 服务器的配置才是最最重要的一环。按以下的步骤进行安装,首先要确保关闭掉 SelLinux(一个防火墙工具)。
1. 安装前准备
1.1 安装模式
Centos 的安装,最好在文字模式下安装,这样会快一点,而且图形界面的安装也体现不了图开界面的优势。关闭图形界面可以修改
/etc/inittab 文件中的参数, vim /etc/inittab 下的
# Default runlevel. The runlevels used by RHS are:
10 # 0 - halt (Do NOT set initdefault to this)
11 # 1 - Single user mode
12 # 2 - Multiuser, without NFS (The same as 3, if you do not have networ king)
13 # 3 - Full multiuser mode
14 # 4 - unused
15 # 5 - X11
16 # 6 - reboot (Do NOT set initdefault to this)
17 #
18 id:5:initdefault:
将 id:5:initdefault 修改为 id:3:initfefault ,再次重启时,就会进行文字模式。
1.2 安全设置
为了系统的安全,首先要重视端口的重要性。同时特别注意是对 root 用户的管理工作。端口该开放时,才开放相关端口。在安装之初,就禁止root 用户直接登录,即是只允许普通用户直接登录,要使用root权限时,再使用su – 转登录到root用户进行操作,或是 su do 执行root的相关操作,当然,前提是,你要在安装之中,增加一个普通用户,如之前的服务器添加的普通用户是 admin。
禁止root用户进行直接登录,可以打开 /etc/ssh/sshd_config.conf 找到
PermitRootLogin yes 这一项,将其设置为no.然后重启一下sshd服务,service sshd restart即可。
1.3 IP 设置
先设置系统的IP地址,可以使用 setup 进行设置,可以是 dhcp(自动分配) 或是 static(静态IP)。Setup 之后,选择 网络配置 -> Edit Devices -> eth0设置,
设置结束之后,重启网络服务:service network restart
1.4 设置代理
如果服务器能直接访问外网的情况下,这一步可以跳过,如果要使用代理上网的情况下,要设置 yum 代理,Centos 安装软件一般使用 yum 从网络进行安装。设置代理方法,编辑 /etc/yum.conf ,加入一句 proxy = http://192.168.0.XXX: 端口.如
Proxy = http://192.168.0.100:808 ,设置之后,就可以使用了,可以检测一下设置是否成功:
yum search mysql ,如果能查找出相关的软件,说明设置成功。
1.5 连接工具
安装软件可以直接在服务器上操作,但是在服务器上直接操作的话,会因为分辨率的问题,没有办法看到足够的信息,因为直接在服务器操作是没有办法滚屏的。所以推荐使用Putty连接进行操作,要上传文件至服务器时,使用winscp 进行连接操作。
Winscp 操作的问题就不再赘述了,在putty 连接时,使用上要先进行设置一下,设置方法操作如下:
在 IP Address 填写服务器的地址、端口,Connection type = SSH ,如果想下次不用再填写这些,可以将这个连接柄保存起来,在 Save Sessions 上填写连接句柄,然后点击 Save。保存后,点Open 就可以进行连接了,连接后输入用户名及密码。
连接成功之后,在putty的顶栏上右击,在弹出的选择项中,选择 Change Setting ,然后打开的Setting 如下图:
(1) 设置滚屏行数
将 200 修改为更大的数,如2000
(2) 设置编码
设置 windows->Translation 选择 UTF-8
经过这两项设置后,就可以进行安装了。
2. 安装 httpd (Apache)
在 root下执行 yum search httpd,如下图:
可以看到能找到 httpd.368 软件,我们直接安装就行了(注意,一般我们要先查找然后再安装),
我们执行 yum install httpd 等待其安装。
在执行一段时间后,会提示选择是否安装,如果安装输入 y,然后按 Enter 键。等待至安装结束,会提示:
1.2 安装mysqld
先执行 mysql 时,会查找到
这两个我们都要安装.
Yum install mysql
Yum install mysql-server
Yum install mysql-devel
具体的操作方式与安装httpd 类似。
1.3 安装 php 环境(freeiris2 要用到)
Yum search php
Yum install php
1.4 安装 php-mysql 模块
即是让 php 与 mysql 能进行通信
Yum search php-mysql
1.5 安装 Asterisk
安装 Asterisk 这一块的内容,要先添加软件库,可以根据我的博客中的文档进行添加:
http://hwzyyx.iteye.com/admin/blogs/890847
即在 /etc/yum.repos.d 下创建,创建方法可以 touch 或是 vim 都可以。
创建centos-asterisk.repo
[asterisk-tested]
name=CentOS-$releasever - Asterisk - Tested
baseurl=http://packages.asterisk.org/centos/$releasever/tested/$basearch/
enabled=0
gpgcheck=0
#gpgkey=http://packages.asterisk.org/RPM-GPG-KEY-Digium
[asterisk-current]
name=CentOS-$releasever - Asterisk - Current
baseurl=http://packages.asterisk.org/centos/$releasever/current/$basearch/
enabled=1
gpgcheck=0
#gpgkey=http://packages.asterisk.org/RPM-GPG-KEY-Digium
创建centos-digium.repo
[digium-tested]
name=CentOS-$releasever - Digium - Tested
baseurl=http://packages.digium.com/centos/$releasever/tested/$basearch/
enabled=0
gpgcheck=0
#gpgkey=http://packages.digium.com/RPM-GPG-KEY-Digium
[digium-current]
name=CentOS-$releasever - Digium - Current
baseurl=http://packages.digium.com/centos/$releasever/current/$basearch/
enabled=1
gpgcheck=0
#gpgkey=http://packages.digium.com/RPM-GPG-KEY-Digium
安装完仓库之后,可以直接按原来一般的步骤进行安装
yum install asterisk14 asterisk14-devel dahdi-linux-devel asterisk14-configs dahdi-tools
可能在执行的时候,会提示:
--> Missing Dependency: kernel-i686 = 2.6.18-308.8.2.el5 is needed by package kmod-dahdi-linux-2.8.0.1-1_centos5.2.6.18_308.8.2.el5.i686 (asterisk-current)
kmod-dahdi-linux-fwload-vpmadt032-2.8.0.1-1_centos5.2.6.18_308.8.2.el5.i686 from digium-current has depsolving problems
--> Missing Dependency: kernel-i686 = 2.6.18-308.8.2.el5 is needed by package kmod-dahdi-linux-fwload-vpmadt032-2.8.0.1-1_centos5.2.6.18_308.8.2.el5.i686 (digium-current)
这个是内核不支持的问题,需要更新相应版本的内核,可能在相关的镜像里找到。如下面的
wget ftp://mirror.switch.ch/pool/1/mirror/scientificlinux/58/i386/updates/security/kernel-2.6.18-308.8.2.el5.i686.rpm
然后执行安装内核进行更新: rpm –ivh ***.rpm ,然后重启即可。
yum install asterisk14-addons
yum install libdbi-dbd-mysql
yum install perl-libwww-perl
安装时还要注意语音的编码 (jiangmen 经验)
装asterisk时,把codec_723/729下载
二进制模块,分32位和64位的,你下载的那个,一是对奔3优化的,没利用到最新的cpu指令 ,二是32位的,不能运行在江门的服务器上(x86_64)
安装结束后,就可以安装freeiris 了
在安装freeiris 之前,得将相关的服务启动.
Service httpd start //启动 apache 服务
Service mysqld start //启动 mysql 服务
这些服务可能不是开机自启动,要使用
chkconfig –list httpd 检查一下,如果不是
使用 chkconfig httpd on 即可。
chkconfig mysqld on
1.6 安装 freeriris
通过winscp 将 frreiris.zip 包上传到 /opt/ 上,然后解压zip文件: unzip freeiris.zip ,解压后,有一个 freeiris 文件夹,给文件夹及其里面的文件权限 chmod 777 /opt/freeiris/ -R ,然后进入到
cd /opt/freeiris ,执行 ./install.pl –install ,如果可以安装,则会正常安装,如果没有办法安装,会提示缺少什么东西没有安装。将其补上即可。
安装结束后,重启计算机。
重启后,系统底层基本安装结束
1.7 安装 jdk
在 /usr创建 java文件夹 移动包到 其下
解压 unzip jdk-6u27-linux-i586-rpm.zip
解压后,其下有 jdk-6u27-linux-i586.rpm 的文件
执行安装: rpm –ivh jdk-6u27-linux-i586.rpm
配置环境变量,在 /etc/profile 的最后,加入以下内容:
JAVA_HOME=/usr/java/jdk1.6.0_27
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
18. 开放机关端口
8080 TCP端口,旺场系统用端口
5060 UDP端口,话务端口
5038 TCP端口,Asterisk 接口端口
10000-20000 UDP端口,语音传输端口,不开放会导致无声音
3306 TCP端口,mysql 端口
873 TCP 端口,rsync 用于自动提取录音的端口
4569 TCP端口,IAX2协议端口
开放方法:vim /etc/sysconfig/system-config-securitylevel
按照里面的示例进行添加,如 --port=5038:tcp ,表示添加 TCP协议的 5038端口
10000-20000的UDP端口 得这么写 --port=10000-20000:udp
注:添加完端口后,一定要执行 system-config-securitylevel-tui,在打开的界面
选择定制,
查看自己添加的端口是否成功,然后再按确定,出去上一界面后,也按确定,
然后重启一下iptables : service iptables restart 如果不执行上面的查看步骤时,可能会出现添加的端口不起作用的情况。
19. 为mysql添加用户 crm ,密码 vvopdb
先以root用户登录系统,进入数据库 mysql –u root
freeiris2
进入后,执行 grant all on freeiris2.* to crm@"%" identified by "vvopdb";
grant all on freeiris2.* to crm@"localhost" identified by "vvopdb";
注意: 这里的 crm@"%" 与 crm@"localhost" 的区别是 % 是指外面的机子可以访问, localhost是指自本机可以访问。如果只执行一条语句的话,会出现访问不成功的情况。
20 astss (用于扫描来电,来电弹屏用)
(1)先在 /opt/ 创建 astss 文件夹,并将 astss.jar 及其他的相关支持包一并上传
(2) 在 /opt/astss 下创建 logs 文件夹,此文件夹是用于日志记录文件的位置
(3) 上传做成linux服务的定义文件 astssd 及 astssRunner ,上传后,将其移动至 /etc/init.d 目录下
添加astssd用户,指定有其shell为不可登陆的,以保证安全性。
#useradd -s /sbin/nologin astssd
授权,-R为递归
#chown -R astssd:astssd /opt/astss
#mkdir /var/run/astss
#chown astssd:astssd /var/run/astss
Astss 涉及的表是 incoming
表定义如下:
CREATE TABLE `incoming` (
`ID` bigint(32) NOT NULL auto_increment,
`AGENT` varchar(32) NOT NULL,
`CLIENT` varchar(32) NOT NULL,
`CHANNEL` varchar(100) default NULL,
`STATUS` varchar(1) NOT NULL default '0',
`SESSION` varchar(100) default NULL,
`CALLDATE` datetime default NULL,
`PROVINCE` varchar(32) default NULL,
`CITY` varchar(32) default NULL,
`ARCHIVE` varchar(12) default NULL,
`ANSWERDATE` datetime default NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=805 DEFAULT CHARSET=utf8;
CREATE TRIGGER `insertintomemory` BEFORE INSERT ON `incoming` FOR EACH ROW BEGIN
INSERT INTO incoming_memory SET ID=NEW.ID,AGENT=NEW.AGENT,CLIENT=NEW.CLIENT,CHANNEL=NEW.CHANNEL,STATUS=NEW.STATUS,SESSION=NEW.SESSION,CALLDATE=NEW.CALLDATE,PROVINCE=NEW.PROVINCE,CITY=NEW.CITY,ARCHIVE=NEW.ARCHIVE,ANSWERDATE=NEW.ANSWERDATE;
END;
CREATE TRIGGER `updatememory` BEFORE UPDATE ON `incoming` FOR EACH ROW BEGIN
IF NEW.STATUS=1 THEN
UPDATE incoming_memory SET STATUS=NEW.STATUS,ANSWERDATE=NEW.ANSWERDATE WHERE CHANNEL=NEW.CHANNEL;
END IF;
IF NEW.STATUS=2 or NEW.STATUS=3 or NEW.STATUS=4 THEN
DELETE FROM incoming_memory WHERE CHANNEL=NEW.CHANNEL;
END IF;
END;
(注:2013-07-03加入优化功能:
为了提高效率,incoming 表的数据会随着运营时间越来越多,会导致效率有所下降,而且当座席数量很多时,不断的从 incoming 表读取数据会很慢,所以需要从 incoming 表复制相同数据结构的表来,并命名为 incoming_memory 即是内存表,并将其引擎修改为 memory 类型
并在 incoming 表中加入触发器,触发器的分两个,一个是插入触发器,一个是更新触发器
插入触发器: insertintomemory
BEGIN
INSERT INTO incoming_memory SET ID=NEW.ID,AGENT=NEW.AGENT,CLIENT=NEW.CLIENT,CHANNEL=NEW.CHANNEL,STATUS=NEW.STATUS,SESSION=NEW.SESSION,CALLDATE=NEW.CALLDATE,PROVINCE=NEW.PROVINCE,CITY=NEW.CITY,ARCHIVE=NEW.ARCHIVE,ANSWERDATE=NEW.ANSWERDATE;
END
更新触发器: updatememory
BEGIN
IF NEW.STATUS=1 THEN
UPDATE incoming_memory SET STATUS=NEW.STATUS,ANSWERDATE=NEW.ANSWERDATE WHERE CHANNEL=NEW.CHANNEL;
END IF;
IF NEW.STATUS=2 or NEW.STATUS=3 or NEW.STATUS=4 THEN
DELETE FROM incoming_memory WHERE CHANNEL=NEW.CHANNEL;
END IF;
END
即是在插入数据至 incoming 时,同时复制一份到 incoming_memory 内存表
在修改状态时,同时更新 incoming_memory 中的值,当状态被修改为 非1时,将数据删除
)
21安装 tomcat (用于部署web系统)
添加tomcat6用户,指定有其shell为不可登陆的,以保证安全性。
#useradd -d /opt/tomcat6.0 -s /sbin/nologin tomcat6
其中的参数-d /opt/tomcat6.0 也可以忽略。忽略的话其家目录在/home/tomcat6
授权,-R为递归
#chown -R tomcat6:tomcat6 /opt/tomcat6.0
#mkdir /var/run/tomcat
#chown tomcat6:tomcat6 /var/run/tomcat
22安装 web
将录音挂载到/opt/tomcat6.0/webapps/web/voices
mount --bind /var/spool/asterisk/monitor/1/ /opt/tomcat6.0/webapps/web/voices/
23 在录音中要体现手机号码,所以要修改录音文件
改 freeiris 的录音agi 文件 /freeiris2/agimod/sysautomon.dynamic
24 增加 /freeiris2/agimod/syssatisfaction.dynamic 用于做满意度调查
同时还要运行sql表,创建 satisfaction 表
DROP TABLE IF EXISTS `satisfaction`;
CREATE TABLE `satisfaction` (
`ID` int(10) NOT NULL auto_increment,
`SRC` varchar(150) default NULL,
`DST` varchar(150) default NULL,
`OPERID` varchar(150) default NULL,
`USERFIELD` varchar(150) default NULL,
`RESULT` varchar(2) default NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
上传调查提示音
满意度调查还要上传 thanks.vox 及 satisfaction.vox 到
/var/lib/asterisk/sounds/cn/user_custom 下,用于播放满意调调查,及感谢语
在 /etc/asterisk/extension_dialplan.conf 的
[from-exten-sip] 增加
exten => 9,1,AGI(agi://127.0.0.1/syssatisfaction?type=caller)
exten => 9,n,hangup()
a) 实时监听
在 /etc/asterisk/extension_dialplan.conf 中的
[from-exten-sip] 增加
exten => _110.,1,chanspy(SIP/${EXTEN:3}|b)
exten => _110.,n,hangup()
24 花生壳
先在 www.oray.com 上申请花生壳帐号
25 板卡设置,避免回音问题
26 系统状态监控
27 来电自启动
28 自动话务推送
29 LW写的短信小程序
30 自动备份录音
31 系统时间同步
rm –rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
执行 ntpdate stdtime.sinica.edu.tw 进行对时,如果提示: command not found 时,安装一下ntp,
yum –y install ntpdate ntp
如果上面的对时失败,就换一个对时服务站:ntpdate us.pool.ntp.org
设置硬件时间和软件时间的一致并校准
/sbin/hwclock --systohc
最后在 crontab 中加入以下内容, crontab –e ,然后输入以下内容,是指每十分钟对时一次
0-59/10 * * * * /usr/sbin/ntpdate stdtime.sinica.edu.tw
32 自动外呼程序部署(预览式外呼)
33 示闲示忙设置
34 OpenVPN 配置
35 触发器方案:cdr_new cdr_noanswer 表的数据处理,同时还有一个重点,就是要部署未接来电的
Noanswerhandler 并进行定时执行
---------------接下来是优化配置------------------------
1. Mysql 配置文件的优化配置
找到 /etc/my.cnf 并打开,原始的配置可能是:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-slow-queries=/var/log/mysqlslowquery.log
long_query_time=1
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0
中间还有其他的配置
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
现在需要加入以下的配置,即是将“中间还有其他配置全部删除”,加入以下配置:
back_log = 500
max_connections=1024
table_cache=256
tmp_table_size=256M
thread_cache_size=64
key_buffer_size=64M
read_buffer_size=512K
query_cache_type=256M
wait_timeout=700
2. Incoming 来电弹屏表的优化
(1) 生成内存表 incoming_memory
复制一个与 incoming 一模一样的表,然后重命名为 incoming_memory ,同时修改其类型为 Memory 表示这个是内存表
(2) 给 incoming 表增加索引
使用 navicat 打开表设计,在索引添加两个索引
Index_incoming_channel 字段选择 channel
Index_incoming_agent_status 字段选择 channel status calldate 或是再加入 session 、agent
新的数据库表需要修改的地方:
1. tel_estate_tel 中需要添加座席号及特服号
2. estate_info 修改案场名称及电话号码
3.