发新话题
打印

CentOS系统及服务器环境部署菜鸟教程(L.A.M.P环境)

CentOS系统及服务器环境部署菜鸟教程(L.A.M.P环境)

一、
系统约定

RPM包和源码包存放位置
        /usr/local/src
源码包编译安装位置(prefix)
        /usr/local/xxx
脚本以及维护程序存放位置
        /usr/local/sbin
MySQL 数据库位置
        /var/lib/mysql
Apache 网站根目录
        /data/wwwroot
Apache 虚拟主机日志根目录
        /data/logs/www
Apache 运行账户
        www:www
yum RPM包信息文件
        /etc/yum.list


二、系统环境部署及调整
1. 检查系统是否正常
   # more /var/log/messages     (检查有无系统内核级错误信息)

# demesg (检查硬件设备是否有错误信息)
   # ifconfig(检查网卡设置是否正确)
   # ping www.sina.com.cn      (检查网络是否正常)

2. 关闭不需要的服务
   # ntsysv
   以下仅列出需要启动的服务,未列出的服务一律关闭:
   crond

irqbalance (仅当服务器CPU为S.M.P架构或支持双核心、HT技术时,才
需开启,否则关闭。)
   microcode_ctl

network

random

sendmail

sshd

syslog

3. 对TCP/IP网络参数进行调整,加强抗SYN Flood能力

# echo 'net.ipv4.tcp_syncookies = 1' >> /etc/sysctl.conf

# sysctl -p

4. 配置yum

# rpm --import /usr/share/doc/centos-release-3/RPM-GPG-KEY-CentOS-3

# yum list | tee /etc/yum.list

5. 修改命令history记录

# vi /etc/profile
     找到 HISTSIZE=1000 改为 HISTSIZE=50



6. 定时校正服务器时间

# yum install ntp

# crontab -e
加入一行:
*/15 * * * * ntpdate 210.72.145.44

7. 重新启动系统

# init 6

8. 使用 yum 程序安装所需开发包(以下为标准的 RPM 包名称)

gcc

gcc-c++

gcc-g77

flex

autoconf

bzip2-devel

ncurses-devel

libjpeg-devel

libpng-devel

libtiff-devel

freetype-devel

pam-devel


9. 源码编译安装所需包(Source)

(1) GD2

# cd /usr/local/src

# wget http://download.discuz.net/env/gd-2.0.33.tar.gz

# tar xzvf gd-2.0.33.tar.gz

# cd gd-2.0.33

# ./configure --prefix=/usr/local/gd2 --mandir=/usr/share/man

# make

# make install


(1) Apache日志截断程序
    # cd /usr/local/src


# wget http://download.discuz.net/env/cronolog-1.6.2.tar.gz


# tar xzvf cronolog-1.6.2.tar.gz


# cd cronolog-1.6.2



# ./configure –prefix=/usr/local/cronolog



# make

# make install



10. 升级OpenSSL和OpenSSH

# cd /usr/local/src

# wget http://download.discuz.net/env/openssl-0.9.7j.tar.gz

# wget http://download.discuz.net/env/openssh-4.2p1.tar.gz

# tar xzvf openssl-0.9.7j.tar.gz

# cd openssl-0.9.7j

# ./config --prefix=/usr/local/openssl

# make

# make test

# make install

# cd ..

# tar xzvf openssh-4.2p1.tar.gz

# cd openssh-4.2p1


# ./configure --prefix=/usr --with-pam --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/openssl --with-md5-passwords --mandir=/usr/share/man

# make

# make install
    禁止root直接登录,此处先建立一个普通系统用户:

# useradd username

# passwd username

# echo 'Protocol 2' >> /etc/ssh/sshd_config

# echo 'Protocol 2' >> /usr/etc/sshd_config

# echo 'PermitRootLogin no' >> /etc/ssh/sshd_config

# echo 'PermitRootLogin no' >> /usr/etc/sshd_config

# /etc/rc.d/init.d/sshd restart

三、编译安装L.A.M.P环境
1. 下载软件

# cd /usr/local/src

# wget http://download.discuz.net/env/httpd-2.0.59.tar.bz2

# wget http://download.discuz.net/env/mysql-5.0.24a.tar.gz

# wget http://download.discuz.net/env/php-4.4.4.tar.bz2
# wget http://download.discuz.net/env/Z ... glibc21-i386.tar.gz

