以後輔助編譯包(buildtools.zip)的文件就固定在這裡,有變更會隨時修改,編譯流程請看這裡

假設編譯的工作目錄在 D:\Work,那麼請把下列檔案解開到 D:\Work 下:

編譯時請開一個空白的 CMD,不要用SDK裡面的捷徑,因為相關的環境設定已經寫在輔助編譯包內的批次檔中了。

HACGIS 發表在 痞客邦 留言(0) 人氣()

IMAP 的編譯方式比較奇特,請先看一下解開後的 PHP 源碼目錄中的 ext\imap\IMAP_Win32_HOWTO.txt 這個檔案。
  1. IMAP 源碼:下載,請下載 imap.tar.Z 這個檔案。
  2. 解開後放到 D:\Work\test\imap 中,編輯 D:\Work\test\imap\src\osdep\nt\makefile.nt 這個檔案,找到 CFLAG 那行,把 /MT 改成 /MD。
  3. 切換目錄到 D:\Work\test\imap 中,執行 nmake -f makefile.nt,過程中最後會編譯失敗,但我們仍然可以得到需要的 *.h 及 cclient.lib。
  4. 將 D:\Work\test\imap\c-client\*.h 複製到 D:\Work\win32build\include 中。
  5. 將 D:\Work\test\imap\c-client\cclient.lib 複製並取代 D:\Work\win32build\lib\cclient.lib。
  6. 修改 php_conf.bat 加上參數 --with-imap=shared(IMAP 這個 Extension 只能以動態連結的方式編譯)
  7. 重新編譯 PHP,執行:php_make.bat
  8. 編譯完成後安裝請執行:php_make.bat install
  9. 修改 php.ini 加上 extension=php_openssl.dll
  10. 靜態連結:no
  11. 動態連結:yes

HACGIS 發表在 痞客邦 留言(0) 人氣()

安裝步驟:
  1. 網路上我有找到預編好的 lib 可以使用,在這裡下載
  2. 下載後安裝起來,預設會裝到 C:\OpenSSL 下,請把 C:\OpenSSL\include\openssl 複製到 D:\win32build\include\openssl 下。
  3. C:\OpenSSL\lib\VC 下有許多 libeay*.lib 和 ssleay32*.lib 檔,請選擇相同字尾的 libeay*.lib 和 ssleay32*.lib 各一,複製到 D:\win32build\lib 下,並更名為 libeay.lib 和 ssleay32.lib。
  4. 主檔名最後是 d 的表示是 Debug 版,沒有 d 的是 Release 版
    • MT 表示 Multi-threaded, statically linked  - libcmt.lib,MD 表示 Multi-threaded, dynamically linked - msvcrt.lib
    • 個人建議使用 MT 系列的。
  5. 修改 php_conf.bat 加上 --enable-openssl=[shared] 參數。
  6. 重新編譯 PHP,執行:php_make.bat
  7. 編譯完成後安裝請執行:php_make.bat install
  8. 若使用動態連結,請修改 php.ini 加上 extension=php_openssl.dll
  9. 靜態連結:yes
  10. 動態連結:yes

HACGIS 發表在 痞客邦 留言(0) 人氣()

Suhosin 是一個關於 PHP 安全方面的 Patch,FreeBSD 內建已經會將此 Patch 加入 PHP 編譯。
Suhosin有兩種方式可以增加 PHP 的安全性,一種是使用 Patch 的方式,另一種是使用 Extension 的方式,兩種方式也可以同時使用。

在 Windows 下也可以作這項 Patch,請看以下的步驟來進行:
  1. 下載 Patch ,請注意你所使用的 PHP 版本:下載,這裡假設 Patch 檔的檔名為 suhosin-patch-5.2.0-0.9.6.2.patch。
  2. 工具:patch,可以從 GnuWin32 上取得,或是下載最新的輔助編譯包,裡面也有這些工具。
  3. 將 Suhosin 的 Patch 解開放到 D:\Work 中。
  4. 請切換目錄至 php-x-x-x 中,執行:patch -binary -p 1 -i ../suhosin-patch-5.2.4-0.9.6.2.patch
    • 註:在 Windows 下作 Patch 一定要使用 -binary 參數,這是由於 Windows 與 *nix 中的換行符號不同所必須注意的地方
  5. Patch 完後請重新編譯 PHP,執行:php_make.bat rebuild
  6. 編譯完成後安裝請執行:php_make.bat install

HACGIS 發表在 痞客邦 留言(2) 人氣()

Xcache 屬於 PECL 的 Extension,所以請照下面的步驟來編譯:
  1. 源碼:下載
  2. 工具:m4、grep、sed、gawk、cat 都可以在 GnuWin32 中找到,記得要把 Binaries 和 Dependencies 都抓下來,或是下載最新的輔助編譯包,裡面也有這些工具。
  3. 建立 D:\Work\PECL 目錄,並將源碼解壓縮至 D:\Work\PECL\Xcache 下
  4. 修改 D:\Work\PECL\Xcache\Makefile.frag 的第 21 行:
    • 將 $(GREP) 'export: ' $(XCACHE_PROC_OUT) | $(SED) 's/.*export:\(.*\):export.*/\1/g' | $(XCACHE_INDENT) > $(XCACHE_PROC_H).tmp 改成:
    • $(GREP) "export: " $(XCACHE_PROC_OUT) | $(SED) "s/.*export:\(.*\):export.*/\1/g" | $(XCACHE_INDENT) > $(XCACHE_PROC_H).tmp
    • 也就是將單引號改為雙引號,因為 GunWin32 中的 grep 和 sed 不認得單引號。
  5. 執行 php_config.bat --help 看看有哪些可用的參數,根據你的需要修改 php_conf.bat
    • 目前經我的測試,可用的參數有:
      • --enable-xcache
      • --enable-xcache-optimizer
      • --enable-xcache-coverager
      • --enable-xcache-assembler
      • --enable-xcache-encoder
      • --enable-xcache-decoder
    • 無法使用的參數有:
      • --enable-xcache-disassembler
      • --enable-xcache-test
    • 設定要作動態連結就只需要修改 --enable-xcache=shared 即可,其他的參數無須加上 =shared,預設會使用 --enable-xcache=shared 來編譯,若要作靜態連結,請設定 --enable-xcache
  6. 修改完後請執行:php_make.bat
  7. 編譯完成後安裝請執行:php_make.bat install
  8. 修改 php.ini 加上 xcache 相關的設定,但有一個設定要注意:
    • xcache.shm_scheme = "malloc"
    • 這一項設定請使用 malloc ,預設是 mmap ,但經我測試若設定成 mmap 則 xcache 無法啟動。
  9. 靜態連結:yes
  10. 動態連結:yes

HACGIS 發表在 痞客邦 留言(0) 人氣()