[原创]Linux服务器配置全记录

Linux服务器配置全记录
这是一台WEB服务器,主要提供BBS及BLOG服务。在线用户最大值5000,平均2000-3000。负载不是很高,但数据量还是比较大的。
服务器采用双CPU,3GB内存。
系统使用RedHat Linux 9.2 中文版。


1.系统安装
Linux安装很简单,需要注意的就是硬盘的划分要仔细琢磨琢磨,免得送到机房再后悔,就麻烦了。磁盘的划分要根据自己服务器的特点量体裁衣,比如今天这台服务器,主要服务在于WEB服务,因此WEB根目录空间和数据库空间是大头。
挂载点 容量
/ 4GB
/boot 1GB
/tmp 6GB
/var 15GB
/home 80GB (WEB根目录在这个目录里)
/usr 30GB (MySQL数据文件在这个目录里)
Swap 4GB (一般跟内存一样大,考虑今后升级,凑个2的幂次)
总计 140GB
这块希捷10K.7硬盘147GB,实际可用140GB多一点点,还算不错的
另外一个值得提一提的是Linux软件包的选择。万万不可采取全选软件包之类的懒人做法。一定要根据自己的需要选择软件包。这里,我没有选择任何服务器程序,准备自己安装。
装好之后进入系统,GRUB默认等待10秒才进入Linux,无疑浪费服务器启动时间,vi编辑/etc/grub.conf,把timeout设成1,变成1秒等待。

2.驱动程序安装
一般来说,Linux可以神奇地认出很多硬件,但是万一某个硬件不认识,那可就麻烦大了,说句实话,自己找驱动装驱动还不如买个Linux认识的硬件来的方便。在我的测试机上,Linux不认识板载集成网卡…这可就麻烦了。抱着试试看的态度,翻出主板说明书,查出网卡芯片类型(注意是网卡芯片,不是主板)到网上一搜,发现某主板商(非我的那个主板)也采用这块芯片的主板中提供了Linux驱动,下载后刻盘拷贝到机器上安装,重启,启动中认出网卡,进入网络设置。这算运气比较好的。

3.网络安全配置
希望Linux上服务越少越好。这里用ntsysv取消isdn,netfs,nfslock,pcmcia,rhnsd,sendmail这几个服务
防火墙打开需要的端口,80,21,22

