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

來源:互聯網
上載者:User

一、系統約定
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的硬體管理類似,掛載隨身碟等必不可少。建議保留
iptables 這個是防火牆守護進程,無論如何,先啟動它。
irqbalance 在多個處理器之間平衡中斷,如果你使用一個單CPU系統或者你計劃靜態平衡中斷可以禁用這個進程。
isdn ISDN數據機支援,如果你準備在伺服器上支援ISDN數據機就不要禁用這個進程。
kudzu 檢測和配置新硬體,如果硬體設定改變了應該手動運行。
mdmonitor RAID相關裝置的精靈。
messagebus 掛載隨身碟時,要確保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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.