擴展安裝
以php安裝swoole擴展為例。
php源碼編譯安裝
下載源碼包並編譯安裝
$ wget http://cn2.php.net/distributions/php7-1.0.tar.gz
$ tar -zxvf php7-1.0.tar.gz
$ cd php7-1.0
$ ./configure --prefix=$HOME/php7/book/php7-1.0/output --enable-fpm
$ make && make install
./configure 是用來檢測你的安裝平台的目標特征的,並做些系統設置
這一步一般用來生成 Makefile,為下一步的編譯做准備,你可以通過在 configure 后加上參數來對安裝進行控制,比如代碼:./configure -–prefix=/usr 意思是將該軟件安裝在 /usr 下面,執行文件就會安裝在 /usr/bin (而不是默認的
/usr/local/bin),資源文件就會安裝在 /usr/share(而不是默認的/usr/local/share)。同時一些軟件的配置文件你可以通過指定 –sys-config= 參數進行設定。有一些軟件還可以加上 –with、–enable、–without、–disable 等等參
數對編譯加以控制,你可以通過允許 ./configure –help 察看詳細的說明幫助。
參數詳解:
--prefix=PREFIX 文件安裝到PREFIX指定目錄
--bindir=DIRECTORY 為可執行程序聲明目錄
--libdir=DIRECTORY
庫文件和動態裝載模塊的目錄.缺省是 EXEC-PREFIX/lib.
--includedir=DIRECTORY
C 和 C++ 頭文件的目錄.缺省是 PREFIX/include.
--enable-syslog 啟用系統日志
--enable-debug 所有程序和庫以帶有調試符號的方式編譯。
make 是用來編譯的,它從Makefile中讀取指令,然后編譯。
make install是用來安裝的,它也從Makefile中讀取指令,安裝到指定的位置。
PEAR、PECL
PEAR PHP擴展與應用庫(the PHP Extension and Application Repository)
PECL (PHP Extension Community Library),PHP的擴展庫,它提供了一系列已知的擴展庫,由C++等其他語言編寫而成
Pear:是PHP的擴展代碼包,所有的擴展均以PHP代碼的形式出現,功能強大,安裝簡單,甚至可以改改就用。使用的時候,要在代碼中進行Include才能夠使用。
Pecl:是PHP的標准擴展,可以補充實際開發中所需的功能,所有的擴展都需要安裝,在Windows下面以Dll的形式出現,在linux下面,需要單獨進行編譯,它的表現形式為根據PHP官方的標准用C語言寫成,盡管源碼開放但是一般人無法隨意更改源碼。
Pear是PHP的上層擴展,Pecl是PHP的底層擴展。
# pecl安裝擴展 前提swoole必須在php官方擴展庫
$ pecl install swoole
phpize 源碼安裝
phpize 動態安裝擴展,通過phpize以建立php的外掛模塊。
curl -o ./tmp/swoole.tar.gz https://github.com/swoole/swoole-src/archive/master.tar.gz -L && \
tar zxvf ./tmp/swoole.tar.gz && \
mv swoole-src* swoole-src && \
cd swoole-src && \
phpize && \
./configure \
--enable-coroutine \ #啟用協程
--enable-openssl \ #啟用openssl
--enable-http2 \ #啟用http2
--enable-async-redis \ #啟用異步redis
--enable-sockets \ #啟用sockets
--enable-mysqlnd && \ #啟用mysqlnd
make clean && make && sudo make install