4.系统更新及升级
RedHat Linux自带up2date软件可以进行升级,但是由于各种原因(up2date程序bug,RHN限制免费用户带宽等等),up2date几乎没有成功工作的时候。这里我采用APT来进行升级。APT的下载地址在:http://ftp.freshrpms.net/pub/freshrpms/redhat/9/apt/apt-0.5.5cnc6-fr1.i386.rpm,下载后SSH传到服务器上,进行安装:
[code=’c#’]
rpm -ivh apt-0.5.5cnc6-fr1.i386.rpm
[/code]

[code=’c#’]
warning: apt-0.5.5cnc6-fr1.i386.rpm: V3 DSA signature: NOKEY, key ID e42d547b
Preparing… ########################################### [100%]
1:apt ########################################### [100%]
[/code]
有个警告,说NOKEY,下面就导入KEY:
[code=’c#’]
rpm –import http://ftp.freshrpms.net/pub/freshrpms/RPM-GPG-KEY
[/code]
导入好了就可以唱升级三部曲了
[code=’c#’]
apt-get update
apt-get -y dist-upgrade
apt-get clean
[/code]
第一步是检查需要更新的文件列表,很快就好了,第二步是下载并安装更新,在过程中所有回答都答”y”,第一次执行这一步很长时间,我这边需要1个多小时,取决于连接更新服务器的网速。服务器好像限速35kB/s。最后一步是删除安装过的更新包。
把更新三部曲加入计划任务,这样可以自动更新了。
[code=’c#’]vi /etc/crontab[/code]
加入:
[code=’c#’]
# RedHat Linux 9 Auto Update, by CS, 2007.4.22
30 2 * * 1 root apt-get update; apt-get -y dist-upgrade; apt-get clean
[/code]
设置每周一2点30分自动唱歌。选择一个负载较轻的时间,希望在升级结束后负载才上升

5.安装网络服务器
先安装简单的MySQL
添加用户和组
[code=’c#’]
groupadd mysql
adduser -g mysql mysql
[/code]
解压缩到/usr/local
[code=’c#’]
cd /usr/local
tar -zxvf /home/cs/software/new/mysql-standard-5.0.27-linux-i686-glibc23.tar.gz
[/code]
文件夹改名为mysql
[code=’c#’]
mv mysql-standard-5.0.27-linux-i686-glibc23 mysql
cd mysql
[/code]
初始化数据库
[code=’c#’]
scripts/mysql_install_db
[/code]

改权限
[code=’c#’]
chown root -R .
chown mysql -R data
chgrp mysql -R data
[/code]
测试启动
[code=’c#’]bin/mysqld_safe –user=mysql &[/code]
看看启动起来没有
[code=’c#’]netstat -tl | grep mysql[/code]
初始化root密码
[code=’c#’]/usr/local/mysql/bin/mysqladmin -u root password ‘rootpwd'[/code]

下面安装Apache
[code=’c#’]
cd /usr/local/src
tar -zxvf /home/cs/software/new/httpd-2.0.59.tar.gz
cd httpd-2.0.59
./configure –prefix=/usr/local/apache –enable-so –enable-rewrite
make;make install
[/code]
Apache装好了,配置下conf
[code=’c#’]vi /usr/local/apache/conf/httpd.conf[/code]
268行Group #-1改成Group nobody
启动一下
[code=’c#’]/usr/local/apache/bin/apachectl start[/code]

设置开机自动启动
[code=’c#’]vi /etc/rc.d/rc.local[/code]
加入
[code=’c#’]
# MySQL Auto Start, by CS, 2007.4.22
cd /usr/local/mysql; /usr/local/mysql/bin/mysqld_safe –user=mysql &
# Apache Auto Start, by CS, 2007.4.22
/usr/local/apache/bin/apachectl start
[/code]
改PATH
[code=’c#’]vi /etc/profile[/code]
第42行加PATH=”$PATH”:/usr/local/mysql/bin:/usr/local/apache/bin
改man
[code=’c#’]vi /etc/man.config[/code]
文件最后加入
[code=’c#’]
# Apache and MySQL, by CS,2007.4.22
MANPATH /usr/local/mysql/man
MANPATH /usr/local/apache/man
[/code]

安装PHP
[code=’c#’]
tar -zxvf /home/cs/software/new/php-5.2.1.tar.gz
cd php-5.2.1
[/code]
先用目标服务器配置语句试一下,肯定错误,需要的包还没装,为了看出哪些没装,先试试看。
[code=’c#’]
‘./configure’ ‘–with-mysql=/usr/local/mysql’ ‘–with-apxs2=/usr/local/apache/bin/apxs’ ‘–with-zlib’ ‘–with-bz2’ ‘–with-gd’ ‘–with-png-dir=/usr/lib’ ‘–with-zip-dir=/usr/lib’ ‘–enable-track-vars’ ‘–enable-exif’ ‘–enable-mbstring’
[/code]
提示:
[code=’c#’]configure: error: libxml2 version 2.6.11 or greater required.[/code]
那就先装libxml2
[code=’c#’]
cd ..
tar -zxvf /home/cs/software/libxml2-2.6.27.tar.gz
cd libxml2-2.6.27
./configure; make ;make install
[/code]
再回去试试PHP,这回提示
[code=’c#’]configure: error: Please reinstall the BZip2 distribution[/code]
那就再装BZip2
[code=’c#’]
tar -zxvf /home/cs/software/bzip2-1.0.4.tar.gz
cd bzip2-1.0.4
make -f Makefile-libbz2_so
make ;make install
[/code]
再去试试PHP,这回提示
[code=’c#’]configure: error: libpng.(a|so) not found.[/code]
再装libpng
[code=’c#’]
tar -zxvf /home/cs/software/libpng-1.2.16.tar.gz
cd libpng-1.2.16
./configure; make ;make install
[/code]
再来PHP…这回终于好了,容易嘛。
编译安装PHP
[code=’c#’]
make ;make install
cp php.ini-dist /usr/local/lib/php.ini
vi /usr/local/apache/conf/httpd.conf
[/code]
838行添加:[code=’c#’]AddType application/x-httpd-php .php[/code]
395行改成:[code=’c#’]DirectoryIndex index.htm index.html index.php[/code]
重启Apache
[code=’c#’]
/usr/local/apache/bin/apachectl stop; /usr/local/apache/bin/apachectl start
vi /usr/local/apache/htdocs/test.php
[/code]
输入
[code=’c#’]

[/code]
在远程浏览器输入地址/test.php看看能否访问。看到界面就可以了。
下面等更新完成后就可以重启了。

发表评论