比较详细的基于CentOS的WWW服务器架设指南第1/2页

一、系统约定
1、系统环境
Linux:CentOS-4.4.ServerCD
Apache:2.2.4
MySQL:4.0.26
PHP:4.3.11
ZendOptimizer:3.2.2
phpMyAdmin:2.10.0.2

2、源码包存放位置 :/usr/local/src 
#为什么一定要在/usr/local/src/下进行Tarball呢?这仅是约定俗成的,因为如此一来,大家都安装在这个地方,以后主机的维护与移交都很简单,并且对于将来在主机上面进行“升级”与”版本识别“都有很好的帮助。

二、系统环境部署及调优
  1、基本安全设置
  对于一个在Internet上提供服务的主机,安全性很重要,这方面的工作包含主机的包漏洞修补、关闭并不是必须的守护进程(端口)、防火墙配置以及每日的日志分析等。在装完系统后,建议按照以下步骤来进行安全设置:
  1)关闭并不是必须的守护进程(端口)
  CentOS4.4系统安装完成后,一些可能并不是必须的守护进程会启用。禁用非必要的进程会减少系统的内存开销,同时也可以减少系统的安全隐患,可以释放更多的内存空间、减少系统的启动时间、减少CPU处理的进程数量。
  默认情况下,很多守护进程可以安全的在系统下停止和禁用。下表列出了CentOS4.4安装(安装时软件包只选择开发工具一项)的一些守护进程,如果不是必须的你可以考虑禁用这些进程。 进程 描述 
acpid 提供高级电源管理。建议保留 
anacron 一个自动化运行任务守护进程。Red Hat Linux 随带四个自动化任务的工具cron、 anacron、at、和 batc。当你的Linux服务器并不是全天运行,这个anacron就可以帮你执行在"crontab"设定的时间内没有执行的工作。 
apmd apmd(Advanced Power Management)是高级电源管理。传统的电源管理标准,对于笔记本电脑比较有用,可以了解系统的电池电量信息。并将相关信息通过syslogd 写入日志。也可以用来在电源不足时关机。 
atd 计划任务(执行一次)守护进程。建议保留 
autos 自动mount文件系统进程(例如自动mount光驱),在服务器系统上文件系统很少使用自动mount功能。关闭 
cpuspeed 动态调整CPU频率的进程,在服务器系统中这个进程建议关闭。 
crond 计划任务(循环执行)守护进程。建议保留 
cups 通用UNIX打印系统,如果你计划在服务器上运行打印服务就不要关闭这个进程。 
gmp 文本终端的鼠标服务,如果你想在本地文本终端支持鼠标就不要禁用这个进程。 
haldaemon 和Windows的硬件管理类似,挂载U盘等必不可少。建议保留 
iptables 这个是防火墙守护进程,无论如何,先启动它。 
irqbalance 在多个处理器之间平衡中断,如果你使用一个单CPU系统或者你计划静态的平衡中断可以禁用这个进程。 
isdn ISDN调制解调器支持,如果你准备在服务器上支持ISDN调制解调器就不要禁用这个进程。 
kudzu 检测和配置新硬件,如果硬件配置改变了应该手动运行。 
mdmonitor RAID相关设备的守护程序。 
messagebus 挂载U盘时,要确保haldaemon和messagebus服务启动,所以这个也建议保留。 
microcode_ctl 可编码以及发送新的微代码到内核以更新Intel IA32系列处理器守护进程。建议保留 
netfs 用于支持NFS共享,如果你准备在服务器上支持NFS共享就不要禁用这个进程。 
network 激活/关闭启动时的各个网络接口守护进程。 
nfslock 对nfs启用文件锁,如果你准备在服务器上支持NFS共享就不要禁用这个进程。 
pcmcia Pcmcia支持,在服务器上很少使用pcmcia适配器因此可以安全的禁用这个进程。 
portmap 为RPC服务动态分配端口(例如NIS和NFS),如果系统没有支持RPC服务可以禁用这个进程。 
rawdevices 提供对裸设备绑定的支持,如果你不准备在系统中使用裸设备可以禁用这个进程。 
rpcgssd 主要用于NFS和Samba的多个远程调用进程,如果系统没有基于rpc服务的支持,可以禁用这个进程。 
rpcidmapd 同上 
sendmail 邮件传输代理,如果服务器需要支持邮件服务就不要禁用这个进程。 
smartd 使用S.M.A.R.T兼容设备的进程,如果你不是使用IDE/SATA磁盘子系统,可以禁用这个进程。 
sshd OpenSSH服务器守护进程,如果你不需要远程管理主机,可以关闭,不过应该没有几个人不需要这个服务吧。 
syslog 把各类事件写入日志,是相当重要的服务,务必启动。 
xfs X Window的字体服务,如果你的运行级别是5请不要禁用这个进程。 
xinetd 支持多种网络服务的核心守护进程。务必启动。 
[root@localhost ~]# ntsysv
#根据自己的需要,使用ntsysv工具来启用那些里程。
  
