茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1675432 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
F09_646.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

小企鵝開談 : [轉貼]LAMP網站軟件開發環境匯總

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]LAMP網站軟件開發環境匯總
一直非常喜歡LINUX操作系統,作為LINUX系統的元老產品也有其獨到之處。

系統部署
一.系統環境預設
軟件源代碼包存放位置 /usr/local/src
源碼包編譯安裝位置(prefix) /usr/local/software_name
腳本以及維護程序存放位置 /usr/local/sbin
MySQL 數據庫位置 /var/lib/mysql
Apache 網站根目錄 /home/www/wwwroot
Apache 虛擬主機日誌根目錄 /home/www/logs
Apache 運行帳戶 www:www

二.系統環境部署及調整
1.檢查系統是否正常
# more /var/log/messages        (檢查有無系統級錯誤信息)
# dmesg (檢查硬件設備是否有錯誤信息)
# ifconfig(檢查網卡設置是否正確)
# ping www.britepic.org        (檢查網絡是否正常)


2.關閉不需要的服務
# ntsysv
以下僅列出需要啟動的服務,未列出的服務一律關閉:
atd
crond
irqbalance
microcode_ctl
network
sendmail
sshd
syslog


3.重新啟動系統
# init 6


4.配置 vim
# vi /root/.bashrc
在 alias mv='mv -i' 下面添加一行:alias vi='vim' 保存退出。
# echo 'syntax on' > /root/.vimrc


5.使用yum程序安裝所需軟件包(以下為標準的RPM包名稱)
# yum install ntp vim-enhanced gcc gcc-c++ flex bison autoconf automake \
> bzip2-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel \
> freetype-devel pam-devel kernel


6.定時校正服務器時鐘,定時與中國國家授時中心授時服務器同步
# crontab -e
加入一行:
*/30 * * * * ntpdate 210.72.145.44


7.源代碼編譯安裝所需包
(1) GD2
# cd /usr/local/src
# wgethttp://www.libgd.org/releases/oldreleases/gd-2.0.34.tar.gz
# tar xzvf gd-2.0.34.tar.gz
# cd gd-2.0.34
# ./configure --prefix=/usr/local/gd2
# make
# make install


(2) LibXML2
# cd /usr/local/src
# wget ftp://xmlsoft.org/libxml2/libxml2-2.6.29.tar.gz
# tar xzvf libxml2-2.6.29.tar.gz
# cd libxml2-2.6.29
# ./configure --prefix=/usr/local/libxml2
# make
# make install


(3) LibMcrypt
# cd /usr/local/src
#wgethttp://jaist.dl.sourceforge.net/ ... crypt-2.5.8.tar.bz2
# tar xjvf libmcrypt-2.5.8.tar.bz2
# cd libmcrypt-2.5.8
# ./configure –prefix=/usr/local/libmcrypt
# make
# make install


(4) Apache 日誌截斷程序
# cd /usr/local/src
# wgethttp://cronolog.org/download/cronolog-1.6.2.tar.gz
# tar xzvf cronolog-1.6.2.tar.gz
# cd cronolog-1.6.2
# ./configure –prefix=/usr/local/cronolog
# make
# make install


8.升級OpenSSL和OpenSSH
# cd /usr/local/src
# wgethttp://www.openssl.org/source/openssl-0.9.8e.tar.gz
# wgethttp://mirror.mcs.anl.gov/openssh/portable/openssh-4.6p1.tar.gz
# tar xzvf openssl-0.9.8e.tar.gz
# cd openssl-0.9.8e
# ./config --prefix=/usr/local/openssl
# make
# make test
# make install
# cd ..
# tar xzvf openssh-4.6p1.tar.gz
# cd openssh-4.6p1
# ./configure  \
"--prefix=/usr" \
"--with-pam" \
"--with-zlib" \
"--sysconfdir=/etc/ssh" \
"--with-ssl-dir=/usr/local/openssl" \
"--with-md5-passwords"
# make
# make install


(1)禁用 SSH V1 協議
找到:#Protocol 2,1
改為:Protocol 2

(2)禁止root直接登錄
此處先建立一個普通系統用戶:
# useradd username
# passwd username
找到:#PermitRootLogin yes
改為:PermitRootLogin no

(3)禁用服務器端GSSAPI
找到以下兩行,並將它們註釋:
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes

(4)禁用 DNS 名稱解析
找到:#UseDNS yeas
改為:UseDNS no

(5)禁用客戶端 GSSAPI
# vi /etc/ssh/ssh_config
找到:GSSAPIAuthentication yes
將這行註釋掉。
最後,確認修改正確後重新啟動 SSH 服務
# service sshd restart
# ssh -v
確認 OpenSSH 以及 OpenSSL 版本正確。


安裝前準備
一、清除軟件包

安裝之前,我們需要到相應的網站上,下載安裝所需要的軟件源代碼文件。包括最新的Apache、MySQL、PHP以及相關庫文件的源碼包。本書的源代碼包安裝方式,使用的Linux操作系統主要以Red HatLinux操作系統系列為主。

把下載的所有源代碼包都放到Linux系統下的/usr/local/src/目錄中。如下所示:
  [root@localhost src]# ls /usr/local/src/
   autoconf-2.61.tar.gz    libxml2-2.6.30.tar.gz
   freetype-2.3.5.tar.gz   mysql-5.0.41.tar.gz
   gd-2.0.35.tar.gz        php-5.2.6.tar.gz
   httpd-2.2.9.tar.gz      phpMyAdmin-3.0.0-rc1-all-languages.tar.gz
   jpegsrc.v6b.tar.gz      ZendOptimizer330a.tar.gz
   libmcrypt-2.5.8.tar.gz  zlib-1.2.3.tar.gz
   libpng-1.2.31.tar.gz
[root@localhost src]# ls|wc -l
     13     //總計13個文件


二、檢查安裝時使用的編譯工具是否存在

我們下載的軟件的源代碼文件都是使用C語言編寫的,需要在本機編譯後才能安裝使用,所以在安裝前首先要檢查一下系統中編譯工具gcc是否已經安裝,可以在命令行中使用「gcc -v」來查看是否安裝了gcc。如下所示:
[root@localhost  root]# gcc –v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/specs
Configured with: ../configure  --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info  --enable-shared--enable-threads=posix
--disable-checking --with-system-zlib  --enable-__cxa_atexit --host=i386-redhat-linux
Thread model: posix
gcc version 3.2.2 20030222 (Red Hat Linux  3.2.2-5)


如果系統中已經安裝了gcc編譯工具,則顯示上述信息,如果沒有安裝gcc工具,讀者需要下載gcc工具軟件並安裝上。

三、卸載默認的低版本環境

目前發行的Linux操作系統版本中,如果選擇默認全部安裝,就已經安裝了LAMP環境,但是版本相對都比較低。我們可以再安裝一個LAMP環境和原來的並存,但是這樣做沒有必要,因為同時只能開啟一個LAMP環境。所要我們要在安裝之前,先應檢查一下系統中是否已經安裝了低版本的環境,如果已經安裝過了,停止原來的服務運行,或者把原來的環境卸載掉。如下所示:

查詢系統中已安裝的Apache相關軟件包
[root@localhost root]# rpm -qa|grep -i  httpd
httpd-manual-2.0.40-21
httpd-2.0.40-21
redhat-config-httpd-1.0.1-18


如果Apache已開啟,停止運行Apache服務器
[root@localhost root]#service httpd stop


卸載Apache服務器
[root@localhost root]# rpm -e httpd-manual-2.0.40-21  --nodeps
[root@localhost root]# rpm -e httpd-2.0.40-21  --nodeps
[root@localhost root]# rpm -e redhat-config-httpd-1.0.1-18  --nodeps


查詢系統中已安裝的MySQL相關軟件包
[root@localhost root]# rpm -qa|grep -i  mysql
mysql-devel-3.23.54a-11
mysql-3.23.54a-11
mysql-server-3.23.54a-11


如果MySQL已開啟,停止運行MySQL服務器
[root@localhost root]#service mysqld stop


