PALMisLIFE 討論區

標題: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource [列印本頁]

作者: jamesanna    時間: 2003-9-15 02:43
標題: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource
文:pigo & AndyGod
pigo 可能很多人認識他,php的big字串函數集就是他寫的

這個名叫 Truck mm cache 的軟體 , 網址如下
http://www.turcksoft.com/en/e_mmc.htm

這套軟體支援 Apache 1.3 / 2.0 , 比 iCube 的 php accelerator 好的地方是支援 apache 2.0
且免費公開原始碼使用

在 Linux 下需要與編譯 , 編譯過程很簡單, 網站有 Step by step 說明
在 Windows 下下載zip 檔不需編譯即可使用

我來簡單介紹一下原理
PHP 是一種直譯程式
你的 PHP 程式要透過 PHP 直譯器才得以執行
PHP 直譯之後會有所謂的 opcode , opcode 在記憶體內就可以執行
這套軟體主要攔截 opcode , 並且存放在 Share Memory
因此下次就不用重新以 PHP 去直譯 , 因此得以讓效能提高
據我測試 , 有裝和沒裝有差 2 倍速度

Linux:
  1. 首先先把壓縮檔解開放在任何目錄
  2. 若你的 PHP 為 Linux 套件內附的版本 , 應當有 phpize 這個指令
  3. 若你是自行編譯 php , 則你要確定你的 phpize 在那裡
  4. 然後你進入解開的目錄照下面步驟執行
  5. 1. phpize
  6. 2. ./configure --enable-mmcache=shared
  7. 3. make
  8. 4. make install
  9. 若能成功編譯 , 他會產生一個檔案 mmcache.so , 並且放在你的 php extension 的目錄
  10. 至於你的 php extension 目錄在那裡 , 他在編譯後會告訴你
  11. 然後你要修改 php.ini , 你不要跟我說你不知道  php.ini 在那裡 ><
  12. 打開 php.ini 在 [PHP] 下面的區段加入下列敘述
  13. extension="mmcache.so"
  14. mmcache.shm_size="16"
  15. mmcache.cache_dir="/tmp/mmcache"
  16. mcache.enable="1"
  17. mmcache.optimizer="1"
  18. mmcache.check_mtime="1"
  19. mmcache.debug="0"
  20. mmcache.filter=""
  21. 其中 mmcache.shm_size="16" 代表用 16MB 的記憶體來快取 , 可以看你主機狀況調整之
  22. 最後一個步驟是 , 檢查php.ini 的 extension_dir 是不是與你的 mmcache.so 放的目錄一樣 , 若一樣就可以存檔了
  23. 接下來把 apache 關閉 , 並且重新啟動

  24. 然後你可以試著寫一個簡單的 <? phpinfo(); ?> 程式來看看 Turck mm 是不是有載入
  25. 若有載入 , 他會在 phpinfo 內顯示快取的數量 , 使用的記憶體等資訊 , 如此便成功了

  26. 注意:Linux 如果編譯時出現錯誤訊息,可能是你還沒編譯 libmm

  27. 到 [url]http://www.engelschall.com/sw/mm/[/url]
  28. 下載 mm-1.3.0.tar.gz
  29. tar zxf mm-1.3.0.tar.gz
  30. ./configure
  31. make;mak install
  32. cd ..
  33. tar zxf turck-mmcache-2.3.9.tar.gz
  34. ./configure --enable-mmcache=shared
  35. make;make install
  36. mkdir /tmp/mmcache
  37. chmod 0777 /tmp/mmcache
  38. 然後依照版大改 php.ini 的方法,restart apache
複製代碼


Windows:
  1. 解壓縮後找到mmcache.dll,請將這個檔案copy到,你的php安裝目錄下的\extension\目錄中
  2. 如:C:\php\extensions\
  3. 然後編輯 php.ini
  4. 請在最下面的地方放上下面的資料
  5.   zend_extension_ts="C:\php\extensions\mmcache.dll" <--這路徑就是你剛放置mmcache.dll到php的路徑
  6.   mmcache.shm_size="16"
  7.   mmcache.cache_dir="c:\tmp\mmcache" <--這是當記憶體不足時,會產生一個cache檔的存放路徑,你可以自行指定一個路徑及目錄給它。
  8.   mmcache.enable="1"
  9.   mmcache.optimizer="1"
  10.   mmcache.check_mtime="1"
  11.   mmcache.debug="0"
  12.   mmcache.filter=""
  13. 然後存檔,重新啟動 apache 看看
複製代碼