[root@localhost ~]# reboot
#重新启动使设置生效

[root@localhost ~]# netstat -an |more
#......信息略......
#检查一下当前开启的端口
#netstat是个很重要的命令,请大家务必掌握,这部份的知识自行在网上查阅。

  2)基本防火墙配置
[root@localhost ~]# /etc/rc.d/init.d/iptables stop 
#防火墙开启
[root@localhost ~]# /etc/rc.d/init.d/iptables start
#防火墙开启
[root@localhost ~]# vi /etc/sysconfig/iptables
#根据自己的情况增加防火墙规则。 
[email=root@localhost]root@localhost[/email] ~]# iptables-save > filename
#上面的命令用于将当前主机上的防火墙规则保存到filename文件。
root@localhost ~]#  iptables-restore < filename
#上面的命令用于将filename防火墙规则文件(注意:不是sehll scripts格式)的规则读入当前Linux主机环境中。

  3)locate命令用数据库更新及自动更新设定
[root@localhost ~]# vi /etc/updatedb.conf
#将“DAILY_UPDATE=no”修改为“DAILY_UPDATE=yes”后保存、退出。
[root@localhost ~]# updatedb
#运行locate数据库更新命令,稍等片刻…更新成功后出现提示符

  4)修改yum仓库的镜象地址,以提高下载速度
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
[root@localhost yum.repos.d]# wget http://mirror.be10.com/centos/4.4/CentOS-Base.repo

  5)停止打印服务
[root@localhost ~]# /etc/rc.d/init.d/cups stop  ← 停止打印服务
Stopping cups:            [ OK ]    ← 停止服务成功,出现“OK”

[root@localhost ~]# chkconfig cups off  ← 禁止打印服务自动启动

[root@localhost ~]# chkconfig --list cups  ← 确认打印服务自启动设置状态
cups 0:off 1:off 2:off 3:off 4:off 5:off 6:off  ← 0-6都为off的状态就OK(当前打印服务自启动被禁止中)

  6)在线升级Linux
[root@localhost ~]# yum update
#通过yum工具更新系统,更新后请重启系统
#yum的用法请见《如何使用yum管理RPM(CentOS)》

2、其它设置
  1)语言环境缺省设置
[root@localhost ~]# vi /etc/sysconfig/i18n
加上如下一行

QUOTE:
LANG="zh_CN.GB18030"

[root@localhost ~]# reboot
#重新启动要设置生效
如果临时需要英文环境,执行以下命令即可。
[root@localhost ~]# export LANG='en_US'  

  2)对TCP/IP网络参数进行调整,加强抗syn_flood能力
[root@localhost ~]# echo 'net.ipv4.tcp_syncookies = 1' >> /etc/sysctl.conf
[root@localhost ~]# sysctl –p

  3)网络校时
[root@localhost ~]# date
#确认系统时间是否正确
[root@localhost ~]# ntpdate 210.72.145.44
#与中国国家授时中心进行时间校正
[root@localhost ~]# yum install ntp
#安装ntpdate程序。系统虽然默认没有安装这个套件,但我们可以很方便的通过yum工具来在线安装。
[root@localhost ~]# crontab -e

[Copy to clipboard] [ - ]
CODE:
0 23 * * * root /usr/sbin/ntpdate 210.72.145.44 > /dev/null 2>&1

#以上命令设置好后存盘。您的机器将在每天的23:00根据中国国家授时中心的NTP服务器时间自动校准时间。
#关于linux下定时执行工具crontab的介绍请见http://hi.baidu.com/monobao/blog/item/01e9ecdcbc6a14a1cc11665b.html

3、安装有依赖关系RPM包
[root@localhost ~]# vi install.sh

[Copy to clipboard] [ - ]
CODE:
yum -y install gcc 
yum install cpp 
yum install gcc-c++ 
yum install ncurses 
yum install ncurses-devel 
yum install gd-devel php-gd 
yum install zlib-devel 
yum install freetype-devel freetype-demos freetype-utils 
yum install libpng-devel libpng10 libpng10-devel 
yum install libjpeg-devel 
yum install ImageMagick 
yum install flex 
yum install ImageMagick-devel