卸載MySQL服務器
[root@localhost root]# rpm -e mysql-devel-3.23.54a-11 --nodeps
[root@localhost root]# rpm -e mysql-3.23.54a-11 --nodeps
[root@localhost root]# rpm -e mysql-server-3.23.54a-11 --nodeps


查詢系統中已安裝的PHP相關軟件包
[root@localhost root]# rpm -qa|grep -i php
php-ldap-4.2.2-17
php-imap-4.2.2-17
php-4.2.2-17


卸載PHP應用服務器
[root@localhost root]# rpm -e php-ldap-4.2.2-17  --nodeps
[root@localhost root]# rpm -e php-imap-4.2.2-17  --nodeps
[root@localhost root]# rpm -e php-4.2.2-17  --nodeps


編譯安裝

搭建LAMP環境時,需要安裝的所有軟件都要按照一定的順序安裝,我們按Apache->MySQL->PHP順序安裝。但在安裝PHP之前,應先安裝PHP5需要的最新版本庫文件,比如libxml2、libmcrypt以及GD2庫等文件。安裝GD2庫是為了讓PHP5支持GIF、PNG和JPEG圖片格式,所以在安裝GD2庫之前還要先安裝最新的zlib、libpng、freetype和jpegsrc等庫文件。而且中間還會穿插安裝一些軟件,所以讀者可以按照本節內容的順序安裝。

1.編譯安裝libxm2最新庫文件,源碼包為libxml2-2.6.30.tar.gz

(1)進入下載的軟件源碼包所在目錄/usr/local/src/下,解壓軟件包libxml2-2.6.30.tar.gz到當前目錄libxml2-2.6.30下,並進入libxml2-2.6.30目錄,命令行如下所示;
[root@localhost root]# cd /usr/local/src/                            //進入軟件源碼包所在目錄
[root@localhost src]# tar zxvf libxml2-2.6.30.tar.gz           //解包解壓到libxml2-2.6.30目錄
[root@localhost src]# cd libxml2-2.6.30                               //進入目錄libxml2-2.6.30中


(2)使用「configure」命令檢查安裝需要的系統配置,並生成安裝配置文件,命令行如下;
[root@localhost libxml2-2.6.30]#  ./configure --prefix=/usr/local/libxml2

選項--prefix=/usr/local/libxml2作用,是在安裝時將軟件安裝到/usr/local/libxml2目錄下;

(3)使用「make」命令編譯源代碼文件並生成安裝文件,命令行如下;
[root@localhost libxml2-2.6.30]#  make                          //對軟件源代碼文件進行編譯


(4)使用「make install」命令進行安裝,命令行如下;
[root@localhost libxml2-2.6.30]#  make install                          //開始安裝libxml2庫文件


如果安裝成功,會在/usr/local/libxml2/目錄下存在bin、include、lib、man和share五個目錄。在安裝PHP5配置時,configure命令的選項要加上「--with-libxml-dir=/usr/local/libxml2「選項,指定libxml2庫文件的位置。

2.編譯安裝libmcrypt最新庫文件,源碼包為libmcrypt-2.5.8.tar.gz

(1)進入軟件源碼包所在目錄/usr/local/src/中,解壓軟件包libmcrypt-2.5.8.tar.gz到當前目錄libmcrypt-2.5.8下,並進入libmcrypt-2.5.8目錄,命令行如下所示;
[root@localhost root]# cd /usr/local/src/                                   //進入軟件源碼包所在目錄
[root@localhost src]# tar zxvf libmcrypt-2.5.8.tar.gz               //解包解壓到libmcrypt-2.5.8目錄
[root@localhost src]# cd libmcrypt-2.5.8                                     //進入目錄libmcrypt-2.5.8中


(2)使用「configure」命令檢查安裝需要的系統配置,並生成安裝配置文件,命令行如下;
[root@localhost libmcrypt-2.5.8]# ./configure  --prefix=/usr/local/libmcrypt

選項--prefix=/usr/local/libmcrypt,是在安裝時將軟件安裝到/usr/local/libmcrypt目錄下;

(3)使用「make」命令編譯源代碼文件並生成安裝文件,命令行如下;
[root@localhost libmcrypt-2.5.8]#  make                                    //對軟件源代碼文件進行編譯


(4)使用「make install」命令進行安裝,命令行如下;
[root@localhost libmcrypt-2.5.8]#  make install                        //開始安裝libmcrypt庫文件


如果安裝成功會在/usr/local/libmcrypt/目錄下存在bin、include、lib、man和share五個目錄。在安裝PHP5配置時,configure命令的選項要加上「--with-mcrypt-dir=/usr/local/libmcrypt「選項,指定libmcrypt庫文件的位置。

(5)安裝完成libmcrypt庫以後,有一些Linux系統版本還要安裝一下libltdl庫。可以進入到解壓縮的目錄/usr/local/src/ libmcrypt-2.5.8下,找到libltdl庫源代碼文件所在的目錄libltdl,進入這個目錄按照下面幾個命令配置、編譯、安裝就可以了。
[root@localhost root]# cd /usr/local/src/libmcrypt-2.5.8/libltdl
[root@localhost libltdl]# ./configure  --enable-ltdl-install                            //配置ltdl庫的安裝
[root@localhost libltdl]# make                                                                            //編譯
[root@localhost libltdl]# make install                                                   //安裝


3.編譯安裝zlib最新庫文件,源碼包為zlib-1.2.3.tar.gz

(1)進入軟件源碼包所在目錄/usr/local/src/中,解壓軟件包zlib-1.2.3.tar.gz到當前目錄zlib-1.2.3下,並進入zlib-1.2.3目錄,命令行如下所示;
[root@localhost root]# cd /usr/local/src/                                  //進入軟件源碼包所在目錄
[root@localhost src]# tar zxvf zlib-1.2.3.tar.gz                          //解包解壓到zlib-1.2.3目錄
[root@localhost src]# cd zlib-1.2.3                                                //進入目錄zlib-1.2.3中


(2)使用「configure」命令檢查安裝需要的系統配置,並生成安裝配置文件,命令行如下;
[root@localhost zlib-1.2.3]# ./configure --prefix=/usr/local/zlib

選項--prefix=/usr/local/zlib,是在安裝時將軟件安裝到/usr/local/zlib目錄下;

(3)使用「make」命令編譯源代碼文件並生成安裝文件,命令行如下;
[root@localhost zlib-1.2.3]#  make                           //對軟件源代碼文件進行編譯


(4)使用「make install」命令進行安裝,命令行如下;
[root@localhost zlib-1.2.3]# make install                 //開始安裝zlib庫文件


如果安裝成功會在/usr/local/zlib目錄下存在include、lib和share三個目錄。在安裝PHP5配置時,configure命令的選項要加上「--with-zlib-dir=/usr/local/libmcrypt「選項,指定zlib庫文件的位置。

4.編譯安裝libpng最新庫文件,源碼包為libpng-1.2.31.tar.gz

(1)進入軟件源碼包所在目錄/usr/local/src/中,解壓軟件包libpng-1.2.31.tar.gz到當前目錄libpng-1.2.31下,並進入libpng-1.2.31目錄,命令行如下所示;
[root@localhost root]# cd /usr/local/src/                                         //進入軟件源碼包所在目錄
[root@localhost src]# tar zxvf libpng-1.2.31.tar.gz                           //解包解壓到libpng-1.2.31目錄
[root@localhost src]# cd libpng-1.2.31                                              //進入目錄libpng-1.2.31中


(2)使用「configure」命令檢查安裝需要的系統配置,並生成安裝配置文件,命令行如下;
[root@localhost libpng-1.2.31]#  ./configure --prefix=/usr/local/libpng

選項--prefix=/usr/local/libpng,是在安裝時將軟件安裝到/usr/local/libpng目錄下;

(3)使用「make」命令編譯源代碼文件並生成安裝文件,命令行如下;
[root@localhost libpng-1.2.31]#make                               //對軟件源代碼文件進行編譯


(4)使用「make install」命令進行安裝,命令行如下;
[root@localhost libpng-1.2.31]# make install                       //開始安裝libpng庫文件


如果安裝成功會在/usr/local/libpng目錄下存在bin、include、lib和share四個目錄。在安裝GD2庫配置時,configure命令的選項要加上「--with-png=/usr/local/libpng「選項,指定libpng庫文件的位置。

