對於那些使用 Ubuntu 並且完全不熟悉編譯的人來說,在 Ubuntu 下編譯很容易
安裝 libc-client-dev
# sudo apt-get install libc-client-dev
安裝 PHP5 imap
# sudo apt-get install php5-imap
重新啟動 Apache
# sudo service apache2 reload
應該適用於大多數人。
此擴充功能需要安裝 c-client 函式庫。從 » https://github.com/uw-imap/imap 取得最新版本並編譯它。
請務必不要將 IMAP 原始碼檔案直接複製到系統 include 目錄中,因為可能會發生衝突。請在系統 include 目錄中建立一個新的目錄,例如 /usr/local/imap-2000b/(位置和名稱取決於您的設定和 IMAP 版本),並在這個新目錄中建立名為 lib/ 和 include/ 的額外目錄。從您的 IMAP 原始碼樹的 c-client 目錄中,將所有 *.h 檔案複製到 include/,並將所有 *.c 檔案複製到 lib/。此外,當您編譯 IMAP 時,會建立一個名為 c-client.a 的檔案。也將此檔案放入 lib/ 目錄,但將其重新命名為 libc-client.a。
注意:
若要使用 SSL 或/和 Kerberos 支援來建置 c-client 函式庫,請閱讀套件隨附的文件。
注意: 在 Mandrake Linux 中,IMAP 函式庫 (libc-client.a) 是在沒有 Kerberos 支援的情況下編譯的。另一個具有 SSL (client-PHP4.a) 的獨立版本已安裝。必須重新編譯該函式庫才能新增 Kerberos 支援。
對於那些使用 Ubuntu 並且完全不熟悉編譯的人來說,在 Ubuntu 下編譯很容易
安裝 libc-client-dev
# sudo apt-get install libc-client-dev
安裝 PHP5 imap
# sudo apt-get install php5-imap
重新啟動 Apache
# sudo service apache2 reload
應該適用於大多數人。
應該注意的是,華盛頓大學的原始碼封存檔及其鏡像已停止使用一段時間。
此處有一個 github 儲存庫:https://github.com/uw-imap/imap
php-imap 套件在 Red Hat Enterprise Linux 7 或 8 中均不可用。
若要自行編譯擴充功能
先決條件
# yum install pam-devel openssl-devel
請依照先前「ldi at email dot cz」文章中的步驟 2 和 3 操作
從 github 下載 c-client 函式庫,您可以在頁面頂端看到連結,並使用下列命令編譯
# make lr5 SSLINCLUDE=/usr/include/openssl/ EXTRACFLAGS=-fPIC
(如果您使用其他發行版,請輸入其他命令,而不是 lr5,您可以查看 Makefile 以取得其他 Unix 版本)
請依照先前「ldi at email dot cz」文章中的步驟 5 操作,這也是頁面頂端第二段說明的部分。
下載系統中安裝版本的 PHP 原始碼,並前往 php/ext/imap 資料夾。
# phpize
(如果您從 Red Hat 軟體集合安裝 PHP 套件,則必須先執行以下命令來設定環境,例如:scl enable rh-php73 bash)
# ./configure --with-imap=<<path_to_where_you_unpacked_the_c-client_library_and_compiled_it>> --with-imap-ssl
# make
這會建立檔案 php/ext/imap/modules/imap.so :)
將其複製到您的 extension_dir(您可以在 phpinfo() 頁面中找到它)。
在 php.d 資料夾中建立一個 .ini 檔案,內容為:extension=imap.so
重新啟動 apache 並享受。
附註:您可能會在其他地方找到已編譯的擴充功能,但誰知道來源的可靠性,因此最好取得官方未經修改的來源。
最初由 UW 的 Mark Crispin 開發的 Alpine 電子郵件用戶端也使用「c-client」函式庫,並且目前仍由 Eduardo Chappa 積極開發:https://alpineapp.email/alpine/release/。它有自己更新的「c-client」函式庫副本,支援 OAuth2 驗證等新功能。
可以透過 https://github.com/uw-imap/imap/commits/master/src/c-client 和 https://repo.or.cz/alpine.git/history/HEAD:/imap/src/c-client 來比較 UW IMAP 和 Alpine 「c-client」函式庫的開發情況
如果此 PHP 擴充功能無法與 Alpine「c-client」搭配使用,可能需要有人將 PHP 移植以支援它。