[root@localhost ~]#  sh install.sh 
#为了方便,直接这些软件包在线安装的指令行编写到到脚本(Shell Script)中,下次用到时,你只需执行这个脚本就能自动安装了。因为Shell Script是利用您平日在使用的一些指令,将之组合起来,成为一个"程式"。如果您平日某些序列的指令下得特别频繁,便可以将这些指令组合起来,成为另一个新的指令。这样,不但可以简化并加速操作速度,甚至还可以乾脆自动定期执行,大大简化系统管理工作。

下面正式步入LAMP的的安装步骤,开始安装之前,先了解一下源码编译方面的知识,参考文献《Linux系统管理员(二)---套件管理RPM与Tarball》。

三、安装Mysql
1、建立msyql用户组
[root@localhost ~]# grep mysql /etc/group 
#查询系统中是否有mysql这个用户组,没有则添加。
[root@localhost ~]# groupadd mysql 
#增加一个名为mysql的用户组

2、建立mysql用户
[root@localhost ~]# grep mysql /etc/passwd
#查询系统中是否有mysql这个用户,没有则添加。
[root@localhost ~]# useradd mysql -g mysql -M -s /sbin/nologin
#增加一个名为mysql的用户。
-g:指定新用户所属的用户组(group)
-M:不建立根目录
-s:定义其使用的shell,/sbin/nologin代表用户不能登录系统。

3、下载:mysql-4.0.26
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget http://ftp.gamearena.cn/software/mysql-4.0.26.tar.gz
#......(信息略)......
[root@localhost src]# chmod +x mysql-4.0.26.tar.gz
#修改文件权限为755
[root@localhost src]# tar -zxvf mysql-4.0.26.tar.gz
#......(信息略)......
#解压缩
PS:当你在www.mysql.com下载MySQL的时候,会发现有binary/rpm/source三种包。binary distribution是由mysql官方优化编译好的,不需要make。

3、设置编译器的编译参数
[root@localhost src]# cd /usr/local/src/mysql-4.0.26
[root@localhost mysql-4.0.26]# ./configure --prefix=/usr/local/mysql --with-unix-socket-path=/tmp/mysql.sock --localstatedir=/usr/local/mysql/data --with-charset=gbk --without-debug --enable-assembler --without-isam --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
#这些设置告诉编译器如何编译apache:
--prefix=/usr/local/mysql 
指定msyql安装目录
--with-unix-socket-path=/tmp/mysql.sock
这个是指定mysql服务器启动后,联机套接字文件所处的位置和文件名。
--localstatedir=/usr/local/mysql/data
指定mysql的数据库目录
--with-charset=gbk 
添加gbk中文字符支持
--without-debug
去除debug模式
--enable-assembler
使用一些字符函数的汇编版本
--without-isam
去掉isam表类型支持,现在很少用了,isam表是一种依赖平台的表
--with-client-ldflags=-all-static
--with-mysqld-ldflags=-all-static

4、编译和安装
[root@localhost mysql-4.0.26]# make
#“make”命令把源文件编译成可执行的二进制文件
[root@localhost mysql-4.0.26]# make install
#“make install”把二进制文件和配置文件安装在合适的目录下

6、初始化系统库
[root@localhost mysql-4.0.26]# ./scripts/mysql_install_db

当前1/2页 12下一页阅读全文

(0)

