摘要:目前支持和協(xié)議。除此以外,還能在可能的字符編碼之間相互進(jìn)行編碼轉(zhuǎn)換。如果啟用了這個(gè)功能,輸入字符編碼可能將自動(dòng)轉(zhuǎn)換成。這些可能在未來增加。
前言
PHP7即將在12月3日正式發(fā)布,而RC8是已經(jīng)差不多穩(wěn)定了的版本,后續(xù)的GA版本主要都是在修復(fù)bug,所以為了未來開發(fā)環(huán)境的升級(jí),準(zhǔn)備嘗試安裝一下。
PHP7.0.0將在12月3日正式發(fā)布,但是12月2日時(shí)github已經(jīng)發(fā)布出PHP-7.0.0.tar.gz源碼包,只是官方網(wǎng)站還尚未更新,本文也對(duì)錯(cuò)誤之處進(jìn)行修正。
目前PHP7正式版已經(jīng)移除了古老的mysql擴(kuò)展和ereg擴(kuò)展
任何軟件都要先嘗試下默認(rèn)編譯選項(xiàng),PHP也是一樣,特別是PHP本身模塊眾多。
經(jīng)過嘗試,默認(rèn)編譯情況只會(huì)開啟以下模塊:
[PHP Modules] Core ctype date dom fileinfo filter hash iconv json libxml mysqli mysqlnd pcre PDO pdo_mysql pdo_sqlite Phar posix Reflection session SimpleXML SPL sqlite3 standard tokenizer xml xmlreader xmlwriter [Zend Modules]
而蘋果默認(rèn)的PHP5.5.29則會(huì)開啟以下模塊
[PHP Modules] bcmath bz2 calendar Core ctype curl date dba dom ereg exif fileinfo filter ftp gd hash iconv json ldap libxml mbstring mysql mysqli mysqlnd openssl pcre PDO pdo_mysql pdo_sqlite Phar posix readline Reflection session shmop SimpleXML snmp soap sockets SPL sqlite3 standard sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zip zlib [Zend Modules]
經(jīng)過對(duì)比,兩者差別bcmath,bz2,calendar,curl,dba,ereg,exif,ftp,gd,ldap,mbstring,mysql,mysqli,mysqlnd,openssl,pdo_mysql,readline,shmop,snmp,soap,sockets,sysvmsg,sysvsem,sysvshm,tidy,wddx,xmlrpc,xsl,zip,zlib
差異模塊簡(jiǎn)介 bcmath對(duì)于任意精度的數(shù)學(xué),PHP提供了支持用字符串表示的任意大小和精度的數(shù)字的二進(jìn)制計(jì)算。
自 PHP 4.0.4,libbcmath 隨同 PHP 一起發(fā)布。該擴(kuò)展不需要任何外部的庫。
本類函數(shù)僅在 PHP 編譯時(shí)配置了 --enable-bcmath 時(shí)可用。
bz2bzip2 函數(shù)用于透明地讀寫 bzip2(.bz2)壓縮文件。
本模塊使用了 Julian Seward 的 ? bzip2 庫中的函數(shù)。本模塊需要 bzip2/libbzip2 版本 >= 1.0.x。
PHP 的 Bzip2 支持默認(rèn)未打開。編譯 PHP 時(shí)需要 --with-bz2[=DIR] 配置選項(xiàng)來激活 bzip2 支持。
calendar歷法擴(kuò)展集包括了一系列用于在不同歷法間進(jìn)行轉(zhuǎn)換的函數(shù),它是以Julian Day計(jì)數(shù)為中介或標(biāo)準(zhǔn)來進(jìn)行的。Julian Day計(jì)數(shù)是以公元前的4713年的1月1日為起點(diǎn)的一種計(jì)數(shù)法。為了在不同歷法間進(jìn)行轉(zhuǎn)換,你首先要轉(zhuǎn)換成Julian Day計(jì)數(shù),然后再轉(zhuǎn)換為你所需要的歷法。
構(gòu)建此擴(kuò)展不需要其他擴(kuò)展。
要使用本類函數(shù),需要在編譯 PHP 時(shí)加上 --enable-calendar 。
curlPHP支持的由Daniel Stenberg創(chuàng)建的libcurl庫允許你與各種的服務(wù)器使用各種類型的協(xié)議進(jìn)行連接和通訊。libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap協(xié)議。libcurl同時(shí)也支持HTTPS認(rèn)證、HTTP POST、HTTP PUT、 FTP 上傳(這個(gè)也能通過PHP的FTP擴(kuò)展完成)、HTTP 基于表單的上傳、代理、cookies和用戶名+密碼的認(rèn)證。
為了使用PHP的cURL函數(shù),你需要安裝? libcurl包。PHP需要使用libcurl 7.0.2-beta 或者更高版本。在PHP 4.2.3 里使用cURL,你需要安裝7.9.0或更高版本的libcurl。從PHP 4.3.0開始你需要安裝7.9.0或更高版本的libcurl。從PHP 5.0.0開始你需要安裝7.10.5或更高版本的libcurl。
要使用PHP的cURL支持你必須在編譯PHP時(shí)加上--with-curl[=DIR] 選項(xiàng),DIR為包含lib和include的目錄路徑。在include目錄中必須有一個(gè)名為curl,包含了easy.h和curl.h的文件夾。lib文件夾里應(yīng)該有一個(gè)名為libcurl.a的文件。對(duì)于PHP 4.3.0你可以配置--with-curlwrappers 使cURL使用URL流。
dba
These functions build the foundation for accessing Berkeley DB style databases.
這些方法是用來訪問伯克利DB風(fēng)格的數(shù)據(jù)庫
This is a general abstraction layer for several file-based databases. As such, functionality is limited to a common subset of features supported by modern databases such as ? Oracle Berkeley DB.
這是一個(gè)用于多個(gè)基于文件的數(shù)據(jù)庫的通用抽象層,因此功能僅局限于相待數(shù)據(jù)庫的公共子集,例如Oracle Berkeley DB
By using the --enable-dba=shared configuration option you can build a dynamic loadable module to enable PHP for basic support of dbm-style databases. You also have to add support for at least one of the following handlers by specifying the --with-XXXX configure switch to your PHP configure line.
通過使用--enable-dba=shared編譯選項(xiàng),你可以編譯一個(gè)動(dòng)態(tài)鏈接庫讓PHP支持dbm-style數(shù)據(jù)庫,你還必須添加至少一種下列處理程序通過制定--with-XXXX編譯開關(guān)在編譯選項(xiàng)中ereg
Regular expressions are used for complex string manipulation. PHP uses the POSIX extended regular expressions as defined by POSIX 1003.2.
正則表達(dá)式用于復(fù)雜字符串操作,PHP使用POSIX擴(kuò)展正則表達(dá)式
構(gòu)建此擴(kuò)展不需要其他擴(kuò)展。
要激活 regexp 的支持在配置 PHP 時(shí)加上 --with-regex[=TYPE] 。TYPE 可以是 system,apache 或 php 之一。默認(rèn)使用 php。
exif通過使用 exif 擴(kuò)展,你可以操作圖像元數(shù)據(jù)。 例如:你可以使用 exif 相關(guān)的函數(shù)從文件頭讀取 數(shù)碼相機(jī)拍攝的 JPEG 和 TIFF 格式的圖像文件元數(shù)據(jù)。
必須使用 --enable-exif 選項(xiàng)編譯 PHP。 exif 模塊不需要其他額外的庫。
使用 --enable-exif 選項(xiàng) 配置 PHP 來啟用 exif 支持。
ftp本擴(kuò)展中的函數(shù)實(shí)現(xiàn)了通過 FTP 協(xié)議訪問文件服務(wù)器的客戶端。 FTP 協(xié)議在 ? http://www.faqs.org/rfcs/rfc959 中定義。 本擴(kuò)展提供了對(duì)于 FTP 服務(wù)器完整的訪問及控制功能。 如果只是簡(jiǎn)單的從 FTP 服務(wù)器讀取或向服務(wù)器寫入一個(gè)文件, 請(qǐng)考慮使用 ftp:// 包裝器 和 文件系統(tǒng)函數(shù), 會(huì)更加的簡(jiǎn)單。
構(gòu)建此擴(kuò)展不需要其他擴(kuò)展。
要使用這些 FTP 相關(guān)函數(shù),在編譯的時(shí)候請(qǐng)?zhí)砑?--enable-ftp 選項(xiàng)。
gdPHP 并不僅限于創(chuàng)建 HTML 輸出, 它也可以創(chuàng)建和處理包括 GIF, PNG, JPEG, WBMP 以及 XPM 在內(nèi)的多種格式的圖像。 更加方便的是,PHP 可以直接將圖像數(shù)據(jù)流輸出到瀏覽器。 要想在 PHP 中使用圖像處理功能,你需要連帶 GD 庫一起來編譯 PHP。 GD 庫和 PHP 可能需要其他的庫, 這取決于你要處理的圖像格式。
你可以使用 PHP 中的圖像函數(shù)來獲取下列格式圖像的大小: JPEG, GIF, PNG, SWF, TIFF 和 JPEG2000。
如果聯(lián)合 exif 擴(kuò)展 一起使用, 你可以操作存儲(chǔ)在 JPEG 和 TIFF 圖像文件頭部的信息, 這樣就就可以獲取數(shù)碼相機(jī)所產(chǎn)生的元數(shù)據(jù)。 exif 相關(guān)的函數(shù)不需要 GD 庫亦可使用。
如果你有 GD 庫(可從 ? http://www.libgd.org/ 獲得), 你就可以創(chuàng)建 和處理圖像。
可以處理的圖像格式由你所使用的 GD 庫版本 以及 GD 庫可能需要的其他庫決定。 GD gd-1.6 之前的版本支持 GIF 格式, 但是不支持 PNG 格式。 gd-1.6 以上、gd-2.0.28 以下的版本支持 PNG, 但是不支持 GIF 格式。 在 gd-2.0.28 中,又重新啟用了對(duì)于 GIF 格式的支持。
要激活 GD 支持,配置 PHP 時(shí)加上 --with-gd[=DIR] ,DIR 是 GD 的基本安裝目錄。要使用推薦的綁定的 GD 庫版本(首次綁定于 PHP 4.3.0),使用 --with-gd 。要編譯 GD 庫,需要libpng 和 libjpeg。
ldap
LDAP is the Lightweight Directory Access Protocol, and is a protocol used to access "Directory Servers". The Directory is a special kind of database that holds information in a tree structure.
LDAP是一個(gè)輕量級(jí)目錄存取協(xié)議,被用來和“目錄服務(wù)器”交互,目錄是一個(gè)特別類型的數(shù)據(jù)庫,里面以樹的結(jié)構(gòu)存儲(chǔ)信息
You will need to get and compile LDAP client libraries from either ? OpenLDAP or ? Bind9.net in order to compile PHP with LDAP support. For PHP 5.6 or newer you will need OpenLDAP 2.4 or newer.
你將需要得到和編譯LDAP客戶端庫從OpenLDAP或者Bind9.net為了PHP獲得LDAP支持,PHP5.6或者更新版本你需要OpenLDAP2.4或者更新
LDAP support in PHP is not enabled by default. You will need to use the --with-ldap[=DIR] configuration option when compiling PHP to enable LDAP support. DIR is the LDAP base install directory. To enable SASL support, be sure --with-ldap-sasl[=DIR] is used, and that sasl.h exists on the system.
LDAP擴(kuò)展默認(rèn)不啟用。你將會(huì)需要去使用--with-ldap[=DIR]編譯選項(xiàng)當(dāng)編譯PHP并啟用LDAP支持,DIR是LDAP安裝目錄。為了去啟用SASL支持,確保--with-ldap-sasl[=DIR]被使用,并且這個(gè)sasl.h在系統(tǒng)中存在mbstring
開發(fā)多字節(jié)字符編碼方案是為了在基于字節(jié)的常規(guī)編碼系統(tǒng)中表達(dá)超過 256 個(gè)字符。mbstring 提供了針對(duì)多字節(jié)字符串的函數(shù),能夠幫你處理 PHP 中的多字節(jié)編碼。 除此以外,mbstring 還能在可能的字符編碼之間相互進(jìn)行編碼轉(zhuǎn)換。 為了方便起見,mbstring 設(shè)計(jì)成了處理基于 Unicode 的編碼,類似 UTF-8、UCS-2 及諸多單字節(jié)的編碼。
構(gòu)建此擴(kuò)展不需要其他擴(kuò)展。
mbstring 不是一個(gè)默認(rèn)擴(kuò)展。這意味著它默認(rèn)沒有被激活。 你必須在 configure 選項(xiàng)中顯式激活該模塊。
--enable-mbstring :激活 mbstring 函數(shù)。 要使用 mbstring 函數(shù)必須啟用這個(gè)選項(xiàng)。
--enable-mbstr-enc-trans :使用 mbstring 轉(zhuǎn)換引擎來轉(zhuǎn)換 HTTP 輸入字符的編碼。 如果啟用了這個(gè)功能,HTTP 輸入字符編碼可能將自動(dòng)轉(zhuǎn)換成 mbstring.internal_encoding。
--disable-mbregex :禁用正則表達(dá)式函數(shù)中多字節(jié)字符的支持。
mysql在寫新的代碼時(shí),不推薦使用本擴(kuò)展。您應(yīng)該使用 mysqli 或者 PDO_MySQL 擴(kuò)展代替。
為了使這些函數(shù)能夠使用,你必須編譯加入 PHP 對(duì) MySQL 的支持。
編譯時(shí),只要使用 --with-mysql[=DIR] 配置選項(xiàng)即可,其中可選的 [DIR] 指向 MySQL 的安裝目錄。雖然本 MySQL 擴(kuò)展庫兼容 MySQL 4.1.0 及其以后版本,但是它不支持這些版本提供的額外功能。要使用這些功能,請(qǐng)使用 MySQLi 擴(kuò)展庫。如果要同時(shí)安裝 mysql 擴(kuò)展庫和 mysqli 擴(kuò)展庫,必須使用同一個(gè)客戶端庫以避免任何沖突。
mysqlimysqli擴(kuò)展允許我們?cè)L問MySQL 4.1及以上版本提供的功能。
為了使這些函數(shù)可用,你必須以支持mysqli擴(kuò)展的方式編譯PHP。
mysqli擴(kuò)展在PHP5.0.0中被引入。Mysql Native驅(qū)動(dòng)在PHP5.3.0版本中被引入。
mysqlnd
MySQL Native Driver is a replacement for the MySQL Client Library (libmysqlclient).
MySQL原生驅(qū)動(dòng)是一個(gè)MySQL客戶端庫的替代品
安裝
./configure --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlndopenssl
This module uses the functions of ? OpenSSL for generation and verification of signatures and for sealing (encrypting) and opening (decrypting) data. OpenSSL offers many features that this module currently doesn"t support. Some of these may be added in the future.
該模塊采用OpenSSL簽名生成和驗(yàn)證功能和密封(加密)和開放(解密)的數(shù)據(jù)。OpenSSL提供了許多功能,該模塊目前不支持。這些可能在未來增加。
In order to use the OpenSSL functions you need to install the ? OpenSSL package. PHP between versions 4.0.5 and 4.3.1 will work with OpenSSL >= 0.9.5. Other versions (PHP <=4.0.4 and >= 4.3.2) require OpenSSL >= 0.9.6.
為了使用OpenSSL方法,你需要去安裝OpenSSL包。在4.0。5和4.3.1的PHP需要OpenSSL>=0.9.5,其他版本需要OpenSSL>=0.9.6
To use PHP"s OpenSSL support you must also compile PHP --with-openssl[=DIR] .
為了使用PHP的OpenSSL支持,你必須編譯PHP --with-openssl[=DIR]pdo_mysql
PDO_MYSQL is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to MySQL 3.x, 4.x and 5.x databases.
PDO_MYSQL是實(shí)現(xiàn)了PHP數(shù)據(jù)對(duì)象接口的一個(gè)驅(qū)動(dòng),用于啟用PHP和MySQL數(shù)據(jù)庫之間的通信
構(gòu)建此擴(kuò)展不需要其他擴(kuò)展。
When compiling, use --with-pdo-mysql[=DIR] to install the PDO MySQL extension, where the optional [=DIR] is the MySQL base library. As of PHP 5.4, mysqlnd is the default library.
當(dāng)編譯的時(shí)候使用--with-pdo-mysql[=DIR]去安裝PDO MySQL擴(kuò)展,mysqlnd默認(rèn)是客戶端庫
Optionally, the --with-mysql-sock[=DIR] sets to location to the MySQL unix socket pointer for all MySQL extensions, including PDO_MYSQL. If unspecified, the default locations are searched.
可選的是,--with-mysql-sock[=DIR]設(shè)置mysql的unix socket文件位置
Optionally, the --with-zlib-dir[=DIR] is used to set the path to the libz install prefix.
可選的是,--with-zlib-dir[=DIR]被用來去設(shè)置libz安裝目錄readline
readline 擴(kuò)展函數(shù)實(shí)現(xiàn)了訪問 GNU Readline 庫的接口. 這些函數(shù)提供了可編輯的命令行. 一個(gè)例子是在 Bash 中允許你使用箭頭按鍵來插入字符或者翻看歷史命令. 因?yàn)檫@個(gè)庫的交互特性,這個(gè)功能在你寫的 Web 程序中沒多大用處, 但是當(dāng)你寫的腳本被用在命令行中時(shí)非常有用.
如果要使用 readline 函數(shù),你必須安裝 libreadline. 你也能使用非 GPL 的 libedit 庫來替代 readline 庫
要使用這些函數(shù),你必須在編譯 PHP 的 CGI 或者 CLI 版本時(shí)啟用 readline 支持. 你需要在編譯配置 PHP 時(shí)使用 --with-readline[=DIR] 選項(xiàng). 如果你想使用 libedit 來代替 readline , 配置 PHP 時(shí)使用 --with-libedit[=DIR] 選項(xiàng)
shmop
Shmop is an easy to use set of functions that allows PHP to read, write, create and delete Unix shared memory segments.
shmop是一個(gè)簡(jiǎn)單的方式去使用一系列方法讓php讀寫創(chuàng)建刪除Unix共享內(nèi)存區(qū)塊
構(gòu)建此擴(kuò)展不需要其他擴(kuò)展。
To use shmop you will need to compile PHP with the --enable-shmop parameter in your configure line.
為了使用shmop你需要編譯PHP --enable-shmop參數(shù)snmp
The SNMP extension provides a very simple and easily usable toolset for managing remote devices via the Simple Network Management Protocol.
SNMP擴(kuò)展提供了簡(jiǎn)單容易可用的工具集去管理遠(yuǎn)程設(shè)備通過簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議
In order to use the SNMP functions requires installation of the ? Net-SNMP package. SNMPv3 functions available only when ? OpenSSL package is installed too.
為了使用SNMP方法,要求安裝net-snmp包,snmpv3方法只能當(dāng)openssl包安裝的時(shí)候可用
重要提示:為了使用 UCD SNMP 包,需要在編譯之前將 NO_ZEROLENGTH_COMMUNITY 定義為 1。 在配置 UCD SNMP 之后,編輯 config.h 或 acconfig.h,查找 NO_ZEROLENGTH_COMMUNITY,將 #define 所在行的注釋去掉。修改后應(yīng)該類似這樣:#define NO_ZEROLENGTH_COMMUNITY 1然后使用 --with-snmp[=DIR] 選項(xiàng)編譯 PHP。如果在組合 SNMP 命令時(shí)看到奇怪的字段錯(cuò)誤,那就是因?yàn)闆]有遵從上述說明。如果不想重新編譯 UCD SNMP,可以使用 --enable-ucd-snmp-hack 開關(guān)編譯 PHP 以繞開上述錯(cuò)誤。
soap
The SOAP extension can be used to write SOAP Servers and Clients.
SOAP擴(kuò)展可以被用來寫soap服務(wù)器和客戶端
此擴(kuò)展需要 libxml PHP 擴(kuò)展。這表示需要使用 --enable-libxml ,盡管這將隱式完成因?yàn)?libxml 是缺省開啟的。
To enable SOAP support, configure PHP with --enable-soap .
socketsSocket擴(kuò)展是基于流行的BSD sockets,實(shí)現(xiàn)了和socket通訊功能的底層接口,它可以和客戶端一樣當(dāng)做一個(gè)socket服務(wù)器。
構(gòu)建此擴(kuò)展不需要其他擴(kuò)展。
這里描述的socket函數(shù)只是PHP擴(kuò)展的一部分,編譯PHP時(shí)必須在配置中添加--enable-sockets 配置項(xiàng)來啟用。
sysvmsg sysvsem sysvshm
This module provides wrappers for the System V IPC family of functions. It includes semaphores, shared memory and inter-process messaging (IPC).
這個(gè)模塊提供了System V IPC函數(shù)的包裝器,包括了semaphores,shared memory和inter-process messaging
構(gòu)建此擴(kuò)展不需要其他擴(kuò)展。
Support for this functions are not enabled by default. To enable System V semaphore support compile PHP with the option --enable-sysvsem . To enable the System V shared memory support compile PHP with the option --enable-sysvshm . To enable the System V messages support compile PHP with the option --enable-sysvmsg .
默認(rèn)不支持這些方法,為了啟用此魔窟啊,在編譯PHP的時(shí)候需要加入--enable-sysvsem --enable-sysshm --enable-sysvmsg編譯開關(guān)tidy
Tidy is a binding for the Tidy HTML clean and repair utility which allows you to not only clean and otherwise manipulate HTML documents, but also traverse the document tree.
Tidy是一種保持html清理和修復(fù)工具,不僅允許你清理而且還能操縱html文檔,也能遍歷文檔樹
To use Tidy, you will need libtidy installed
This extension is bundled with PHP 5 and greater, and is installed using the --with-tidy configure option.
wddxWEB分布式數(shù)據(jù)交換是為WEB發(fā)展而設(shè)計(jì)的一項(xiàng)基于XML 的技術(shù)。WDDX用于在WEB應(yīng)用程序的之間不同的部分傳送結(jié)構(gòu)化的數(shù)據(jù),這一應(yīng)用程序可以被分布到各種各樣的WEB服務(wù)器。它允許一個(gè)簡(jiǎn)單地機(jī)制來傳遞數(shù)據(jù)并且甚至可以在不同的平臺(tái)之間交換數(shù)據(jù)。
此擴(kuò)展需要 libxml PHP 擴(kuò)展。這表示需要使用 --enable-libxml ,盡管這將隱式完成因?yàn)?libxml 是缺省開啟的。
After installing the required expat library, compile PHP with --enable-wddx , and use --with-libexpat-dir for expat.
xmlrpcxmlrpc是使用http協(xié)議做為傳輸協(xié)議的rpc機(jī)制,使用xml文本的方式傳輸命令和數(shù)據(jù)。
此擴(kuò)展需要 libxml PHP 擴(kuò)展。這表示需要使用 --enable-libxml ,盡管這將隱式完成因?yàn)?libxml 是缺省開啟的。
默認(rèn)情況下在 PHP 中是不能使用 XML-RPC 支持的。你需要使用 --with-xmlrpc[=DIR] 配置選項(xiàng)編譯 PHP 才能夠使用 XML-RPC 支持。從 PHP 4.1.0 開始附帶了此擴(kuò)展。
xslThe XSL extension implements the XSL standard
此擴(kuò)展需要 libxml PHP 擴(kuò)展。這表示需要使用 --enable-libxml ,盡管這將隱式完成因?yàn)?libxml 是缺省開啟的。
PHP 5 includes the XSL extension by default and can be enabled by adding the argument --with-xsl[=DIR] to your configure line (DIR being the libxslt installation directory).
zip此擴(kuò)展可以讓你透明地讀寫ZIP壓縮文檔以及它們里面的文件。
此擴(kuò)展用到 Jean-loup Gailly 和 Mark Adle 的 ? zlib 里的函數(shù)。
為了使用這些函數(shù),必須在編譯 PH P時(shí)用 --enable-zip[=DIR] 配置選項(xiàng)來提供 zip 支持,其中 [DIR]是 ? ZZIPlib 庫安裝路徑。
zlib
This module enables you to transparently read and write gzip (.gz) compressed files, through versions of most of the filesystem functions which work with gzip-compressed files (and uncompressed files, too, but not with sockets).
這個(gè)模塊允許你轉(zhuǎn)換讀寫gzip壓縮文件,在大多數(shù)文件系統(tǒng)函數(shù)下與gzip壓縮文件工作,但是不能用于sockets
This module uses the functions of ? zlib by Jean-loup Gailly and Mark Adler. You have to use a zlib version >= 1.0.9 with this module.
Zlib support in PHP is not enabled by default. You will need to configure PHP --with-zlib[=DIR]
編譯安裝首先先進(jìn)行PHP的默認(rèn)安裝
./configure --enable-fpm --with-fpm-user=_www --with-fpm-group=_www --with-config-file-path=/usr/local/etc --with-config-file-scan-dir=/usr/local/etc/php.d --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql-sock=/tmp/mysql.sock
然后對(duì)上面所有差異的模塊擴(kuò)展進(jìn)行編譯安裝
cd ext/XXX phpize ./configure --enable/with-XXX make sudo make install
試驗(yàn)到最后,發(fā)現(xiàn)除了openssl和gd庫,其他都能通過OS X自帶的庫文件完美安裝,openssl是在/usr/include缺少頭文件,gd庫是沒有自帶的lib,如果有其他朋友試驗(yàn)出靜態(tài)庫編譯的方法,歡迎指正。
經(jīng)過一番研究,發(fā)現(xiàn)了一種安裝openssl靜態(tài)庫來實(shí)現(xiàn)openssl.so擴(kuò)展的方式,首先下載openssl的源代碼,版本隨意,只要能符合php的要求,然后解壓出兩個(gè)文件夾,一個(gè)命名為openssl-i386,一個(gè)為openssl-x64,然后進(jìn)入這兩個(gè)文件夾,分別使用
./Configure darwin-i386-cc ./Configure darwin64-x86_64-cc
然后分別make編譯,編譯完成后進(jìn)入上級(jí)目錄使用
lipo -create openssl-i386/libcrypto.a openssl-x64/libcrypto.a -output libcrypto.a lipo -create openssl-i386/libssl.a openssl-x64/libssl.a -output libssl.a
這樣就整合了i386和x86_64的靜態(tài)庫,然后包括頭文件和靜態(tài)庫,統(tǒng)統(tǒng)復(fù)制到xcode sdk目錄或者隨便什么符合unix安裝結(jié)構(gòu)的目錄
cd php/ext/openssl mv config0.m4 config.m4 phpize ./configure --with-openssl=/path/to make sudo make install
試驗(yàn)了一下,發(fā)現(xiàn)蘋果自帶的php內(nèi)gd庫只有l(wèi)ibpng和libjpeg兩個(gè)庫,那么解決方法就出來了,只需要將libpng和libjpeg庫都編譯成靜態(tài)庫,就能夠完美實(shí)現(xiàn)gd庫的編譯了
首先我們下載libjpeg和libpng,下載完后解壓
cd XXX ./configure --prefix=/path/to --enable-static make make install
注意!由于是編譯安裝到自定義目錄,所以每個(gè)庫的
./configure --prefix=/path/to是必須的。
最后請(qǐng)注意將所有的dylib等動(dòng)態(tài)庫文件全部刪除或者重命名,只留下xxx.a靜態(tài)庫文件,否則編譯的時(shí)候php會(huì)優(yōu)先使用動(dòng)態(tài)庫文件,那樣就無法刪除/path/to文件夾了
然后進(jìn)入PHP目錄
cd ext/gd phpize ./configure --with-gd --with-png-dir=/path/to --with-jpeg-dir=/path/to --enable-gd-native-ttf make sudo make install
如有錯(cuò)誤,歡迎指正
實(shí)現(xiàn)了在centos6上編譯安裝tengine+php7+mariadb,需要如下依賴
openssl-devel pcre-devel jemalloc-devel libaio-devel libxml2-devel bzip2-devel libcurl-devel openldap-devel readline-devel libedit-devel net-snmp-devel libtidy-devel libxslt-devel libpng-devel libjpeg-devel
順帶著記錄下開發(fā)環(huán)境的編譯參數(shù)
./configure --enable-fpm --with-fpm-user=www_data --with-fpm-group=www_data --with-config-file-path=/usr/local/etc --with-config-file-scan-dir=/usr/local/etc/php.d --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql-sock=/tmp/mysql.sock --enable-bcmath --with-bz2 --enable-calendar --with-curl --enable-exif --enable-ftp --with-gd --with-jpeg-dir --with-png-dir --enable-gd-native-ttf --enable-mbstring --with-openssl --with-readline --with-libedit --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-wddx --with-xmlrpc --enable-zip --with-zlib
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/21256.html
摘要:為提供模塊,需要庫支持為提供功能為支持地址重寫功能確保已正確安裝在上面的基礎(chǔ)環(huán)境安裝中,我們已經(jīng)安裝了,但是部分服務(wù)器上并沒有的安裝包,所以我們可以通過下載包自行編譯安裝。 一直以來我都通過網(wǎng)上的一些材料去搭建lnmp環(huán)境,通過直接yum安裝nginx mysql php等軟件。但是為了原生態(tài)的編譯安裝最新的軟件版本,我決定自己親手搭建lnmp環(huán)境,采用最新的nginx1.9.7(昨天...
摘要:為糾正這個(gè)問題,需要將包含以太坊共享庫的文件添加到環(huán)境變量為安裝依賴警告應(yīng)用沒有在上嘗試過。在寫本文檔時(shí),這些交叉建立二進(jìn)制已經(jīng)成功地使用在以下設(shè)備上待辦的有下一篇文章我們將會(huì)介紹以太坊連載九客戶端的安裝與定制三感謝朝夕 從源安裝客戶端 概覽cpp-ethereum 代碼庫在幾個(gè)Git庫中傳播,庫在Git上被分組為webthree-umbrella庫下的子模塊。 我們用一般的CMake...
摘要:下載依賴首先需要下載的依賴的庫,自帶了許多有用的庫,但是這些需要你安裝命令行工具,這些庫的頭文件和靜態(tài)庫動(dòng)態(tài)庫文件被存放在目錄下,包括等庫,我們只需要下載庫依賴的就可以了。 以前搞開發(fā)一直都是OS X自帶的php5.5,然后需要的擴(kuò)展使用phpize編譯,但是逐漸的自帶的php已經(jīng)無法滿足我了,所以準(zhǔn)備自己手動(dòng)編譯php。 下載依賴 首先需要下載php的依賴的庫,OS X自帶了許多...
摘要:支持,需要安裝或源碼包是一個(gè)正則庫,模塊依賴,匹配規(guī)則時(shí)會(huì)用到。三安裝依賴包在官網(wǎng)下載頁下到最新穩(wěn)定版。是的最高版本,也和示例中的版本一致。然后就可以編譯了一陣編譯無報(bào)錯(cuò)信息之后安裝趕緊試一試去瀏覽器打開,看到的歡迎頁就大功告成啦。 一、下載源碼包 首先,在官網(wǎng)下載 nginx 的源碼包,有3種版本可以選擇: Mainline version:主線版本,相當(dāng)于開發(fā)版 Stable v...
摘要:無論是還是圖形庫,都是以動(dòng)態(tài)鏈接庫的形式發(fā)布的。但是那里寫的很啰嗦,居然還要安裝,那里倒是找到了一篇關(guān)于動(dòng)態(tài)鏈接庫模塊編譯的東西。 本文為筆者以前的記錄,雖然是10.9的版本,但是應(yīng)該也是能在10.10上完美成功 最近要做圖書館查詢服務(wù)的轉(zhuǎn)換php,上次寫oracle中間層的時(shí)候因?yàn)闆]有oci8模塊和oracle實(shí)例,所以手工寫代碼沒有調(diào)試,這次工作量有些龐大,所以花費(fèi)了一些...
閱讀 3349·2021-09-30 09:47
閱讀 2732·2021-08-18 10:22
閱讀 2518·2021-08-16 10:49
閱讀 2884·2019-08-30 15:53
閱讀 2732·2019-08-29 16:14
閱讀 3185·2019-08-28 18:18
閱讀 3229·2019-08-26 13:21
閱讀 787·2019-08-26 12:02