博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
服务器安装配置流水帐
阅读量:6570 次
发布时间:2019-06-24

本文共 7228 字,大约阅读时间需要 24 分钟。

hot3.png

一、安装系统
因为业务系统的原因,只能采用CentOS5.X版本,这里采用的是5.8 x86_64版本
1)安装界面语言,选择英文,不选简体中文
2)分区,我不太喜欢用LVM,还是用基本文件系统
/ 5G opt和home没有单独分区,都在/
/boot 128M 事实上即便是100M都用不完
/tmp 2G 临时文件,频繁读写,单独分个区
/usr 8G 这个并不需要很大,事实上8G已经太大了点
/var 40G 大量日志会频繁写到这里,单独分割区
swap 2G 2G足够,现在服务器内存都很大,并不需要按照2倍内存大小来分割这个区
/www 所有剩余的空间 WEB文件和一些应用全都会放在这里
3)安装类型,不选,选择现在定制,勾选Applications->Editors->VIM,勾选Base System->Base,勾选LANGUAGES->Chinese Support即可
系统安装完成后,第一件事,同步一下时间
ntpdate us.pool.ntp.org
我习惯用vim,不带代码高亮的vi用着很痛苦
shell> mv /bin/vi /bin/vi.bakshell> ln -s /usr/bin/vim /bin/vi
二、配置YUM
1)备份初始的CentOS-Base.repo
2)关闭fastmirror
3)添加自定义镜像源源,南方电信用163,北方网通用搜狐;有必要的话再添加epel源
4)修改yum.conf排除一些包的升级,如php*5.3、kernel*等
shell>mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bakshell>vi /etc/yum/pluginconf.d/fastestmirror  -->enable = 0shell>wget http://mirrors.163.com/.help/CentOS5-Base-163.reposhell>vi /etc/yum.conf -->exclude=php*5.3* exclude=kernel*
三、设置Selinux、SSHD、iptables与其他服务
关闭selinux可以通过setup或者修改/etc/selinux/config来实现,记得重启
shell>vi /etc/selinux/config -->SELINUX=disabled
SSH服务,只允许使用SSH2协议,使用1024位加密,禁止root登录,禁止空密码
shell>vi /etc/ssh/sshd_configport xxxx #最好指定一个10000以上的端口Protocol 2 #只是用SSH2ServerKeyBits 1024 #使用1024位加密MaxAuthTries  x    #指定一个密码错误的最大重试次数UseDNS noPasswordAuthentication yesPermitRootLogin no #禁止root登录
修改/etc/sysconfig/i18n解决中文乱码,关闭不必要的众多系统服务
shell>vi /etc/sysconfig/i18n  LANG="en_US.UTF-8" #指定系统使用的字符集  LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN" #指定应用程序使用的字符集,这行可以不要,注销掉  SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en" #系统支持的字符集,重要  SYSFONT="latarcyrheb-sun16"
使用Putty或SecureCRT等ssh客户端时,记得指定字符集为UTF8,与上面例子中的字符集对应。
四、修改系统时区,配置NTPD服务,严重不建议使用ntpdate这种断点式的时间更新方法,可能会引发很严重的问题
五、安装Apache+Mysql+PHP
通过Yum安装,过程很简单,安装之前记得yum list php mysql httpd,看看所获取的软件包版本是否是自己需要的
#安装/更新公用库和一些常用的RPMyum -y install gcc gcc-c++ autoconf make libtool libXaw dialog expect ntp expat-devel libxml2-devel libevent libevent-devel screen #安装/更新Apache/PHP/MySQL/MemCacheyum -y install httpd php php-devel mysql mysql-server mysql-devel memcachedyum -y install php-pecl-memcache #安装常用PHP扩展yum -y install php-mysql php-gd php-xml php-mcrypt php-mbstring php-pear php-snmp libdbi-dbd-mysql #Zend和eacclerator如果能找rpm包,也可以通过这种方式安装分别为apache和mysql建立用户,创建文档目录,日志目录,设置权限等等,日志和数据目录最好在不同的挂载点上#创建一个脚本来完成目录的创建于权限设置htdocs="/www/htdocs"mysql="/data/mysql"PHPLOG="/var/log/php"MYSQLLOG="/var/log/mysql" if [ ! -d $mysql ]; then        mkdir -p $mysqlfi chown -R mysql:mysql $mysqlchmod 700 $mysql if [ ! -d $htdocs ]; then        mkdir -p $htdocsfichown -R apache:apache $htdocs if [ ! -d $PHPLOG ]; then        mkdir -p $PHPLOGfichown -R apache:apache $PHPLOG if [ ! -d $MYSQLLOG ]; then        mkdir -p $MYSQLLOGfichown -R mysql:mysql $MYSQLLOGchmod 700 $MYSQLLOGchown -R apache:apache /var/lib/php/session
六、配置Proftpd建立ftp服务
Purefptd和Proftpd都很不错,我是因为找不到Pureftpd的RPM包,而且越来越不愿意手动编译安装所以才选用了Proftpd,同样支持虚拟用户/mysql,使用ftpasswd的命令创建/修改/删除用户的时候要输入的参数是在比较多,我写过一个很烂但是可以很简单的执行这些操作的脚本,写的很丑,就不贴出来了:-)
shell>yum install proftpdshell>chkconfig –level 3 proftpd onshell>vi /etc/proftpd.conf#简单的配置文件修改 #添加下面代码进配置文件:AuthUserFile /etc/ftpd.passwdAuthGroupFile /etc/ftpd.group#关闭检测 shells:RequireValidShell off #设置仅使用虚拟用户认证:AuthOrder mod_auth_file.c #禁止PAM认证:PersistentPasswd offAuthPAM off #限制改变根目录:DefaulRoot ~ #结束shell>cd /usr/sbin/shell>wget http://www.castaglia.org/proftpd/contrib/ftpasswdshell>chmod +x ftpasswdftpasswd工具的格式如下:添加用户:ftpasswd -passwd -file /etc/proftpd/ftpd.passwd -uid {uid} -gid {gid} -home {home} -shell /sbin/nologin -des -name {username} 更改密码: ftpasswd -passwd -change-password -file /etc/proftpd/ftpd.passwd -name {username}删除用户: ftpasswd -passwd -delete-user -file /etc/proftpd/ftpd.passwd -name {username}更多命令执行 ftpasswd -help或查看:http://www.castaglia.org/proftpd/contrib/ftpasswd.html proftpd详细的配置文件说明在 这里,常见问题在 这里
七、配置Awstats流量统计
到Awstats.org下载最新的RPM包安装即可,当然,按日统计的话,Apache里要配置Cronolog进行日志轮询
shell> yum -y install perl-libwww-perl.noarchshell> wget http://prdownloads.sourceforge.net/awstats/awstats-7.0-1.noarch.rpmshell> rpm -ivh awstats-7.0-1.noarch.rpmshell> cd /usr/local/awstats/tools/shell> ./awstats_configure.pl
八、配置服务器监测报告
1)配置Logwath进行系统监控,不支持Sendmail的话可以配置MSMTP使用SMTP发送邮件
shell>vi /usr/share/logwatch/default.conf/logwatch.confMailto = logtome@domain.com #接受报告的邮箱Range = yestoday  #报告的范围,默认昨天Detail = 10 #报告内容的详细程度Service = All #默认全部,可以单独指定mailer="/usr/local/msmtp/bin/msmtp -t" #我机器上没有sendmail,使用的是msmtpMSMTP我没有找到YUM安装包,开始手动编译安装 wget http://downloads.sourceforge.net/msmtp/msmtp-1.4.16.tar.bz2tar jxvf msmtp-1.4.16.tar.bz2cd msmtp-1.4.16./configure –prefix=/usr/local/msmtpmake && make install
 
