[原创]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传到服务器上,进行安装:
rpm -ivh apt-0.5.5cnc6-fr1.i386.rpm
warning: apt-0.5.5cnc6-fr1.i386.rpm: V3 DSA signature: NOKEY, key ID e42d547b Preparing... ########################################### 1:apt ###########################################
有个警告,说NOKEY,下面就导入KEY:
rpm --import http://ftp.freshrpms.net/pub/freshrpms/RPM-GPG-KEY
导入好了就可以唱升级三部曲了
apt-get update apt-get -y dist-upgrade apt-get clean
第一步是检查需要更新的文件列表,很快就好了,第二步是下载并安装更新,在过程中所有回答都答"y",第一次执行这一步很长时间,我这边需要1个多小时,取决于连接更新服务器的网速。服务器好像限速35kB/s。最后一步是删除安装过的更新包。 把更新三部曲加入计划任务,这样可以自动更新了。 vi /etc/crontab 加入:
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
设置每周一2点30分自动唱歌。选择一个负载较轻的时间,希望在升级结束后负载才上升
5.安装网络服务器 先安装简单的MySQL 添加用户和组
groupadd mysql adduser -g mysql mysql
解压缩到/usr/local
cd /usr/local tar -zxvf /home/cs/software/new/mysql-standard-5.0.27-linux-i686-glibc23.tar.gz
文件夹改名为mysql
mv mysql-standard-5.0.27-linux-i686-glibc23 mysql cd mysql
初始化数据库
scripts/mysql_install_db
改权限
chown root -R . chown mysql -R data chgrp mysql -R data
测试启动 bin/mysqld_safe --user=mysql & 看看启动起来没有 netstat -tl | grep mysql 初始化root密码 /usr/local/mysql/bin/mysqladmin -u root password 'rootpwd'
下面安装Apache
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
Apache装好了,配置下conf vi /usr/local/apache/conf/httpd.conf 268行Group #-1改成Group nobody 启动一下 /usr/local/apache/bin/apachectl start
设置开机自动启动 vi /etc/rc.d/rc.local 加入
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
改PATH vi /etc/profile 第42行加PATH="$PATH":/usr/local/mysql/bin:/usr/local/apache/bin 改man vi /etc/man.config 文件最后加入
Apache and MySQL, by CS,2007.4.22
MANPATH /usr/local/mysql/man MANPATH /usr/local/apache/man
安装PHP
tar -zxvf /home/cs/software/new/php-5.2.1.tar.gz cd php-5.2.1
先用目标服务器配置语句试一下,肯定错误,需要的包还没装,为了看出哪些没装,先试试看。
'./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'
提示: configure: error: libxml2 version 2.6.11 or greater required. 那就先装libxml2
cd .. tar -zxvf /home/cs/software/libxml2-2.6.27.tar.gz cd libxml2-2.6.27 ./configure; make ;make install
再回去试试PHP,这回提示 configure: error: Please reinstall the BZip2 distribution 那就再装BZip2
tar -zxvf /home/cs/software/bzip2-1.0.4.tar.gz cd bzip2-1.0.4 make -f Makefile-libbz2_so make ;make install
再去试试PHP,这回提示 configure: error: libpng.(a|so) not found. 再装libpng
tar -zxvf /home/cs/software/libpng-1.2.16.tar.gz cd libpng-1.2.16 ./configure; make ;make install
再来PHP...这回终于好了,容易嘛。 编译安装PHP
make ;make install cp php.ini-dist /usr/local/lib/php.ini vi /usr/local/apache/conf/httpd.conf
838行添加:AddType application/x-httpd-php .php 395行改成:DirectoryIndex index.htm index.html index.php 重启Apache
/usr/local/apache/bin/apachectl stop; /usr/local/apache/bin/apachectl start vi /usr/local/apache/htdocs/test.php
输入
<?php phpinfo();?>在远程浏览器输入地址/test.php看看能否访问。看到界面就可以了。 下面等更新完成后就可以重启了。