5.編譯安裝jpeg6最新庫文件,源碼包為jpegsrc.v6b.tar.gz

(1)安裝GD2庫使用的jpeg6庫文件,需要自己手動的創建安裝需要的目錄,它們在安裝時不能自動創建。
[root@localhost root]# mkdir /usr/local/jpeg6                                  //建立jpeg6軟件安裝目錄
[root@localhost root]# mkdir /usr/local/jpeg6/bin                          //建立存放命令的目錄
[root@localhost root]# mkdir /usr/local/jpeg6/lib                           //創建jpeg6庫文件所在目錄
[root@localhost root]# mkdir /usr/local/jpeg6/include                  //建立存放頭文件目錄
[root@localhost root]# mkdir -p /usr/local/jpeg6/man/man1      //建立存放手冊的目錄


(2)進入軟件源碼包所在目錄/usr/local/src/中,解壓軟件包jpegsrc.v6b.tar.gz到當前目錄jpeg-6b下,並進入jpeg-6b目錄,命令行如下所示;
[root@localhost root]# cd /usr/local/src/                                //進入軟件源碼包所在目錄
[root@localhost src]# tar zxvf jpegsrc.v6b.tar.gz                   //解包解壓到jpeg-6b目錄
[root@localhost src]# cd jpeg-6b                                                //進入目錄jpeg-6b中


(3)使用「configure」命令檢查安裝需要的系統配置,並生成安裝配置文件,命令行如下,使用「\」將一個命令換成多行;
[root@localhost jpeg-6b]# ./configure \
>  --prefix=/usr/local/jpeg6/ \                                 //在安裝時將軟件安裝到/usr/local/jpeg6目錄下
> --enable-shared  \                                                     //建立共享庫使用的GNU的libtool
> --enable-static                                                            //建立靜態庫使用的GNU的libtool


(4)使用「make」命令編譯源代碼文件並生成安裝文件,命令行如下;
[root@localhost jpeg-6b]# make                                        //對軟件源代碼文件進行編譯


(5)使用「make install」命令進行安裝,命令行如下;
[root@localhost jpeg-6b]# make install                            //開始安裝jpeg6庫文件


在安裝GD2庫配置時,configure命令的選項要加上「--with-jpeg=/usr/local/jpeg6/「選項,指定jpeg6庫文件的位置。

6.編譯安裝freetype最新庫文件,源碼包為freetype-2.3.5.tar.gz

(1)進入軟件源碼包所在目錄/usr/local/src/中,解壓軟件包freetype-2.3.5.tar.gz到當前目錄freetype-2.3.5下,並進入freetype-2.3.5目錄,命令行如下所示;
[root@localhost root]# cd /usr/local/src/                                //進入軟件源碼包所在目錄
[root@localhost src]# tar zxvf freetype-2.3.5.tar.gz              //解包解壓到freetype-2.3.5目錄
[root@localhost src]# cd freetype-2.3.5                                    //進入目錄freetype-2.3.5中


(2)使用「configure」命令檢查安裝需要的系統配置,並生成安裝配置文件,命令行如下;
[root@localhost freetype-2.3.5]#  ./configure --prefix=/usr/local/freetype

選項--prefix=/usr/local/freetype,是在安裝時將軟件安裝到/usr/local/freetype目錄下;

(3)使用「make」命令編譯源代碼文件並生成安裝文件,命令行如下;
[root@localhost freetype-2.3.5]#  make                                //對軟件源代碼文件進行編譯


(4)使用「make install」命令進行安裝,命令行如下;
[root@localhost freetype-2.3.5]#  make install                     //開始安裝freetype庫文件

如果安裝成功會在/usr/local/freetype目錄下存在bin、include、lib和share四個目錄。在安裝GD2庫配置時,configure命令的選項要加上「--with-freetype=/usr/local/freetype/「選項,指定freetype庫文件的位置。

7.編譯安裝最新的autoconf庫文件,源碼包為autoconf-2.61.tar.gz

(1)進入軟件源碼包所在目錄/usr/local/src/中,解壓軟件包autoconf-2.61.tar.gz到當前目錄autoconf-2.61下,並進入autoconf-2.61目錄,命令行如下所示;
[root@localhost root]# cd /usr/local/src/                                        //進入軟件源碼包所在目錄
[root@localhost src]# tar zxvf autoconf-2.61.tar.gz                       //解包解壓到autoconf-2.61目錄
[root@localhost src]# cd autoconf-2.61                                             //進入目錄autoconf-2.61中


(2)使用「configure」命令檢查安裝需要的系統配置,並生成安裝配置文件,命令行如下;
[root@localhost autoconf-2.61]#./configure


(3)使用「make」命令編譯源代碼文件並生成安裝文件,命令行如下;
[root@localhost autoconf-2.61]# make                                   //對軟件源代碼文件進行編譯


(4)使用「make install」命令進行安裝,命令行如下;
[root@localhost autoconf-2.61]#make install                          //開始安裝autoconf庫文件


8.編譯安裝最新的GD庫文件,源碼包為gd-2.0.35.tar.gz

(1)進入軟件源碼包所在目錄/usr/local/src/中,解壓軟件包gd-2.0.35.tar.gz到當前目錄gd-2.0.35下,並進入gd-2.0.35目錄,命令行如下所示;
[root@localhost root]# cd /usr/local/src/                              //進入軟件源碼包所在目錄
[root@localhost src]# tar zxvf gd-2.0.35.tar.gz                     //解包解壓到gd-2.0.35目錄
[root@localhost src]# cd gd-2.0.35                                           //進入目錄gd-2.0.35中


(2)使用「configure」命令檢查安裝需要的系統配置,並生成安裝配置文件,命令行如下,使用「\」將一個命令換成多行;
[root@localhost gd-2.0.35]#  ./configure\                       //配置命令
>  --prefix=/usr/local/gd2/ \                                         //指定軟件安裝的位置
>  --with-zlib=/usr/local/zlib/\                                     //指定到哪去找zlib庫文件的位置
>  --with-jpeg=/usr/local/jpeg6/\                               //指定到哪去找jpeg庫文件的位置
>  --with-png=/usr/local/libpng/\                                //指定到哪去找png庫文件的位置
>  --with-freetype=/usr/local/freetype/                     //指定到哪去找freetype 2.x庫文件的位置


(3)使用「make」命令編譯源代碼文件並生成安裝文件,命令行如下;
[root@localhost gd-2.0.35]#  make                                  //對軟件源代碼文件進行編譯


(4)使用「make install」命令進行安裝,命令行如下;
[root@localhost gd-2.0.35]#  make install                      //開始安裝GD庫文件


如果安裝成功會在/usr/local/gd2目錄下存在bin、include和lib三個目錄。在安裝PHP5時,configure命令的選項要加上「--with-gd=/usr/local/gd2/「選項,指定GD庫文件的位置。
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[續]LAMP網站軟件開發環境匯總
9、編譯安裝新版本Apache服務器,源碼包為httpd-2.2.6.tar.gz

Apache 是世界排名第一的Web 服務器, 根據Netcraf(www.netsraft.co.uk)所作的調查,世界上百分之五十以上的Web 服務器在使用Apache。

尤其是現在,使用LAMP(Linux + Apache + MySQL + PHP)來搭建中等級別的應用已經是一種流行的方式,因此,掌握Apache 的配置是系統工程師必備的技能之一。使用LAMP(Linux + Apache + MySQL + PHP)來搭建中等級別的應用(尤其是電子商務)已經是一種流行的方式,因為全部是開源和免費的軟件,所以成本非常低廉。本節介紹平台的搭建。在搭建平台時,也可以直接使用RPM 包來安裝,但是由於使用RPM 包在一些系統上不支持,因此我們使用更通用的方法:直接從源代碼來裝。

(1)進入軟件源碼包所在目錄/usr/local/src/中,找到軟件包httpd-2.2.6.tar.gz解壓到當前目錄httpd-2.2.6下,並進入httpd-2.2.6目錄,命令行如下所示;
[root@localhost root]# # cd /usr/local/src                   //進入軟件源碼包所在目錄
[root@localhost src]# tar zxvf httpd-2.2.6.tar.gz       //解包解壓到httpd-2.2.6
[root@localhost src]# cd httpd-2.2.6                          //進入目錄httpd-2.2.6中