相关推荐

  • CentOS 5.1 4.6最新官方下载地址列表

    centos i386 5.1Actual Country - http://mirror.centos.net.cn/5.1/isos/i386/http://centos.candishosting.com.cn/5.1/isos/i386/http://mirror.be10.com/centos/5.1/isos/i386/http://ftp.hostrino.com/pub/centos/5.1/isos/i386/http://centos.ustc.edu.cn/centos/5

  • 64位CentOS 6.0下搭建LAMP环境详细步骤

    1.确认搭建LAMP所需要的环境是否已经安装 [root@centos6 ~]# rpm -q make gcc gcc-c++ zlib-devel libaio 备注:安装libpng时候需要zlib-devel              安装mysql时候需要libaio 2.如果没安装则yum安装 [root@centos6 ~]# yum install make gcc gcc-c++ zlib-devel libaio -y 3.由于要使用编译安装,所以查看httpd.mysql.

  • CentOS 6.3编译安装LAMP环境笔记

    最近抽空在虚拟机上测试成功了LAMP各个最新版本的整合编译安装,算是把之前的博文整合精简,以下内容均在CENTOS6.3(安装minimal desktop和默认开发包)下测试安装成功,并做了相应优化配置,如有遗漏,还请留言指教.   LINUX操作系统:centOS6.3 64bit(安装了系统默认开发包) APACHE:httpd-2.4.4 MYSQL:mysql-5.6.10 PHP:php-5.4.13 注:推荐安装centos6.3系统时,在系统安装向导中.将默认开发包勾上,避免后期

  • CentOS的图形安装及初始环境设置教程

    对于安装,我们的原则就是在初期按装时采用最小安装,这样使得初期状态显得干净而简洁.在以后的配置中,需要哪些组件的时候,再通过CentOS的"yum"命令(前提需要首先接入互联网)来在线安装. CentOS 4.4 的下载及安装光盘的制作 [第一步] 从镜像站点上下载ISO的镜像文件     CD 1 : http://mirror.tini4u.net/centos/ ... .4-i386-bin1of4.iso CD 2 : http://mirror.tini4u.net/cen

  • 在CentOS上MySQL数据库服务器配置方法

    无意中还找到了CentOS的专业论坛,记住:http://www.centospub.com 于是,开始的学习配置 本次环境: CentOS系统, mysql-server(版本忘了,因为是使用yum安装的) 过程如下(转载,根据本人安装详细要求,略加修改) : 在提到网站构架的时候,我们经常能够看到"LAMP"的说法,它就是"Linux + Apache + MySQL + PHP". MySQL+PHP的协同成功案例已经很多了.比如国外的PHPBB,VBB,国内

  • CentOS系统通过日志反查是否被入侵

    一.查看日志文件 Linux查看/var/log/wtmp文件查看可疑IP登陆 last -f /var/log/wtmp 该日志文件永久记录每个用户登录.注销及系统的启动.停机的事件.因此随着系统正常运行时间的增加,该文件的大小也会越来越大, 增加的速度取决于系统用户登录的次数.该日志文件可以用来查看用户的登录记录,last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户.终端tty或时间显示相应的记录. 查看/var/log/secure文件寻找可

  • centos系统下LNMP环境一键安装

    首先,咱们用SSH登陆到操作系统中- 然后下载安装包 复制代码 代码如下: wget http://catlnmp.googlecode.com/files/lnmp1.1.zip 然后我们解压 复制代码 代码如下: unzip lnmp1.1.zip 有些没有unzip的,我们这样 复制代码 代码如下: yum install unzip 然后我们跳转到该目录 复制代码 代码如下: cd lnmp 然后我们给文件添加权限: 复制代码 代码如下: chmod +x install.sh apc.

  • linux服务器用centos还是ubuntu系统

    linux服务器系统多使用CentOS.uBuntu.Gentoo.FreeBSD.Debian. 服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS ,CENTOS现在市场占有率第一了 [小议]centos与ubuntu的区别 CentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成.由于出自同样的源代码,因此有些要求高

  • centos系统升级python 2.7.3

    首先下载源tar包 可利用linux自带下载工具wget下载,如下所示: wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz 下载完成后到下载目录下,解压 tar -zxvf Python-2.7.3.tgz 进入解压缩后的文件夹 cd Python-2.7.3 在编译前先在/usr/local建一个文件夹python27(作为python的安装路径,以免覆盖老的版本) mkdir /usr/local/python2.7.3

  • CentOS下.htaccess不起作用的解决方法

    结果点击一个链接直接404 Not Found.悲剧,看来Apache的Rewrite部分有问题了,完全无视掉了.htaccess文件!经过检查Apache的模块,发现Rewrite模块是开启的状态,看来是httpd.conf文件中的配置有点问题了.回想起之前在Ubuntu Server下配置Rewrite也是启用了一个叫做"AllowOverride"的属性为"All"才正确开启了Rewrite,这次手动配置VirtualHost的时候并没有写上这两句,看来就是这

  • centos下更新Python版本的步骤

    安装完CentOS5.9(Final)后,执行#Python与#python -V,看到版本号是2.4.3,很老了,而且之前写的都是跑在python3.X上面的,3.X和2.X有很多不同,有兴趣的朋友可以参考下这篇文章: http://www.jb51.net/article/34011.htm 更新python千万不要把老版本的删除!新老版本是可以共存的,很多基本的命令.软件包都要依赖预装的老版本python的,比如yum. 更新python: 第1步:更新gcc,因为gcc版本太老会导致新版

随机推荐