配置MSMTP帐户cd /usr/local/msmtp/etcvi etc/msmtprc 
 #示例# Set default values for all following accounts.defaultslogfile /var/log/msmtp.logaccount srvlogwatch# SMTP邮件服务器地址host mail.rexian.net.cn# 发送的邮件Emailfrom log@abc.comauth login# 邮件服务器登录账号user xxx@ab.com# 邮件服务器登陆密码password xxxxx# Set a default accountaccount default : srvlogwatch
 
保存退出,然后chmod 600 msmtprc注:msmtprc设置属性为600后,如果web用户没有对这个文件的读取权限会导致无法在web或其他应用中使用
shell里执行:
/usr/local/msmtp/bin/msmtp youremail@test.com

输入任意字符,按Ctrl+D退出,看看是否能够收到邮件

还可以通过mutt发送(指定发件人/带附件/有抄送)
echo "邮件内容" | mutt -e "my_hdr from:kuka<lucky@crsay.com>" -a /root/file.txt.zip -s "邮件主题" "用户1<user1@gmail.com>" -c user2@gmail.com

2)配置服务器厂商的硬件检测软件,如戴尔的Dset等,如果有办法定时检测,通过邮件发送就好了,还没研究
九、系统流量监控
我用的是轻量级的Monitorix,感觉还行,其他的那些功能强悍的以后再说吧
十、优化内核,修改文件句柄数
1)修改sysctl.conf
shell>vi /etc/sysctlnet.ipv4.tcp_max_syn_backlog = 65536net.core.netdev_max_backlog =  32768net.core.somaxconn = 32768net.ipv4.tcp_max_tw_buckets = 180000net.ipv4.tcp_sack = 1net.ipv4.tcp_window_scaling = 1net.ipv4.tcp_rmem = 4096        87380   4194304net.ipv4.tcp_wmem = 4096        16384   4194304 net.core.wmem_default = 8388608net.core.rmem_default = 8388608net.core.rmem_max = 16777216net.core.wmem_max = 16777216 net.ipv4.tcp_timestamps = 0net.ipv4.tcp_synack_retries = 2net.ipv4.tcp_syn_retries = 2 net.ipv4.tcp_tw_recycle = 1#net.ipv4.tcp_tw_len = 1net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_mem = 94500000 915000000 927000000net.ipv4.tcp_max_orphans = 3276800 ##################################################net.ipv4.tcp_fin_timeout = 30#net.ipv4.tcp_keepalive_probes = 5#net.ipv4.tcp_keepalive_intvl = 15#net.ipv4.tcp_keepalive_time = 1800#net.ipv4.ip_local_port_range = 1024  65535 net.nf_conntrack_max = 655360 net.netfilter.nf_conntrack_tcp_timeout_established = 1200 net.ipv4.ip_forward = 0net.ipv4.conf.default.rp_filter = 1net.ipv4.conf.default.accept_source_route = 0kernel.sysrq = 0kernel.core_uses_pid = 1net.ipv4.tcp_syncookies = 1kernel.msgmnb = 65536kernel.msgmax = 65536kernel.shmmax = 68719476736kernel.shmall = 4294967296 net.ipv6.conf.all.disable_ipv6 = 1修改完成后sysctl -p立即生效
2)关于文件句柄
在Linux下,用ulimit -n 命令看到的是单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。
shell>vi /etc/security/limits.conf#*               soft    core            0#*               hard    rss             10000#@student        hard    nproc           20#@faculty        soft    nproc           20#@faculty        hard    nproc           50#ftp             hard    nproc           0#@student        -       maxlogins       4*               -       nofile          65536
增加最后一行,修改句柄数量为65536 

