轉自:http://www.linuxchina.net/?p=1361
編譯安裝php,php會產生許多擴展,這些擴展分為動態和靜態編譯兩種。
動態編譯會自動產生so文件,並儲存在:$php/lib/php/extensions/no-debug-non-zts-20060613/,這些so檔案包含了php所能呼叫的函式庫,當程式碼中需要呼叫這些函式庫時php會動態的載入這些so檔。
靜態編譯指在編譯安裝php時並不會自動產生這些so文件,而是將這些so文件中的函數庫靜態的編譯進php中,這樣程式碼在呼叫時也會被呼叫到。
動態編譯與靜態編譯的區別:
動態編譯時每一個php擴充都會產生自己的so文件,程式碼呼叫這些函式庫時會動態的載入對應的so文件,這樣可以最佳化程式碼執行時間和控制php記憶體的大小;而靜態編譯雖然也能讓程式碼呼叫對應的函式庫,但在高並發的情況下,全部載入php的函式庫,會帶來更多的記憶體消耗,影響伺服器效能。
動態編譯與靜態編譯的實作:
動態編譯需要在設定時指定參數shared,例如:
-with-zlib=shared -with-pdo-mysql=shared,/usr/local/mysql
靜態編譯則不需要指定參數shared,例:-with-zlib
以上就介紹了About php Extensions,包含了方面的內容,希望對PHP教程有興趣的朋友有幫助。