サーバインストール構成流帳
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をチェックすればよい
システムのインストールが完了したら、最初に、時間を同期します.
私はvimを使うのに慣れていて、コードを持たないでハイライトしたviを使うのはとても苦痛です
二、配置YUM
1)初期のCentOS-Base.repoをバックアップする
2)fastmirrorを閉じる
3)カスタムミラーソースを追加し、南方電信用163、北方網通用捜狐;必要ならepelソースを追加
4)yum.confを修正php*5.3、kernel*など、パッケージのアップグレードを排除
三、Selinux、SSHD、iptablesとその他のサービスを設定する
selinuxを閉じるにはsetupまたは/etc/selinux/configを変更することで実現できます.再起動してください.
SSHサービスは、SSH 2プロトコルのみ使用可能、1024ビット暗号化、rootログイン禁止、空パスワード禁止
修正/etc/sysconfig/i 18 n中国語の文字化けしを解決し、不要な多くのシステムサービスを閉鎖する
PuttyやSecureCRTなどのsshクライアントを使用する場合は、上記の例の文字セットに対応する文字セットをUTF 8として指定してください.
四、システムタイムゾーンを修正し、NTPDサービスを配置し、ntpdateというブレークポイント式の時間更新方法を使用することを厳重に提案しないと、深刻な問題を引き起こす可能性がある.
五、Apache+Mysql+PHPをインストールする
Yumのインストールを通じて、過程はとても簡単で、インストールする前にyum list php mysql httpdを覚えていて、取得したパッケージのバージョンが自分で必要かどうかを見てみましょう
六、Proftpdを配置してftpサービスを創立する
PurefptdもProftpdもいいです.PureftpdのRPMパッケージが見つからないし、手動でインストールをコンパイルしたくないのでProftpdを選びました.仮想ユーザー/mysqlもサポートしています.ftpasswdのコマンドを使ってユーザーを作成/修正/削除するときに入力するパラメータは比較的多いです.腐っていますが、簡単にこれらの操作を実行できるスクリプトを書いたことがあります.醜いと書いてあるので、貼らない:-)
七、配置Awstats流量統計
Awstats.orgに最新のRPMパッケージをダウンロードしてインストールすればいいです.もちろん、日単位で統計すると、ApacheではCronologを構成してログポーリングを行います
八、配置サーバー監視報告
1)Logwathを配置してシステム監視を行い、SendmailをサポートしなければMSMTPを配置してSMTPでメールを送ることができる
ビジネスシステムの都合上、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はハンドル数です