用phpize自編譯php模組

2021-07-22 16:53:34 字數 1390 閱讀 6008

在用mac的時候,發現系統自己安裝了apache和php,配置檔案php.ini和apache2都在 /private/etc 下

在cli下用 php -v 顯示warming,顯示

php warning:  module 'openssl' already loaded in unknown on

line

0

用phpinfo();列印出來後,顯示的資訊裡說明php的模組都安裝了,好奇怪,然後去看一下php的擴充套件庫都安裝了什麼模組

路徑如下:

/usr/lib/php/extensions/no-debug-non-zts-20121212/

發現原來只有

opcache.a opcache.so xdebug.so

三個檔案(unix的模組都是.so結尾,win下的都是.dll),於是我以為是模組缺少了。然後行吧,給動態編譯一下openssl.so應該總可以了吧

解壓後進入 /etc 目錄下找到 ./openssl

./configure --

with

-openssl

--with

-php

-config

=/usr/bin/php-config

//期間會發現各種....no,按照提示,把各種依賴庫都給裝上,這裡折騰了半天,安裝了re2c,pkg-configd等等,還有就是mac命令列xcode安裝模組編譯的時候並不知道openssl命令,老是報錯configure: error: cannot find openssl's ,具體的做法是,找到openssl安裝目錄下的include目錄,將其copy到/library/developer/commandlinetools/usr/include下,我是用 brew 進行安裝的,軟體包所有都安裝在了 /usr/local/opt/ 下

編譯:

make
安裝:

make install
然後再 ./openssl/modules 模組資料夾下發現:

openssl.so

尼瑪的終於搞定了,感覺就像合成裝備一樣。。。。

趕緊放入 /usr/lib/php/extensions/no-debug-non-zts-20121212/ 下

php.ini裡的注釋去掉;

命令列執行 php 發現:

php warning: module 『pdo_mysql』 already loaded in unknown on line 0

原來php已經安裝過了這個模組。好吧,白費了這麼久的功夫,不過也還是有收穫,玩了一下動態編譯php模組,但是工作中快速搭建還是使用mamp之類的整合工具吧

利用phpize安裝php擴充套件模組

cd extname 進入擴充套件模組的原始碼目錄下 usr local php bin phpize 舉例而已,具體路徑依實際情況而定 configure 根據不同的擴充套件模組,增加不同的引數 make make install 上邊的步驟將生成 extname.so檔案 修改php.ini e...

用 phpize 編譯共享 PECL 擴充套件庫

phpize 命令是用來準備 php 擴充套件庫的編譯環境的。下面例子中,擴充套件庫的源程式位於 extname 目錄中 cd extname phpize configure make make install 成功的安裝將建立 extname.so 並放置於 php 的擴充套件庫目錄中。需要調整...

用 phpize 編譯共享 PECL 擴充套件庫

phpize 命令是用來準備 php 擴充套件庫的編譯環境的。下面例子中,擴充套件庫的源程式位於 extname 目錄中 cd extname phpize configure make make install 成功的安裝將建立 extname.so 並放置於 php 的擴充套件庫目錄中。需要調整...