*表示针对所有用户

 hard/soft分别是指硬性限制还是软性限制 
65536是指句柄数量

转载于:https://my.oschina.net/lenglingx/blog/138527

你可能感兴趣的文章
leetcode爬坑史(一)-- [14] 最长公共前缀
查看>>
Linux 安装 GitLab ,及首次配置使用
查看>>
js正则表达式
查看>>
说一说js防抖节流的事情
查看>>
react与动态input的问题
查看>>
python语法基础及if、while、for等语句介绍
查看>>
iOS OpenGL开发(三)- OpenGL渲染架构解析
查看>>
JDK1.8 -lambda中常用内置函数式接口
查看>>
想要成为大牛应该做到以下几点
查看>>
let命令 - es6学习笔记
查看>>
GIt版本管理工具
查看>>
Github建立静态网站(不需要购买服务器)
查看>>
命令行基本操作学习笔记(一)
查看>>
面试题 - 使用线程交替打印奇数偶数
查看>>
vs2017编译nodejsv10.1.0
查看>>
删除外部表时遇到的坑
查看>>
MySQL之父造访腾讯云 为腾讯云数据库开源点赞
查看>>
优秀自动化测试工程师的学习方法和逻辑-经历分享!
查看>>
Vue事件绑定(以代码的形式进行介绍)
查看>>
carthage踩坑
查看>>