(2)使用「configure」命令檢查安裝需要的系統配置,並生成安裝配置文件,命令行如下,使用「\」將一個命令換成多行;
[root@localhost httpd-2.2.6]# ./configure \
       "--prefix=/usr/local/apache2" \
       "--with-included-apr" \
       "--enable-so" \
       "--enable-deflate=shared" \
       "--enable-expires=shared" \
       "--enable-rewrite=shared" \
       "--enable-static-support" \
       "--disable-userdir"


(3)這句的含義是對apache源代碼進行編譯並安裝到指定的目錄,&&的意思是如果make執行成功的話才執行make install。和先執行make再執行make install等效。到此我們的Apache已經安裝完成。
[root@localhost httpd-2.2.6]# make    &&  make install


(4)檢查安裝的文件,進入到/usr/local/apache2/目錄下,是否有以下目錄;
[root@localhost httpd-2.2.6]# cd /usr/local/apache2/
[root@localhost apache2]# ls
bin
cgi-bin
htdocs
include
logs
manual
build
error
icons
lib
man
modules


檢查配置文件是否指定正確,進入到/etc/httpd/目錄下,查看配置文件httpd.conf和extra子目錄是否存在;

(5)啟動Apache服務器,並查看端口是否開啟,啟動Apache服務器的命令行如下;
[root@localhost apache2]# /usr/local/apache2/bin/apachectl start         //啟動Apache


(6)測試安裝結果,打開瀏覽器,在地址欄內輸入URL為http://localhost/去訪問Apache服務器,如出現下圖內容表示Aapache服務器可以使用,如下圖所示;

(7)每種服務器軟件都有必要制做成開機自啟動。Apache服務器開機自啟動,只要在「/etc/rc.d/rc.local」文件中,加上Apache服務器的啟動命令即可,可以直接打開「/etc/rc.d/rc.local」文件,在最後一行寫入Aapache啟動命令,也可以使用「echo」命令追加進去,命令行如下;
[root@localhost root]# echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local


(8)配置Apache:Apache的安裝非常簡單,但是它的配置就比較複雜了,它的配置文件默認是—prefix/conf/httpd.conf文件,你可以在配置時調用—sysconfdir選項來改變它的位置,在我們這裡是/opt/httpd224/conf/httpd.conf文件。由於各個站點的需求不同,側重點也就不同,配置起來各不相同,所以我們在這裡就不寫Apache的一些所謂的配置技巧了,大家最好的選擇就是根據自己的需求,對照著Apache手冊配置最符合自已服務器,知其然而且知其所以然。

10.編譯安裝MySQL數據庫管理系統,源碼包為mysql-5.0.41.tar.gz

(1)為mysqld增加一個登錄用戶和組,用戶名和組名都為「mysql」,如果將這些用戶和組命名為mysql之外的名稱,在下面的步驟中替換為相應的名稱。命令行如下;
[root@localhost root]# groupadd mysql                   //添加一個mysql標準組
[root@localhost root]# useradd -g mysql mysql      //添加一個mysql用戶並加到mysql組中


(1)進入軟件源碼包所在目錄/usr/local/src/中,解壓軟件包mysql-5.0.41.tar.gz到當前目錄mysql-5.0.41下,並進入mysql-5.0.41目錄,命令行如下所示;
[root@localhost root]# cd /usr/local/src/                     //進入軟件源碼包所在目錄
[root@localhost src]# tar zxvf mysql-5.0.41.tar.gz     //解包解壓到mysql-5.0.41目錄
[root@localhost src]# cd mysql-5.0.41                       //進入目錄mysql-5.0.41中


(2)使用「configure」命令檢查安裝需要的系統配置,並生成安裝配置文件,命令行如下,使用「\」將一個命令換成多行;
[root@localhost mysql-5.0.41]# ./configure \
> --prefix=/usr/local/mysql\                              //是在安裝時將軟件安裝到/usr/local/mysql目錄下
> --with-extra-charsets=all                             //在安裝mysql時安裝所有字符集


(3)使用「make」命令編譯源代碼文件並生成安裝文件,命令行如下;
[root@localhost mysql-5.0.41]# make              //對MySQL源代碼文件進行編譯


(4)使用「make install」命令進行安裝,命令行如下;
[root@localhost mysql-5.0.41]## make install         //開始安裝MySQL數據庫系統


(5)創建MySQL數據庫服務器的配置文件,可以使用源碼包support-files目錄中的my-medium.cnf文件作為模板,拷貝到/etc/目錄下,命名為「my.cnf」文件即可。命令行如下;
[root@localhost mysql-5.0.41]# cp support-files/my-medium.cnf /etc/my.cnf


(6)如果還沒有安裝過MySQL,必須創建MySQL授權表,進入到安裝目錄「/usr/local/mysql」下,執行bin目錄下的mysql_install_db腳本,用來初始化mysql數據庫的授權表,其中貯存了服務器訪問允許。命令行如下;
[root@localhost mysql-5.0.41]#cd /usr/local/mysql                  //建入安裝目錄
[root@localhost mysql]# bin/mysql_install_db --user=mysql  //創建授權表


如果使用root用戶運行上面的命令,應當使用--user選項,選項的值應與你在第一步為運行服務器所創建的登錄賬戶(mysql用戶)相同。如果用mysql用戶登錄來運行上面命令,可以省略--user選項。用mysql_install_db創建MySQL授權表後,需要手動重新啟動服務器。

(7)將程序二進制的所有權改為root用戶,數據目錄的所有權改為運行mysqld程序的mysql用戶。如果現在位於安裝目錄(/usr/local/mysql)下,命令應為:
[root@localhost mysql]# chown -R root  .          //將文件的所有屬性改為root用戶
[root@localhost mysql]# chown -R mysql var    //將數據目錄的所有屬性改為mysql用戶
[root@localhost mysql]# chgrp -R mysql .          //將組屬性改為mysql組


(8)在所有東西被安裝完成以後,應當使用該命令啟動MySQL服務了,命令行如下;
[root@localhost mysql]# /usr/local/mysql/bin/mysqld_safe --user=mysql &


MySQL數據庫服務啟動之後,查看一下3306端口是否打開,如果看到以下結果表明MySQL服務啟動成功,命令行如下;
[root@localhost apache2]# netstat -tnl|grep 3306          //查看3306端口是否開啟
tcp
0
0 0.0.0.0:3306
0.0.0.0:*
LISTEN


(9)使用mysqladmin驗證服務器在運行中。以下命令提供了簡單的測試,可檢查服務器是否已經啟動並能響應連接;
[root@localhost mysql]# bin/mysqladmin version
bin/mysqladmin
Ver 8.41 Distrib 5.0.41, for pc-linux-gnu on i686
Copyright (C) 2000-2006 MySQL AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license
Server version
5.0.41-log
Protocol version
10
Connection
Localhost via UNIX socket
UNIX socket
/tmp/mysql.sock
Uptime:
15 min 41 sec
Threads: 1
Questions: 25
Slow queries: 0
Opens: 12
Flush tables: 1
Open tables: 6
Queries per second avg: 0.027

[root@localhost mysql]# bin/mysqladmin variables
//查看所有mysql參數


(10)設置訪問權限,在MySQL安裝過程中,使用mysql_install_db程序安裝了MySQL數據庫授權表,表定義了初始MySQL用戶賬戶和訪問權限,所有初始賬戶均沒有密碼。這些賬戶為超用戶賬戶,可以執行任何操作。初始root賬戶的密碼為空,因此任何人可以用root賬戶不用任何密碼來連接MySQL服務器,並具有所有權限,這意味著MySQL安裝未受保護。如果你想要防止客戶端不使用密碼用匿名用戶來連接,你應當為匿名賬戶指定密碼或刪掉匿名賬戶,應當為MySQL root賬戶指定密碼。使用「mysql –u root」啟動mysql客戶端,連接MySQL服務器。命令行如下;
[root@localhost mysql]# bin/mysql -u root
//沒有密碼可以直接登錄本機服務器