Code (2K + IIS) :
  1. 1.下載 Turck MMCache 2.3.9  下載 Turck MMCache 2.3.9
  2. 2.將檔案解壓縮到 c:\123
  3. 3.取出 mmcache.dll
  4. 4.COPY到PHP的目錄下 例 c:\php
  5. 5.建立目錄 c:\你的PHP目錄\mmcache
  6. 6.設定 PHP.ini如下
  7. ;;;;;;;;;;;;;;;;;;;;;;;;;
  8. ; Turck MMCache for PHP ;
  9. ;;;;;;;;;;;;;;;;;;;;;;;;;

  10. zend_extension_ts="c:\PHP4\mmcache.dll"
  11. mmcache.shm_size="16"
  12. mmcache.cache_dir="C:\PHP4\mmcache"
  13. mmcache.enable="1"
  14. mmcache.optimizer="1"
  15. mmcache.check_mtime="1"
  16. mmcache.debug="0"
  17. mmcache.filter=""
  18. 7.驗證 [url]http://IP/mmcache.php[/url] 看看
複製代碼

作者: star69    時間: 2003-9-15 04:02
標題: Re: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource
OS 如果是 FreeBSD 直接由 posts 安裝即可
  1. cd /usr/ports/www/turck-mmcache ; make install clean
複製代碼

作者: 小酒蟲    時間: 2003-9-15 10:13
標題: Re: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource
目前只支援到 php v4.3.2 的樣子,看來還是等更新支援到 v4.3.3 再來試試?
作者: star69    時間: 2003-9-29 03:30
標題: Re: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource
v2.4.0 以支援 4.3.3
作者: etwing    時間: 2003-11-28 03:06
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 小酒蟲    時間: 2004-8-23 11:17
標題: Re: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource
前些日子把 php 版本拉升,不過就沒了對應版本....B)B)B)
作者: Dragoon    時間: 2004-8-23 11:27
標題: Re: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource
首頁已經改到這邊了:
http://turck-mmcache.sourceforge.net/index_old.html
作者: Dragoon    時間: 2004-8-23 11:52
標題: Re: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource
剛剛針對 PHP 官方發表的 4.3.8 Win32 版 Build 一份.
有需要者可以下載.

文件我就不附了, 上面的網頁都看的到.

加速效果真的不錯, 尤其是免費的! 讚!

ps. ZPS 賣的好貴喔~ 不過人家包裝的好, 有需要的還是得買說~

[ Last edited by Dragoon on 2004-8-23 at 11:54 ]
作者: Dragoon    時間: 2004-8-23 15:59
標題: Re: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource
有人下載的感覺真好, 大家用的心得要不要貼一下啊?

我些說我自己的好了,
我開發 PHP 的習慣是 將所有的流程與物件都讓 進入點 index.php include 進來
然後再用兩個變數 Option 與 Select 來判斷是由哪個 function 來處理流程.

優點是具有一致性, 所有的修改只要改一次就會套用到所有的頁面.
不過缺點就是隨著程式變大, 執行效能就會很明顯的下降,

之前有試用 Zend 的 ZPS, 用起來是不錯啦, 統計報表啊, 功能設定啊都很強
不過太貴了, 尤其是鎖的太緊, 買了一套只能在主機上用, 開發端還不能另外裝一套來測試.

之前看過這套, 不過許久之前還不是很成熟, 所以都不太敢用, 剛剛試用發現挺不錯的, 執行時間明顯下降.

本來 Login 頁面都有 .16  秒的執行時間(在我的開發機器上, 有載入 Zend Optimizer), 裝上後是 .03 秒
一個比較大的產品瀏覽頁面, 本來要 .7~.8 秒的, 裝上後 reload 幾次都在 .46 秒左右.

我開發 PHP 依賴 Smarty, Pear, Object 甚深, 透過 這個免費的加速器 可以相當程度的改善執行效能, 相當棒!

[ Last edited by Dragoon on 2004-8-23 at 16:17 ]
作者: 小酒蟲    時間: 2004-8-23 16:29
標題: Re: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource
我在 Windows 2000 Pro + Apache v2.0.50 + php v4.3.8 之下跑,啟動 mmcache 反而很容易把 Apache 搞當。B)B)B)

[ Last edited by 小酒蟲 on 2004-9-23 at 23:08 ]
作者: Dragoon    時間: 2004-8-23 16:34
標題: Re: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource
我的組態跟你很接近說, Win 2000 Pro Apache/2.0.49 (Win32) PHP/4.3.8.
DB 跑 MySQL 4.1.3-beta

咦? 是自己寫的 AP 還是 phpBB2 之類的 AP 容易掛呢?
我這邊試到現在(自己寫的 AP)還沒出過問題說~

不過該作者很久沒更新程式碼了, 這倒是比較麻煩~

[ Last edited by Dragoon on 2004-8-23 at 16:37 ]
作者: 小酒蟲    時間: 2004-8-23 16:37
標題: Re: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource
這兩天在操 WordPress v1.2,都是用到一半當掉。目前先把 mmcache unload,看看是不是它的問題。

php.ini 裡依 turck-mmcache-2.4.6-win32-php-4.3.4.zip 的說明設定如下:

