今天想到既然重新編譯了Apache那就順便來作一下網站的加速吧

Apache
在上一篇提到阿維編譯的時候加入了mod_deflate
編譯完之後在httpd.conf 加入下面的內容

SetOutputFilter DEFLATE
DeflateFilterNote ratio
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary

因為它是將資料壓縮來達到加速的效果
阿維認為圖檔和壓縮檔不需要再壓縮
所以才會有後面那三行

做好之後重新啟動Apache就可以了

PHP
阿維採用的凱大人建議使用的 eAccelerator
因為阿維的機器裝有兩個PHP因此採用下面的編譯方法
不過我想即使只裝一個PHP也是可以使用這種方法的

解壓縮eaccelerator-0.9.5.tar.bz2
編譯eAccelerator
export PHP_PREFIX="/usr/local/php"
$PHP_PREFIX/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config

make
make install

後續設定
然後我將 /usr/local/php/lib/php/extensions/eaccelerator.so 複製到 /usr/local/php/lib
這是我的習慣,你可以自己修改只是要記得自己把這個檔案放在哪裡

接著打開php.ini 輸入以下內容
zend_extension="/usr/local/php/lib/eaccelerator.so" <---- 這裡根據你剛剛放置 eaccelerator.so的位置要進行修改
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

然後重新啟動Apache,打開你的phpinfo頁面,你如果看到
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
with eAccelerator v0.9.5, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
紅色是我自己標的,正常是顯示黑色字,看到紅色這段文字就代表成功了

MySQL
當 Apache 和 PHP 的加速器安裝完成之後
接下來就是要找出那些執行特別久的SQL statement了
編輯my.cnf,加入以下內容
log_slow_queries =/var/log/slow_queries.log
然後重新啟動MySQL,他就會把執行特別久的SQL statement記錄在 /var/log/slow_queries.log 這個檔案了
接下來觀察一兩天,然後針對log裡所記載的SQL statement進行調教
這樣一來你的系統就可以運作的更有效率
執行速度也更快了