2. 编译安装MySQL

# tar xzvf mysql-5.0.24a.tar.gz

# cd mysql-5.0.24a

# CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" ./configure --prefix=/usr/local/mysql --localstatedir=/var/lib/mysql --mandir=/usr/share/man --with-mysqld-user=mysql --without-debug --with-zlib --with-big-tables --with-charset=gbk --with-collation=latin1 --with-extra-charsets=all --with-server-suffix=-Comsenz --with-pthread --with-raid --enable-thread-safe-client --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --enable-assembler --without-isam --without-innodb

# make

# make install
# useradd mysql

# cd /usr/local/mysql

# bin/mysql_install_db --user=mysql

# chown -R root:mysql .


# chown -R mysql /var/lib/mysql
# cp share/mysql/my-huge.cnf /etc/my.cnf

# cp share/mysql/mysql.server /etc/rc.d/init.d/mysqld

# chmod 755 /etc/rc.d/init.d/mysqld

# chkconfig --add mysqld

# /etc/rc.d/init.d/mysqld start
# bin/mysql -u root password "password_for_root"

3. 编译安装Apache

# cd /usr/local/src
# tar xjvf httpd-2.0.59.tar.bz2
# cd httpd-2.0.59

# CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" ./configure --prefix=/usr/local/apache2 --mandir=/usr/share/man --enable-module=so --enable-deflate=shared --enable-expires=shared
--enable-rewrite --enable-gzip --enable-cache --enable-file-cache --enable-mem-cache --enable-disk-cache --enable-static-support --enable-static-htpasswd --enable-static-htdigest --enable-static-rotatelogs --enable-static-logresolve --enable-static-htdbm --enable-static-ab --enable-static-checkgid --disable-cgid --disable-cgi --disable-userdir --disable-asis

# make
# make install
# echo '/usr/local/apache2/bin/apachectl start ' >> /etc/rc.local


4. 编译安装PHP

# cd /usr/local/src

# tar xjvf php-4.4.4.tar.bz2

# cd php-4.4.4

# CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-zlib-dir --with-bz2 --with-tiff-dir
--with-gd=/usr/local/gd2 --with-freetype-dir --with-jpeg-dir --with-png-dir --with-ttf --enable-mbstring --with-mysql=/usr/local/mysql --with-config-file-path=/etc --disable-ipv6 --enable-static

# make

# make install
# cp php.ini-dist /etc/php.ini

5. 安装Zend Optimizer

# cd /usr/local/src

# tar xzvf ZendOptimizer-3.0.1-linux-glibc21-i386.tar.gz
# ./ZendOptimizer-3.0.1-linux-glibc21-i386/install.sh
    安装Zend Optimizer过程的最后不要选择重启Apache。

6. 整合Apache与PHP
# vi /usr/local/apache2/conf/httpd.conf
找到:
AddType application/x-gzip .gz .tgz
在该行下面添加:
AddType application/x-httpd-php .php

找到:
DirectoryIndex index.html index.html.var
将该行改为
DirectoryIndex index.html index.htm index.php
修改完成后保存退出。
# /usr/local/apache2/bin/apachectl restart


7. 查看确认L.A.M.P环境信息

# echo '#!/usr/local/php/bin/php \
<?php \

phpinfo(); \

?>
' > /usr/local/php/phpinfo.php

# chmod 755 /usr/local/php/phpinfo.php

# /usr/local/php/phpinfo.php > /usr/local/php/phpinfo

# more /usr/local/php/phpinfo



检查phpinfo中的各项信息是否正确。

三、服务器安全性设置
1. 设置系统防火墙

# touch /usr/local/sbin/fw.sh
       将以下脚本命令粘贴到 fw.sh 文件中。
#! /bin/bash

# Set FTP Transfer Mode
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp

# Inital iptables Chains Policy
/sbin/iptables -F -t filter
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT

# Enable Native Network Transfer
/sbin/iptables -A INPUT -i lo -j ACCEPT

# ICMP Control
/sbin/iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT

# WWW Service
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# FTP Service
/sbin/iptables -A INPUT -p tcp --dport 21 -j ACCEPT

# SSH Service
/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Deny All Other Connections
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


# chmod 755 /usr/local/sbin/fw.sh

# echo '/usr/local/sbin/fw.sh' >> /etc/rc.local

# /usr/local/sbin/fw.sh



====== THE   END ======

TOP

发新话题