今天想到既然重新編譯了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進行調教
這樣一來你的系統就可以運作的更有效率
執行速度也更快了