比較詳細的基於CentOS的WWW伺服器架設指南第1/2頁

NO IMAGE

一、系統約定
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 支援多種網路服務的核心守護程序。務必啟動。 
[[email protected] ~]# ntsysv
#根據自己的需要,使用ntsysv工具來啟用那些里程。
  
[[email protected] ~]# reboot
#重新啟動使設定生效

[[email protected] ~]# netstat -an |more
#……資訊略……
#檢查一下當前開啟的埠
#netstat是個很重要的命令,請大家務必掌握,這部份的知識自行在網上查閱。

  2)基本防火牆配置
[[email protected] ~]# /etc/rc.d/init.d/iptables stop 
#防火牆開啟
[[email protected] ~]# /etc/rc.d/init.d/iptables start
#防火牆開啟
[[email protected] ~]# vi /etc/sysconfig/iptables
#根據自己的情況增加防火牆規則。 
root@localhost ~]# iptables-save > filename
#上面的命令用於將當前主機上的防火牆規則儲存到filename檔案。
[email protected] ~]#  iptables-restore < filename
#上面的命令用於將filename防火牆規則檔案(注意:不是sehll scripts格式)的規則讀入當前Linux主機環境中。

  3)locate命令用資料庫更新及自動更新設定
[[email protected] ~]# vi /etc/updatedb.conf
#將“DAILY_UPDATE=no”修改為“DAILY_UPDATE=yes”後儲存、退出。
[[email protected] ~]# updatedb
#執行locate資料庫更新命令,稍等片刻…更新成功後出現提示符

  4)修改yum倉庫的鏡象地址,以提高下載速度
[[email protected] ~]# cd /etc/yum.repos.d/
[[email protected] yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
[[email protected] yum.repos.d]# wget http://mirror.be10.com/centos/4.4/CentOS-Base.repo

  5)停止列印服務
[[email protected] ~]# /etc/rc.d/init.d/cups stop  ← 停止列印服務
Stopping cups:            [ OK ]    ← 停止服務成功,出現“OK”

[[email protected] ~]# chkconfig cups off  ← 禁止列印服務自動啟動

[[email protected] ~]# chkconfig –list cups  ← 確認列印服務自啟動設定狀態
cups 0:off 1:off 2:off 3:off 4:off 5:off 6:off  ← 0-6都為off的狀態就OK(當前列印服務自啟動被禁止中)

  6)線上升級Linux
[[email protected] ~]# yum update
#通過yum工具更新系統,更新後請重啟系統
#yum的用法請見《如何使用yum管理RPM(CentOS)》

2、其它設定
  1)語言環境預設設定
[[email protected] ~]# vi /etc/sysconfig/i18n
加上如下一行

QUOTE:
LANG=”zh_CN.GB18030″

[[email protected] ~]# reboot
#重新啟動要設定生效
如果臨時需要英文環境,執行以下命令即可。
[[email protected] ~]# export LANG=’en_US’  

  2)對TCP/IP網路引數進行調整,加強抗syn_flood能力
[[email protected] ~]# echo ‘net.ipv4.tcp_syncookies = 1’ >> /etc/sysctl.conf
[[email protected] ~]# sysctl –p

  3)網路校時
[[email protected] ~]# date
#確認系統時間是否正確
[[email protected] ~]# ntpdate 210.72.145.44
#與中國國家授時中心進行時間校正
[[email protected] ~]# yum install ntp
#安裝ntpdate程式。系統雖然預設沒有安裝這個套件,但我們可以很方便的通過yum工具來線上安裝。
[[email protected] ~]# 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包
[[email protected] ~]# 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 

[[email protected] ~]#  sh install.sh 
#為了方便,直接這些軟體包線上安裝的指令行編寫到到指令碼(Shell Script)中,下次用到時,你只需執行這個指令碼就能自動安裝了。因為Shell Script是利用您平日在使用的一些指令,將之組合起來,成為一個”程式”。如果您平日某些序列的指令下得特別頻繁,便可以將這些指令組合起來,成為另一個新的指令。這樣,不但可以簡化並加速操作速度,甚至還可以乾脆自動定期執行,大大簡化系統管理工作。

下面正式步入LAMP的的安裝步驟,開始安裝之前,先了解一下原始碼編譯方面的知識,參考文獻《Linux系統管理員(二)—套件管理RPM與Tarball》。

三、安裝Mysql
1、建立msyql使用者組
[[email protected] ~]# grep mysql /etc/group 
#查詢系統中是否有mysql這個使用者組,沒有則新增。
[[email protected] ~]# groupadd mysql 
#增加一個名為mysql的使用者組

2、建立mysql使用者
[[email protected] ~]# grep mysql /etc/passwd
#查詢系統中是否有mysql這個使用者,沒有則新增。
[[email protected] ~]# useradd mysql -g mysql -M -s /sbin/nologin
#增加一個名為mysql的使用者。
-g:指定新使用者所屬的使用者組(group)
-M:不建立根目錄
-s:定義其使用的shell,/sbin/nologin代表使用者不能登入系統。

3、下載:mysql-4.0.26
[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# wget http://ftp.gamearena.cn/software/mysql-4.0.26.tar.gz
#……(資訊略)……
[[email protected] src]# chmod  x mysql-4.0.26.tar.gz
#修改檔案許可權為755
[[email protected] src]# tar -zxvf mysql-4.0.26.tar.gz
#……(資訊略)……
#解壓縮
PS:當你在www.mysql.com下載MySQL的時候,會發現有binary/rpm/source三種包。binary distribution是由mysql官方優化編譯好的,不需要make。

3、設定編譯器的編譯引數
[[email protected] src]# cd /usr/local/src/mysql-4.0.26
[[email protected] 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、編譯和安裝
[[email protected] mysql-4.0.26]# make
#“make”命令把原始檔編譯成可執行的二進位制檔案
[[email protected] mysql-4.0.26]# make install
#“make install”把二進位制檔案和配置檔案安裝在合適的目錄下

6、初始化系統庫
[[email protected] mysql-4.0.26]# ./scripts/mysql_install_db
12下一頁閱讀全文

您可能感興趣的文章:

在CentOS上MySQL資料庫伺服器配置方法linux伺服器用centos還是ubuntu系統centos下更新Python版本的步驟64位CentOS 6.0下搭建LAMP環境詳細步驟CentOS 5.1 4.6最新官方下載地址列表centos系統升級python 2.7.3CentOS 6.3編譯安裝LAMP環境筆記CentOS的圖形安裝及初始環境設定教程CentOS下.htaccess不起作用的解決方法centos系統下LNMP環境一鍵安裝CentOS系統通過日誌反查是否被入侵