php擴展so
一開始安裝PHP的時候,我們並不知道需要哪些擴展,所以只有等到我們真正用到的時候才想辦法去安裝。
安裝PHP擴展最簡單的辦法就是
sudo apt-get install php5-xxx
但有的時候並非我們所願,源裡面並沒有我們需要的擴展,這時候就需要我們下載源碼自己編譯安裝了。
這篇文章中我將介紹在本地linux平台下編譯安裝PHP擴展的方法。
現在網站根目錄下創建 index.php 列印基本的配置信息,以驗證我們是否安裝成功。
配置編譯環境
我們需要安裝一些編譯必須的庫,還有 php-dev 版本
Ubuntu
sudo apt-get install php5-dev php5-mysql gcc libpcre3-dev
Fedora
sudo yum install php-devel php-mysqlnd gcc libtool
RHEL
sudo yum install php-devel php-mysql gcc libtool
Suse
yast2 -i php5-pear php5-devel php5-mysql gcc
安裝擴展
PHP有兩種可供安裝的擴展:一種是PHP原生的但是默認沒有安裝的,另一種的第三方開發的擴展。
下面依次介紹兩種擴展的安裝方法:
安裝之前我們需要一份和當前機器上相同版本的PHP源碼
cd code
wget http://cn2.php.net/distributions/php-5.5.9.tar.bz2
tar xvjf php-5.5.9.tar.bz2
cd php-5.5.9
前往此處 下載相應的源碼包。
在 /ext 目錄下面可以看到所有PHP原生的擴展。
安裝原生擴展
以 PHP-intl 為例,這是PHP國際化的擴展。
為了安裝這個擴展我們需要先安裝ICU 庫
sudo apt-get install icu-devtools icu-doc libicu-dev libicu52 libicu52-dbg
ICU 安裝成功之後進入/ext/intl 目錄:
cd intl
phpize
./configure --enable-intl
make
sudo make install
下面解釋一下上面的每個命令:
phpize : 是用來擴展php擴展模塊的,通過phpize可以建立php的外掛模塊
./configure --enable-intl: 配置編譯環境,相當於告訴編譯器編譯PHP源碼的時候加上intl這個擴展。
make: 將會把源碼編譯成 intl.so
make install : 將會把 intl.so 移動到當前安裝的 PHP 的擴展目錄。
接下來我們要做的就是在php.ini中啟用這個擴展,這一步將會在最後給出示例。
安裝第三方擴展
將以這個 擴展為例,這個擴展主要實現了PHP識別條形碼的功能。
先安裝必要的依賴
sudo apt-get install pkg-config
git clone https://github.com/mongodb/mongo-php-driver
cd mongo-php-driver
phpize
./configure
make
sudo make install
將會生成一個文件,將其拷貝到PHP的擴展目錄下面。
啟用擴展
在php.ini中啟用擴展的方式有很多:
直接在php.ini文件中添加 extension=mongo.so,這是最簡單直接的方法。
也可以單獨建一個ini文件,然後在php.ini中包含這些文件就可以了。
下面介紹一下第二種方法:
cd `/etc/php5/mods-available`
這個目錄里可以放新建的ini文件,然後執行
sudo touch mongo.ini
echo "extension=mongo.so" | sudo tee -a mongo.ini
sudo touch intl.ini
echo "extension=intl.so" | sudo tee -a intl.ini
上面的命令將會創建ini文件,並且寫如相應的配置信息。
然後執行下面的命令啟用擴展即可(需要安裝 php5enmod 工具):
sudo php5enmod mongo
sudo php5enmod intl
如果未安裝 php5enmod 工具,則需要手動配置:
ln -s /etc/php5/mods-available/mongo.ini /etc/php5/cli/conf.d/mongo.ini
ln -s /etc/php5/mods-available/intl.ini /etc/php5/cli/conf.d/intl.ini
ln -s /etc/php5/mods-available/mongo.ini /etc/php5/fpm/conf.d/mongo.ini
ln -s /etc/php5/mods-available/intl.ini /etc/php5/fpm/conf.d/intl.ini
最後在執行一下重啟操作就可以了:
sudo service nginx restart
sudo service php5-fpm restart
㈡ php怎麼打開socket擴展
pup:找相同版本的php源碼,再編譯。
linux下
:#cd /home/php/ext/sockets
#/server/php/bin/phpize
#./configure --prefix=/usr/local/php/lib --with-php-config=/server/php/bin/php-config --enable-sockets
#make
#make install
再修改/usr/local/php/etc/php.ini文件
#extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/" (php5.4版本以上不用加擴展路徑)
extension=sockets.so
重啟apache或者nginx等進程,完成。
㈢ 寶塔php 如何添加自定義so擴展,怎麼添加,怎麼調用
和php安裝擴展一樣,也是要在命令行操作,步驟如下:
進入源碼目錄:
cd xxx
生成配置
/www/server/php/版本/bin/phpize
./configure --with-php-config=/www/server/php/版本/bin/php-config
編譯並安裝:
make && make install
寫配置文件
echo "extension = xxx.so" >> /www/server/php/版本/etc/php.ini
㈣ 什麼是php擴展,從原理方面解釋,詳細一點
就是按照一定規則編寫的一些的函數庫,在WINDOWS是DLL文件,在UNIX下是SO文件,這些庫能讓PHP環境下的程序多出一些可以調用的函數,完成特定的功能。
比如MYSQL擴展多了mysql_*函數,可以連接MYSQL資料庫、進行數據檢索等操作。
㈤ 如何獲取php擴展庫源代碼包
您需要告訴構建系統在編譯時鏈接到共享庫。這允許依賴項存儲在已編譯的PHP擴展中,在第一次使用時將載入它。
為此,您需要修改config.m4以添加庫。你可以通過PHP_ADD_LIBRARY宏來做到這一點。此宏將一個庫添加到鏈接行並具有該表單PHP_ADD_LIBRARY($name,$append,$var)。第一個參數是庫的名稱; 這是*.so沒有lib前綴的文件的名稱(例如xxx)。第二個參數確定(我推測)是否附加或覆蓋該行; 這應該通常設置為1。最後一個參數是存儲該行的變數名稱。必須將此變數替換為輸出文件PHP_SUBST。
您應該將PHP_ADD_LIBRARY行放在文件中PHP_NEW_EXTENSION宏之前的某個位置config.m4。另外,PHP_ADD_LIBRARY在PHP_CHECK_LIBRARY電話中打包是個好主意。這可確保構建系統在添加庫之前找到庫。請參閱下面的示例。
這是另一個類似於你的SO問題。它有一些你可以遵循的工作實例。另外,我將在這里包含一個簡單示例:
PHP_CHECK_LIBRARY(xxx,xxxfunction,[
PHP_ADD_LIBRARY(xxx,1,XXX_SHARED_LIBADD)],[
AC_MSG_ERROR([])],[])PHP_SUBST([XXX_SHARED_LIBADD])
注意:第二個參數PHP_CHECK_LIBRARY是一個函數,構建系統將檢查它是否找到給定的庫。
㈥ PHP的擴展模塊怎麼添加
在PHP/etc 文件夾中加入擴展
在PHP 文件夾下的php.ini文件里 有很多dll文件的地方加入一行 你所添加的擴展的名字xxxx.dll
或者 是 在php.ini中直接打開對應的擴展 ,將目標行的 ; 給去掉
哦,對了,最後記得要重新啟動PHP的伺服器
㈦ php是如何載入擴展的
不會沒有載入的。你可以用grep -ril xdebug.so . 來搜索一下。
如何配置的話,你在php.ini 就可以配置xdebug的參數了。當然,你也可以找到載入的那個ini文件,在那個文件中添加配置。
㈧ php 怎麼安裝擴展
在windows平台上,主要是三個步驟:
1、下載php擴展庫文件;
一般在http://pecl.php.net/上就有下載信息。
2、解壓縮文件,將*.dll文件復制到PHP程序主目錄下的「ext」或者「extension」目錄。
3、打開php.ini文件,在「Dynamic Extensions」配置段中加上「extension=*.dll」,關閉文件,重新啟動一下伺服器就可以載入成功了。