[mmcache]
zend_extension_ts="d:\server\php\extensions\mmcache.dll"
mmcache.shm_size="16"
mmcache.cache_dir="c:\winnt\temp"
mmcache.enable="1"
mmcache.optimizer="1"
mmcache.check_mtime="1"
mmcache.debug="0"
mmcache.filter=""
mmcache.shm_max="0"
mmcache.shm_ttl="0"
mmcache.shm_prune_period="0"
mmcache.shm_only="0"
mmcache.compress="1"

[ Last edited by 小酒蟲 on 2004-8-23 at 01:40 ]
作者: Dragoon    時間: 2004-8-23 16:46
標題: Re: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource
我的設定跟你的一樣, 除了那兩行路徑設定跟記憶體大小

[mmcache]
zend_extension_ts="D:\apache\php-4.3.8\extensions\mmcache.dll"
mmcache.shm_size="32"
mmcache.cache_dir="D:\apache\temp\Cache"
mmcache.enable="1"
mmcache.optimizer="1"
mmcache.check_mtime="1"
mmcache.debug="0"
mmcache.filter=""
mmcache.shm_max="0"
mmcache.shm_ttl="0"
mmcache.shm_prune_period="0"
mmcache.shm_only="0"
mmcache.compress="1"

另外我有把 Zend Optimizer 解除執行.
作者: 小酒蟲    時間: 2004-8-23 17:01
標題: Re: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource
Originally posted by Dragoon at 2004-8-23 01:46:
另外我有把 Zend Optimizer 解除執行.

我沒裝,它們不會打架嗎?

[ Last edited by 小酒蟲 on 2004-8-23 at 02:08 ]
作者: Dragoon    時間: 2004-8-23 17:29
標題: Re: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource
Truck mm cache 文件上建議不要裝 Zend Optimizer.
除非有用 Zend Encoder 編碼過 source.
原因是因為被編碼過的程式一定要有 Zend Optimizer 來解碼.

[ Last edited by Dragoon on 2004-8-23 at 23:15 ]
作者: 小酒蟲    時間: 2004-8-23 19:14
標題: Re: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource
改到 32 之後目前看來正常,明天起床再來研究各參數的作用。B)B)B)
作者: Dragoon    時間: 2004-9-23 23:20
標題: Re: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource
4.3.9 正式版出來了, 更新了一下, 順便打包傳上 PIL
作者: hsimindy    時間: 2004-9-24 11:30
提示: 作者被禁止或刪除 內容自動屏蔽
作者: Dragoon    時間: 2005-1-24 12:32
標題: Re: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource
繼續 ... 4.3.10
作者: Dragoon    時間: 2005-2-27 12:11
標題: Re: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource
這個加速器由於原先專案的創始人加入 Zend,已經許久不維護了,有人接手創了個新專案:
eaccelerator

編譯好的 dll 與 so 可在下方下載:
http://www.arnot.info/eaccelerator/
以後就不需要自己辛苦編譯了。

安裝方式請參考該專案首頁:
http://eaccelerator.net/HomeUk

我把我的 php.ini 設定檔貼上來,方便大家參考:
;[eaccelerator]
zend_extension_ts="D:\apache\php-4.3.10\extensions\eAccelerator.dll"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="D:\apache\temp\Cache"
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"

題外話:
PHP 5.0 東缺西缺,想要移轉還真不容易 ... 唉 ...
libmysql.dll 缺,要用新版的 libmysql.dll 還得轉介面 mysqli, w32api 轉成 ffi 還在 beta,搞了半天還是搞不訂,還是繼續窩 4.3 好了,5.0 再等個半年再來轉。
作者: Dragoon    時間: 2005-6-27 14:20
標題: Re: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource
小弟個人已移轉至 PHP 5.0.4 的環境了,除了安裝的一些問題 mysql 啦,有些缺的功能要到 pecl 裡面挖一下之外,所有在 PHP 4 上面的程式都可順利移轉至 PHP 5 上(當然向下相容的參數要打開)。
作者: Dragoon    時間: 2005-7-3 12:18
標題: Re: [Discuz! Hack][轉貼]PHP 加速器 , 又免費 又OpenSource
eaccelerator 跟 zend_optimizer 是可以同時啟動的,有些商業套件是以編碼過的格式釋放出來(像我正在試用的excel_parser_pro),
需要 zend_optimizer 一起配合才能使用,以下的方式可以一起載入 eaccelerator 跟 zend_optimizer (注意要修改路徑):
;[eaccelerator]
zend_extension_ts="D:\apache\php\ext\eAccelerator.dll"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="D:\apache\temp\Cache"
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"
eaccelerator.keys     = "shm_and_disk"
eaccelerator.sessions = "shm_and_disk"
eaccelerator.content  = "shm_and_disk"
[Zend]
zend_extension_ts="D:\apache\Zend\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts="D:\apache\Zend\lib\Optimizer-2.5.10"
zend_optimizer.optimization_level=0
zend_optimizer.encoder_loader=1




歡迎光臨 PALMisLIFE 討論區 (http://f.pil.tw/) Powered by Discuz! X2.5