サーバインストール構成流帳

9791 ワード

一、インストールシステム
ビジネスシステムの都合上、CentOS 5.Xバージョンしか採用できません.ここでは5.8 x 86_を採用しています.64バージョン
1)インタフェース言語をインストールし、英語を選択し、簡体字中国語を選択しない
2)パーティション、LVMはあまり好きではありません.それとも基本ファイルシステムを使いますか.
/5 G optとホームは別々にパーティション化されておらず、いずれも/
/boot 128 M実は100 Mでも使いきれない
/tmp 2 Gテンポラリファイル、頻繁な読み書き、個別のセクション
/usr 8 Gこれはそれほど大きくはありませんが、実は8 Gは大きすぎます.
/var 40 G大量ログはここまで頻繁に書かれており、個別に分割されている
swap 2 G 2 Gは十分で、今サーバーのメモリはすべてとても大きくて、2倍のメモリの大きさによってこの区を分割する必要はありません
残りのWEBファイルやアプリは全てここに置いてあります.
3)インストールタイプ、選択しないで、今カスタマイズすることを選択して、Applications->Editors->VIMをチェックして、Base System->Baseをチェックして、LANGUAGES->Chinese Supportをチェックすればよい
システムのインストールが完了したら、最初に、時間を同期します.
ntpdate us.pool.ntp.org

私はvimを使うのに慣れていて、コードを持たないでハイライトしたviを使うのはとても苦痛です
shell> mv /bin/vi /bin/vi.bak
shell> 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.bak
shell>vi /etc/yum/pluginconf.d/fastestmirror  -->enable = 0
shell>wget http://mirrors.163.com/.help/CentOS5-Base-163.repo
shell>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サービスは、SSH 2プロトコルのみ使用可能、1024ビット暗号化、rootログイン禁止、空パスワード禁止
shell>vi /etc/ssh/sshd_config
port xxxx #      10000     
Protocol 2 #   SSH2
ServerKeyBits 1024 #  1024   
MaxAuthTries  x    #               
UseDNS no
PasswordAuthentication yes
PermitRootLogin no #  root  

修正/etc/sysconfig/i 18 n中国語の文字化けしを解決し、不要な多くのシステムサービスを閉鎖する
  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クライアントを使用する場合は、上記の例の文字セットに対応する文字セットをUTF 8として指定してください.
四、システムタイムゾーンを修正し、NTPDサービスを配置し、ntpdateというブレークポイント式の時間更新方法を使用することを厳重に提案しないと、深刻な問題を引き起こす可能性がある.
五、Apache+Mysql+PHPをインストールする
Yumのインストールを通じて、過程はとても簡単で、インストールする前にyum list php mysql httpdを覚えていて、取得したパッケージのバージョンが自分で必要かどうかを見てみましょう
#  /           RPM
yum -y install gcc gcc-c++ autoconf make libtool libXaw dialog expect ntp expat-devel libxml2-devel libevent libevent-devel screen
 
#  /  Apache/PHP/MySQL/MemCache
yum -y install httpd php php-devel mysql mysql-server mysql-devel memcached
yum -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 $mysql
fi
 
chown -R mysql:mysql $mysql
chmod 700 $mysql
 
if [ ! -d $htdocs ]; then
        mkdir -p $htdocs
fi
chown -R apache:apache $htdocs
 
if [ ! -d $PHPLOG ]; then
        mkdir -p $PHPLOG
fi
chown -R apache:apache $PHPLOG
 
if [ ! -d $MYSQLLOG ]; then
        mkdir -p $MYSQLLOG
fi
chown -R mysql:mysql $MYSQLLOG
chmod 700 $MYSQLLOG
chown -R apache:apache /var/lib/php/session

六、Proftpdを配置してftpサービスを創立する
PurefptdもProftpdもいいです.PureftpdのRPMパッケージが見つからないし、手動でインストールをコンパイルしたくないのでProftpdを選びました.仮想ユーザー/mysqlもサポートしています.ftpasswdのコマンドを使ってユーザーを作成/修正/削除するときに入力するパラメータは比較的多いです.腐っていますが、簡単にこれらの操作を実行できるスクリプトを書いたことがあります.醜いと書いてあるので、貼らない:-)
shell>yum install proftpd
shell>chkconfig –level 3 proftpd on
shell>vi /etc/proftpd.conf
#         
 #           :
AuthUserFile /etc/ftpd.passwd
AuthGroupFile /etc/ftpd.group
#     shells:
RequireValidShell off
 #           :
AuthOrder mod_auth_file.c
 #  PAM  :
PersistentPasswd off
AuthPAM off
 #       :
DefaulRoot ~
 #  
shell>cd /usr/sbin/
shell>wget http://www.castaglia.org/proftpd/contrib/ftpasswd
shell>chmod +x ftpasswd
ftpasswd       :
    :
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.noarch
shell> wget http://prdownloads.sourceforge.net/awstats/awstats-7.0-1.noarch.rpm
shell> rpm -ivh awstats-7.0-1.noarch.rpm
shell> cd /usr/local/awstats/tools/
shell> ./awstats_configure.pl

八、配置サーバー監視報告
1)Logwathを配置してシステム監視を行い、SendmailをサポートしなければMSMTPを配置してSMTPでメールを送ることができる
shell>vi /usr/share/logwatch/default.conf/logwatch.conf
Mailto = [email protected] #       
Range = yestoday  #     ,    
Detail = 10 #         
Service = All #    ,      
mailer="/usr/local/msmtp/bin/msmtp -t" #      sendmail,    msmtp
MSMTP     YUM   ,         
wget http://downloads.sourceforge.net/msmtp/msmtp-1.4.16.tar.bz2
tar jxvf msmtp-1.4.16.tar.bz2
cd msmtp-1.4.16
./configure –prefix=/usr/local/msmtp
make && make install
 
 
  MSMTP  
cd /usr/local/msmtp/etc
vi etc/msmtprc 
 #  
# Set default values for all following accounts.
defaults
logfile /var/log/msmtp.log
account srvlogwatch


# SMTP       
host mail.rexian.net.cn
#      Email
from [email protected]
auth login


#          
user [email protected]


#          
password xxxxx
# Set a default account
account default : srvlogwatch


    ,  
chmod 600 msmtprc
 :msmtprc     600 ,  web                    web        

shellで実行:
/usr/local/msmtp/bin/msmtp [email protected]
任意の文字を入力し、Ctrl+Dを押して終了し、メールが受信できるかどうかを確認します.また、muttで送信することもできます(送信者/添付ファイル付き/写し付き)echo「メール内容」|mutt-e「my_hdr from:kuka「-a/root/file.txt.zip-s」メールトピック「ユーザー1"-c [email protected]
2)サーバメーカーのハードウェア検出ソフト、例えばデルのDsetなどを構成し、タイミングを決めて検出する方法があれば、メールで送れば良いのですが、まだ検討していません
九、システム流量監視
私は軽量級のMonitorixを使っていますが、まあまあです.他の機能が強いのは後で話しましょう.
十、カーネルの最適化、ファイルハンドルの修正
1)sysctl.confの修正
shell>vi /etc/sysctl
net.ipv4.tcp_max_syn_backlog = 65536
net.core.netdev_max_backlog =  32768
net.core.somaxconn = 32768
net.ipv4.tcp_max_tw_buckets = 180000
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096        87380   4194304
net.ipv4.tcp_wmem = 4096        16384   4194304
 
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
 
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
 
net.ipv4.tcp_tw_recycle = 1
#net.ipv4.tcp_tw_len = 1
net.ipv4.tcp_tw_reuse = 1
 
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.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 = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.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はハンドル数です