Welcome to the MySQL monitor.
Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.0.41-log Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>


如果有匿名賬戶存在,它擁有全部的權限,因此刪掉它可以提高安全,在mysql客戶端執行SQL語句如下;
mysql> DELETE FROM mysql.user WHERE Host='localhost' AND User='';
Query OK, 1 rows affected (0.08 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 1 rows affected (0.01 sec)


可以用幾種方法為root賬戶指定密碼,我們介紹其中兩種,在mysql客戶端命令行上使用SET PASSWORD指定密碼,一定要使用PASSWORD()函數來加密密碼。設置localhost域的密碼為「123456」,其它域可以使用同樣的語句,使用的SQL語句如下;
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
Query OK, 0 rows affected (0.00 sec)
>usr/local/mysql/bin/mysqladmin -u root password 新密碼


如果想退出MySQL客戶端,可以在MySQL客戶端提示符下輸入命令「exit」或者「quit」、還可以按鍵盤「Ctrl+c」組合鍵,都可以從MySQL客戶端中退出。因為已經給MySQL服務器的root賬號設置了密碼,所以再次登錄MySQL客戶端就要提供密碼才能進入。退出MySQL客戶端和重新啟動MySQL客戶端的命令如下;
mysql> exit          //退出MySQL客戶端
Bye
[root@localhost mysql]# bin/mysql -u root -h localhost –p         //回車進入MySQL客戶端
Enter password:
//輸入密碼「123456」
Welcome to the MySQL monitor.
Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.0.41-log Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>


如果想關閉MySQL服務器,在命令行使用MySQL服務器的mysqladmin命令, 通過-u參數給出MySQL數據庫管理員用戶名root和通過-p參數給出密碼,即可以關閉MySQL服務器。命令行如下;
[root@localhost mysql]# bin/mysqladmin -u root –p shutdown        //關閉MySQL數據庫


(11)MySQL服務器和Apache服務器一樣也有必要設置為開機自動運行,設置方法是進入到mysql源代碼目錄/usr/local/src/mysql-5.0.41/中,將子目錄support-files下的mysql.server文件複製到/etc/rc.d/init.d目錄中,並重命名為「mysqld」,命令行如下所示;
[root@localhost mysql]# cd /usr/local/src/mysql-5.0.41
[root@localhost mysql-5.0.41]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld


修改文件/etc/rc.d/init.d/mysqld的權限,命令行如下所示;
[root@localhost mysql-5.0.41]# chown root.root /etc/rc.d/init.d/mysqld
[root@localhost mysql-5.0.41]# chmod 755 /etc/rc.d/init.d/mysqld


使用chkconfig命令設置在不同系統運行級別下的自啟動策略,首先使用「chkconfig --add mysqld」命令增加所指定的mysqld服務,讓chkconfig指令得以管理它,並同時在系統啟動的敘述文件內增加相關數據,使用命令如下;
[root@localhost mysql-5.0.41]# chkconfig --add mysqld


然後使用「chconfig –level 3 mysqld on」命令和「chconfig –level 5 mysqld on」命令,在第三和第五等級中開啟mysql服務,即在字符模式和圖形模式啟動時自動開啟mysql服務,命令如下;
[root@localhost mysql-5.0.41]# chkconfig --level 3 mysqld on
[root@localhost mysql-5.0.41]# chkconfig --level 5 mysqld on


再使用「chkconfig --list」命令檢查設置,命令行如下;
[root@localhost mysql-5.0.41]# chkconfig --list mysqld
mysqld
0:關閉
1:關閉
2: 關閉
3:啟用
4: 關閉
5:啟用
6:關閉


(12)My.ini深入剖析
# guidelines for editing this file #編輯指導
# ----------------------------------------------------------------------
#
# In this file, you can use all long options that the program supports.
# If you want to know the options a program supports, start the program
# with the "--help" option.
# 在這個配置文件中,您可以使用所有程序都支持的長選項,即類似:-h –f 這樣的多個
# 參數。如果你想要瞭解這些程序所支持的長選項有哪些,可以在程序後加上」--help」參數
# 作為幫助指導。
# More detailed information about the individual options can also be
# found in the manual.
# 關於更詳細的選項及參數等配置信息,建議您可以查找官方的在線手冊及資料,以獲取最# 新的信息。
#
# CLIENT SECTION #客戶端
# ----------------------------------------------------------------------
#
# The following options will be read by MySQL client applications.
# 下邊的選項將會被MySQL客戶端的應用讀取。
# Note that only client applications shipped by MySQL are guaranteed
# to read this section. If you want your own MySQL client program to
# honor these values, you need to specify it as an option during the
# MySQL client library initialization.
# 注意,只有MySQL附帶的客戶端應用程序保證可以讀取這段內容,如果你想你自己
# 的MySQL應用程序獲取這些值,需要在MySQL客戶端庫初始化的時候指定這些選項。
[client]
port=3306 #客戶端通訊端口
[mysql]
default-character-set=utf8 #默認的字符集
# SERVER SECTION # 服務器端
# ----------------------------------------------------------------------
#
The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
# 下邊的選項參數將會被MySQL服務器讀取。
[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3306 # MySQL服務器在監聽的TCP/IP端口,即3306端口。
# Path to installation directory. All paths are usually resolved relative to this.
# 該參數指定了安裝 MySQL 的安裝路徑,填寫全路徑可以解決相對路徑所造成的問題。
basedir="D:/MySQL/MySQL Server 5.1/"
# 表示我的MySQL安裝在D:/MySQL/MySQL Server 5.1/ 路徑下。
#Path to the database root
# 該參數指定了 MySQL 的數據庫文件放在什麼路徑下。
# 數據庫文件即我們常說的 MySQL data 文件。
datadir="D: /MySQL/MySQL Server 5.1/Data/"
# 表示我的MySQL數據庫文件安裝在D:/MySQL/MySQL Server 5.1/Data/ 路徑下。
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=utf8
# 建立一個新庫或表的時候,都會根據默認字符集來設定其字符集類型,我們推薦使用utf8。
# The default storage engine that will be used when create new tables when
default-storage-engine=INNODB
# 建立一個新表的時候,默認的存儲引擎將會被採用,本例中採用的是INNODB引擎。
# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
# 設定SQL 的嚴格模式,關於sql-mode的參數選項,會在________章節中有詳細描述。
# The maximum amount of concurrent sessions the MySQL server will
# allow. One of these connections will be reserved for a user with
# SUPER privileges to allow the administrator to login even if the
# connection limit has been reached.
max_connections=235
# MySQL 服務器所允許的同時會話數的上限,其中一個連接將被SUPER權限保留作為管理員登錄,即便已經達到了連接數的上限。
# Query cache is used to cache SELECT results and later return them
# without actual executing the same query once again. Having the query
# cache enabled may result in significant speed improvements, if your
# have a lot of identical queries and rarely changing tables. See the
# "Qcache_lowmem_prunes" status variable to check if the current value
# is high enough for your load.
# Note: In case your tables change very often or if your queries are
# textually different every time, the query cache may result in a
# slowdown instead of a performance improvement.
query_cache_size=11M
# 查詢緩衝常被用來緩衝 SELECT 的結果並且在下一次同樣查詢的時候不再執行直接返回# 結果。打開查詢緩衝可以極大的提高服務器速度, 如果你有大量的相同的查詢並且很少修
# 改表。查看 "Qcache_lowmem_prunes" 狀態變量來檢查是否當前值對於你的負載來說是否
# 足夠高。注意: 在你表經常變化的情況下或者如果你的查詢原文每次都不同,查詢緩衝也許
# 引起性能下降而不是性能提升。
# The number of open tables for all threads. Increasing this value
# increases the number of file descriptors that mysqld requires.
# Therefore you have to make sure to set the amount of open files
# allowed to at least 4096 in the variable "open-files-limit" in
# section [mysqld_safe]
table_cache=500
# 所有線程所打開表的數量。
# 增加此值就增加了mysqld所需要的文件描述符的數量
# 這樣你需要確認在[mysqld_safe]中 "open-files-limit" 變量設置打開文件數量允許至少4096
# Maximum size for internal (in-memory) temporary tables. If a table
# grows larger than this value, it is automatically converted to disk
# based table This limitation is for a single table. There can be many
# of them.
tmp_table_size=16M
# 內部(內存中)臨時表的最大大小。如果一個表增長到比此值更大,將會自動轉換為基於磁盤#
# 的表。此限制是針對單個表的,而不是全部總和表的大小。
# How many threads we should keep in a cache for reuse. When a client
# disconnects, the client's threads are put in the cache if there aren't
# more than thread_cache_size threads from before. This greatly reduces
# the amount of thread creations needed if you have a lot of new
# connections. (Normally this doesn't give a notable performance
# improvement if you have a good thread implementation.)
thread_cache_size=11
# 我們在cache中保留多少線程用於重用
# 當一個客戶端斷開連接後,如果cache中的線程還少於thread_cache_size,
# 則客戶端線程被放入cache中.
# 這可以在你需要大量新連接的時候極大的減少線程創建的開銷
# (一般來說如果你有好的線程模型的話,這不會有明顯的性能提升.)
#*** MyISAM Specific options # MyISAM 相關選項
# The maximum size of the temporary file MySQL is allowed to use while
# recreating the index (during REPAIR, ALTER TABLE or LOAD DATA INFILE.
# If the file-size would be bigger than this, the index will be created
# through the key cache (which is slower).
myisam_max_sort_file_size=100G
# MySQL重建索引時所允許的最大臨時文件的大小 (當 REPAIR, ALTER TABLE 或者
# LOAD DATA INFILE)。如果文件大小比此值更大,索引會通過鍵值緩衝創建(更慢)。
# If the temporary file used for fast index creation would be bigger
# than using the key cache by the amount specified here, then prefer the
# key cache method. This is mainly used to force long character keys in
# large tables to use the slower key cache method to create the index.
myisam_sort_buffer_size=13M
# 此緩衝當MySQL需要在REPAIR, OPTIMIZE, ALTER以及LOAD DATA INFILE到一個
# 空表中引起重建索引時被分配。這在每個線程中被分配.所以在設置大值時需要小心。
# Size of the Key Buffer, used to cache index blocks for MyISAM tables.
# Do not set it larger than 30% of your available memory, as some memory
# is also required by the OS to cache rows. Even if you're not using
# MyISAM tables, you should still set it to 8-64M as it will also be
# used for internal temporary disk tables.
key_buffer_size=17M
# 關鍵詞緩衝的大小, 一般用來緩衝MyISAM表的索引塊。
# 不要將其設置大於你可用內存的30%,因為一部分內存同樣被OS用來緩衝行數據。
# 甚至在你並不使用MyISAM 表的情況下,
# 你也需要仍舊設置起 8-64M 內存,由於它同樣會被內部臨時磁盤表使用。
# Size of the buffer used for doing full table scans of MyISAM tables.
read_buffer_size=64K
# 用來做MyISAM表全表掃瞄的緩衝大小。
# 當全表掃瞄需要時,在對應線程中分配。
# Allocated per thread, if a full scan is needed.
read_rnd_buffer_size=256K
# 當在排序之後,從一個已經排序好的序列中讀取行時,
# 行數據將從這個緩衝中讀取來防止磁# 盤尋道。如果你增高此值,
# 可以提高很多ORDER BY的性能。當需要時由每個線程分配。
# This buffer is allocated when MySQL needs to rebuild the index in
# REPAIR, OPTIMZE, ALTER table statements as well as in LOAD DATA INFILE
# into an empty table. It is allocated per thread so be careful with large settings.
sort_buffer_size=256K
# 排序緩衝被用來處理類似ORDER BY以及GROUP BY隊列所引起的排序。
# 如果排序後的數據無法放入排序緩衝,
# 一個用來替代的基於磁盤的合併分類會被使用。
# 查看 "Sort_merge_passes" 狀態變量。
# 在排序發生時由每個線程分配。
#*** INNODB Specific options *** INNODB 相關選項
innodb_data_home_dir="D:/mySQL innodb Datafiles/"
#設置此選項如果你希望InnoDB表空間文件被保存在指定的空間目錄。
# Use this option if you have a MySQL server with InnoDB support enabled
# but you do not plan to use it. This will save memory and disk space
# and speed up some things.
#skip-innodb
# 如果你的MySQL服務包含InnoDB支持但是並不打算使用的話,
# 使用此選項會節省內存以及磁盤空間,並且加速某些部分。
# Additional memory pool that is used by InnoDB to store metadata
# information. If InnoDB requires more memory for this purpose it will
# start to allocate it from the OS. As this is fast enough on most
# recent operating systems, you normally do not need to change this
# value. SHOW INNODB STATUS will display the current amount used.
innodb_additional_mem_pool_size=2M
# 附加的內存池被InnoDB用來保存 metadata 信息,
# 如果InnoDB為此目的需要更多的內存,它會開始從OS這裡申請內存。
# 由於這個操作在大多數現代操作系統上已經足夠快, 你一般不需要修改此值。
# SHOW INNODB STATUS 命令會顯示當先使用的數量。
# If set to 1, InnoDB will flush (fsync) the transaction logs to the
# disk at each commit, which offers full ACID behavior. If you are
# willing to compromise this safety, and you are running small
# transactions, you may set this to 0 or 2 to reduce disk I/O to the
# logs. Value 0 means that the log is only written to the log file and
# the log file flushed to disk approximately once per second. Value 2
# means the log is written to the log file at each commit, but the log
# file is only flushed to disk approximately once per second.
innodb_flush_log_at_trx_commit=1
# 如果設置為1 ,InnoDB會在每次提交後刷新(fsync)事務日誌到磁盤上,
# 這提供了完整的ACID行為。
# 如果你願意對事務安全折衷, 並且你正在運行一個小的事務, 你可以設置此值到0或者2來減少由事務日誌引起的磁盤I/O讀寫操作。
# 0代表日誌只大約每秒寫入日誌文件並且日誌文件刷新到磁盤。
# 2代表日誌寫入日誌文件在每次提交後,但是日誌文件刷新到磁盤上只有大約每秒一次。
# The size of the buffer InnoDB uses for buffering log data. As soon as
# it is full, InnoDB will have to flush it to disk. As it is flushed
# once per second anyway, it does not make sense to have it very large
# (even with long transactions).
innodb_log_buffer_size=1M
# 用來緩衝日誌數據的緩衝區的大小。
# 當此值快滿時, InnoDB將必須刷新數據到磁盤上。
# 由於基本上每秒都會刷新一次,所以沒有必要將此值設置的太大(甚至對於長事務而言)。
# InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and
# row data. The bigger you set this the less disk I/O is needed to
# access data in tables. On a dedicated database server you may set this
# parameter up to 80% of the machine physical memory size. Do not set it
# too large, though, because competition of the physical memory may
# cause paging in the operating system. Note that on 32bit systems you
# might be limited to 2-3.5G of user level memory per process, so do not
# set it too high.
innodb_buffer_pool_size=30M
# InnoDB使用一個緩衝池來保存索引和原始數據, 不像 MyISAM。
# 這裡你設置越大,你在存取表裡面數據時所需要的磁盤I/O越少。
# 在一個獨立使用的數據庫服務器上,你可以設置這個變量到服務器物理內存大小的80%
# 不要設置過大,否則,由於物理內存的競爭可能導致操作系統的內存分頁不穩定。
# 注意在32位系統上你每個進程可能被限制在 2-3.5G 用戶層面內存限制,
# 所以不要設置的太高.
# Size of each log file in a log group. You should set the combined size
# of log files to about 25%-100% of your buffer pool size to avoid
# unneeded buffer pool flush activity on log file overwrite. However,
# note that a larger logfile size will increase the time needed for the
# recovery process.
innodb_log_file_size=10M
# 在日誌組中每個日誌文件的大小。
# 你應該設置日誌文件總合大小到你緩衝池大小的25%~100%,
# 來避免在日誌文件覆寫上不必要的緩衝池刷新行為。
# 不論如何, 請注意一個大的日誌文件大小會增加恢復進程所需要的時間。
# Number of threads allowed inside the InnoDB kernel. The optimal value
# depends highly on the application, hardware as well as the OS
# scheduler properties. A too high value may lead to thread thrashing.
innodb_thread_concurrency=8
# 在InnoDB核心內的允許線程數量。
# 最優值依賴於應用程序,硬件以及操作系統的調度方式。
# 過高的值可能導致線程的互斥不穩定。


11.編譯安裝最新版本的PHP模塊,源碼包為php-5.2.6.tar.gz

(1)進入軟件源碼包所在目錄/usr/local/src/中,解壓軟件包php-5.2.6.tar.gz到當前目錄php-5.2.6下,並進入php-5.2.6目錄,命令行如下所示;
[root@localhost root]# cd /usr/local/src/            //進入軟件源碼包所在目錄
[root@localhost src]# tar zxvf php-5.2.6.tar.gz   //解包解壓到php-5.2.6目錄
[root@localhost src]# cd php-5.2.6                    //進入目錄php-5.2.6中


(2)使用「configure」命令檢查安裝需要的系統配置,並生成安裝配置文件,命令行如下,使用「\」將configure命令選項換成多行;
[root@localhost php-5.2.6]# ./configure \          //執行當前目錄下軟件自代的配置命令
> --prefix=/usr/local/php \                                 //設置PHP5 的安裝路徑
> --with-config-file-path=/usr/local/php/etc \    //指定PHP5配置文件存入的路徑
> --with-apxs2=/usr/local/apache2/bin/apxs \   //告訴PHP查找Apache 2的地方
> --with-mysql=/usr/local/mysql/ \                     //指定MySQL的安裝目錄
> --with-libxml-dir=/usr/local/libxml2/ \            //告訴PHP放置libxml2庫的地方
> --with-png-dir=/usr/local/libpng/ \                  //告訴PHP放置libpng庫的地方
> --with-jpeg-dir=/usr/local/jpeg6/ \                  //告訴PHP放置jpeg庫的地方
> --with-freetype-dir=/usr/local/freetype/ \      //告訴PHP放置freetype庫的地方
> --with-gd=/usr/local/gd2/ \                              //告訴PHP放置gd庫的地方
> --with-zlib-dir=/usr/local/zlib/ \                       //告訴PHP放置zlib庫的地方
> --with-mcrypt=/usr/local/libmcrypt/ \             //告訴PHP放置libmcrypt庫的地方
> --with-mysqli=/usr/local/mysql/bin/mysql_config \     //變量激活新增加的MySQLi功能
> --enable-soap \                                           //變量激活SOAP和Web services支持
> --enable-mbstring=all \                             //使多字節字符串支持
> --enable-sockets                                       //變量激活socket通訊特性


(3)使用「make」命令編譯源代碼文件並生成安裝文件,命令行如下;
[root@localhost php-5.2.6]# make                 //對PHP源代碼文件進行編譯


(4)使用「make install」命令進行安裝,命令行如下;
[root@localhost php-5.2.6]# make install        //開始安裝PHP5


(5)安裝完成後,需要建立PHP配置文件。在使用configure命令安裝配置時使用了「--with-config-file-path=/usr/local/php/etc/」選項,指定了配置文件的位置,將源碼包目錄下的「php.ini-dist」文件拷貝到指定的目錄「/usr/local/php/etc/」中,並改名為「php.int」即可,解命令行如下;
[root@localhost php-5.2.6]# cp php.ini-dist /usr/local/php/etc/php.ini      //創建配置文件


(6)整合Apache與PHP,上面PHP編譯之前,我們使用configure命令安裝配置時,使用了「--with-apxs2=/usr/local/apache2/bin/apxs」選項,以使 Apache 2 將 PHP 作為功能模塊使用,但我們還要修改Apache配置文件,添加PHP的支持,告訴 Apache 將哪些後綴作為 PHP 解析。例如,讓 Apache 把 .php 或.phtml後綴的文件解析為PHP。使用vi打開Apache的配置文件/etc/httpd/httpd.conf,找到「AddType application/x-gzip .gz .tgz」項,在其下方添加「Addtype application/x-httpd-php .php .phtml」可以將任何後綴的文件解析為 PHP,只要在添加的語句中加入並用空格分開。這裡以多添加一個 .phtml 來示例。如下所示
[root@localhost php-5.2.6]# vi /etc/httpd/httpd.conf      //使用vi編輯apache配置文件
… …
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
//在這行下面添加
Addtype application/x-httpd-php .php .phtml
#添加這一條
#添這一個是為了將 .phps 作為 PHP 的源文件進行語法高亮顯示
Addtype application/x-httpd-php-source .phps
# AddHandler allows you to map certain file extensions to "handlers":
# actions unrelated to filetype. These can be either built into the server
# or added with the Action directive (see below)
… …


修改完成之後重新啟動 Apache 服務器,加載配置文件使修改生效,命令如下所示;
[root@localhost php-5.2.6]# /usr/local/apache2/bin/apachectl stop  //停止Apache服務
[root@localhost php-5.2.6]# /usr/local/apache2/bin/apachectl start  //開啟Apache服務


(7)查看phpinfo 新建一個PHP文件phpinfo.php,內容如下:
[root@localhost htdocs]# vi phpinfo.php          //編輯phpinfo.php文件
<?php
              phpinfo();
?>
[root@localhost htdocs]#cp phpinfo.php phpinfo.php7
[root@localhost htdocs]#cp phpinfo.php phpinfo.phps


然後在瀏覽器中分別查看3個文件phpinfo.php7,phpinfo.php,phpinfo.phps,下面是示例效果。

因為.php7後綴的文件不會被PHP Module解釋執行,源代碼被直接打印出來了:

phpinfo.php被PHP解釋器解釋執行,顯示PHP的相關信息:

源代碼經過"the php source filter",按照PHP語法高亮顯示:

上例中使用了phpinfo()函數,作用是輸出有關PHP當前狀態的大部分信息內容,這包括關於PHP的編譯和擴展信息、PHP版本、服務器信息和環境、PHP的環境、操作系統信息、路徑、主要的和本地配置選項的值、HTTP頭信息和PHP的許可等。因為第個系統的安裝不同,phpinfo()函數可以用於檢查某一特定系統配置設置和可用的預定義變量等等。它也是一個寶貴的調試工具,因為它包含了所有EGPCS (Environment, GET, POST, Cookie, Server) 數據。

12.安裝最新的Zend加速器,源碼包為ZendOptimizer330a.tar.gz

以上步驟已經搭建好LAMP環境了,為了提高PHP程序的運行速度,最好還是安裝一個Zend加速器(Zend Optimizer)。Zend Optimizer用優化代碼的方法來提高PHP 應用程序的執行速度。實現的原理是對那些在被最終執行之前由運行編譯器(Run-Time Compiler)產生的代碼進行優化。一般情況下,執行使用Zend Optimizer的PHP程序比不使用的要快40%到100%。這意味著網站的訪問者可以更快的瀏覽你的網頁,從而完成更多的事務,創造更好的客戶滿意度。更快的反應同時也意味著可以節省硬件投資,並增強網站所提供的服務。

為了能夠正確運行,必須滿足下列需求:
(1). Zend Optimizer必須被安裝到列表所支持的操作系統;
(2). Zend Optimizer所支持的PHP版本為PHP 4或PHP 5。
(3). 必須在一個已經安裝好的WEB服務器上運行PHP。
系統需求的完整列表將於新版本同步不斷更新,詳情參見Zend.com的Zend Optimizer系統需求部分:
http://www.zend.com/store/products/optimizer-sysreq.php

(1)進入軟件源碼包所在目錄/usr/local/src/中,解壓軟件包ZendOptimizer330a.tar.gz到當前目錄ZendOptimizer-3.3.0a-linux-glibc21-i386下,並進入ZendOptimizer-3.3.0a-linux-glibc21-i386目錄,命令行如下所示;
[root@localhost root]# cd /usr/local/src/
//進入軟件源碼包所在目錄
[root@localhost src]# tar zxvf ZendOptimizer330a.tar.gz
//解包解壓
[root@localhost src]# cd ZendOptimizer-3.3.0a-linux-glibc21-i386
//進入解壓目錄


(2)直接執行目錄下的install.sh文件安裝,命令行如下;
[root@localhost ZendOptimizer-3.3.0a-linux-glibc21-i386]# ./install.sh
//執行安裝


執行上面的操作會出現一個圖形安裝界面,按提示安裝即可,部分安裝過程如下圖所示;

安裝的歡迎界面

選擇軟件安裝位置

選擇PHP配置文件(php.ini)所在位置

選擇Apache服務器啟動命令所在位置

(3)安裝完成以後同樣使用phpinfo()函數可以檢查安裝結果,如果你能在輸出的Zend部分找到像下面的輸出, 即安裝成功,如下圖所示;

(4)卸載Zend Optimizer:
a. 用php.ini-zend_optimizer.bak替換php.ini;
b. 刪除Optimizer的安裝路徑;
c. 重新啟動Web服務器。
(註:如果您在同一路徑下安裝了Zend的其它產品,請不要刪除安裝路徑,只需替換php.ini即可。)

13.phpMyAdmin的安裝與配置,源碼包為phpMyAdmin-3.0.0-rc1-all-languages.tar.gz

phpMyAdmin是使用PHP腳本編寫的一個MySQL系統管理軟件,是最受歡迎的MySQL系統管理工具。安裝該工具後,即可以通過web形式直接管理mysql數據,而不需要通過執行系統命令來管理,非常適合對數據庫操作命令不熟悉的數據庫管理者,它可以用來創建、修改、刪除數據庫和數據表;可以用來創建、修改、刪除數據記錄;可以用來導入和導出整個數據庫;還可以完成許多其它的MySQL系統管理任務。

與其它的PHP程序一樣,是一個B/S結構的軟件,phpMyAdmin軟件需要在Web服務器上運行,因此它可以從互聯網的任何地方訪問操作。通常搭建的MySQL數據庫服務器為了數據安全,只充許localhost域才能夠操作,不充許遠程連接訪問,所以管理員在本機安裝phpMyAdmin軟件,就可以使用瀏覽器在遠程登錄管理MySQL數據庫服務器了,安裝的步驟如下;

(1)進入軟件源碼包所在目錄/usr/local/src/中,解壓軟件包phpMyAdmin-3.0.0-rc1-all-languages.tar.gz到當前目錄phpMyAdmin-3.0.0-rc1-all-languages下,命令行如下所示;
[root@localhost root]# cd /usr/local/src/
//進入軟件源碼包所在目錄
[root@localhost src]# tar zxvf phpMyAdmin-3.0.0-rc1-all-languages.tar.gz


(2)把解壓的目錄phpMyAdmin-3.0.0-rc1-all-languages下的文件,必須全部複製到Apache的DocumentRoot目錄下的某個子目錄裡,根據我們前面Aapache的安裝配置,複製到目錄/usr/local/apache2/htdocs下,建一個名為「phpmyadmin」的目錄下面,即安裝完成。命令行如下;
[root@localhost src]# cp -a  phpMyAdmin-3.0.0-rc1-all-languages\
/usr/local/apache2/htdocs/phpmyadmin       //拷貝目錄到指定位置並改名為phpmyadmin


(3)在可以使用phpMyAdmin之前,我們必須先配置一下,通過對phpMyAdmin頂層目錄下的config.inc.php文件的幾個選項做一些設置即可。默認不存在config.inc.php文件,我們需要手工創建一個,也可以複製config.sample.inc.php模板得到最低限度的配置文件,我們下面的示例對config.inc.php文件配置,只給出了必須要修改的部分,根據實際情況,也許還需要其它一些選項做出修改。創建config.inc.php配置文件命令行如下;
[root@localhost src]#cd /usr/local/apache2/htdocs/phpmyadmin/
[root@localhost phpmyadmin]# cp config.sample.inc.php config.inc.php


我們通過身份驗證模式的要求,可以有兩種配置方案,一種是http和cookie身份驗證模式。在這兩種模式下,用戶必須先在一個登錄窗口裡輸入MySQL數據庫的有效用戶名和密碼,才能使用phpMyAdmin程序。這種做法有兩個明顯的好處;首先,因為MySQL數據庫的密碼沒有出現在config.inc.php文件裡,所以身份驗證過程更加安全;其次,允許不同的用戶身份登錄對自己的數據庫進行管理。這兩種身份驗證模式尤其適合數據庫中多個用戶賬號的情況。

第二種方案是,config身份驗證模式,這種模式下,密碼以明文形式保存在config.inc.php文件裡。只需要把MySQL用戶名和密碼直接寫入到config.inc.php文件即可。這樣,在登錄phpMyAdmin時就不會提示輸入用戶名和密碼了,而只直接用config.inc.php文件裡寫入的用戶登錄。如果只是在一個本地測試系統上使用phpMyAdmin,可以使用這種模式。

1.http身份驗證模式

如果想讓phpMyAdmin使用http身份驗證模式,首先需要在config.inc.php文件裡黑體部分做出如下所示的修改,具體內容如下;
[root@localhost phpmyadmin]# vi config.inc.php
… …
$cfg['blowfish_secret'] = '';
$i = 0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'http' ;         //只將這一行修改成http身份驗證模式即可
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['extension'] = 'mysql';
… …


當完成設置之後,我們啟動phpMyAdmin時,屏幕上將彈出一個Web瀏覽器對話框,需要在這個對話框裡輸入MySQL用戶名和密碼,才能進入phpMyAdmin操作界面。如下圖所示,在Windows客戶端使用IE瀏覽器,訪問Web服務器的phpMyAdmin目錄下的index.php文件,即啟動了phpMyAdmin。

2. cookie身份驗證模式

cookie身份驗證模式是http身份驗證模式的補充,不能使用http身份驗證模式的場合都可以使用它。Cookie身份驗證模式要求用戶必須允許來自phpMyAdmin的cookie進入自己的計算機。即用戶需要開啟客戶端的cookie功能。

如果想讓phpMyAdmin使用cookie身份驗證模式,除了必須修改config.inc.php文件裡的auth_type語句外,還必須向blowfish_secret參數提供一個字符串,這個字符串可以是任意的,目的是在把登錄時使用的用戶和密碼在存儲在客戶端電腦上的cookie之前,系統將會使用這個字符串對它們進行加密,在config.inc.php中修改的內容如下;
[root@localhost phpmyadmin]# vi config.inc.php
… …
$cfg['blowfish_secret'] = ''xxxxxxx'';                   //這裡需要一個任意的字符串
$i = 0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie' ;           //這條修改成cookie身份驗證模式
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['extension'] = 'mysql';
… …


和上面啟動phpMyAdmin的方式一樣,我們在Windows客戶端使用IE瀏覽器,訪問Web服務器上的phpMyAdmin目錄下的index.php文件,需要提供MySQL的用戶名和密碼才能登錄,如下圖所示;

3.config身份驗證模式

如果想讓phpMyAdmin使用config身份驗證模式,首先需要在config.inc.php文件裡做出如下所示的修改,把MySQL數據庫的用戶名和密碼以明文的方式寫入,具體修改內容如下
[root@localhost phpmyadmin]# vi config.inc.php
… …
$i = 0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'config' ;
//這條修改成config身份驗證模式
$cfg['Servers'][$i]['host'] = 'localhost';
//添加以下兩個選項
$cfg['Servers'][$i]['user'] = 'root';                 //使用你MySQL數據庫的用戶名
$cfg['Servers'][$i]['password'] = '123456';   //使用你MySQL數據庫的密碼
… …


和上面啟動phpMyAdmin的方式一樣,我們在Windows客戶端使用IE瀏覽器,訪問Web服務器上的phpMyAdmin目錄下的index.php文件,但不用提供MySQL的用戶名和密碼就以可登錄,它使用的是config.inc.php中的以明文方式寫入的用戶名和密碼登錄的。如下圖所示;

如上圖所示,真接就可以登錄phpMyAdmin操作MySQL數據庫裡的數據,這種模式不夠安全,所以只適合在一個本地測試系統上使用。


原文出處:LAMP网站软件开发环境汇总 - Linux - 操作系统专区 - PHPChina 论坛 | PHP技术交流社区
前一個主題 | 下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|