php不從新編譯添加模塊 php不從新編譯添加模塊

php如何使用第三方軟件

本例是: php(mysql_connect()函數)使用mysql(第三方軟件). 
 
觀察上圖,php能使用大量的第三方非php庫(典型性是C語言寫庫), 爲了達到此目的,你必須具有兩個條件: 
Shell代碼
  1. 條件I.  安裝第三方庫(軟件)   
  2. 條件II. 安裝了該軟件的php擴展  
若是隻是安裝mysql,知足條件I,可是條件II不知足, 爲了知足條件二, 咱們須要瞭解php安裝擴展的知識. 
安裝php, 大的方面還能夠分爲兩種方式: 
引用
方式1. 將擴展編譯到php 
方式2. 將擴展單獨編譯成動態鏈接庫so文件

方式1的優勢是運行速度快,可是爲了一個擴展須要從新安裝整個php;方式2靈活,可是運行速度稍慢. windows平臺下的php程序員大多隻熟悉方式2,由於方式2是windows下安裝Php擴展的惟一方式. 

以前若是安裝了php, 若是沒有刪除php源碼目錄,從新進入該目錄, 那麼此時從新編譯運行將 採用增量方式 ,實際上比方式2還更方便些.仍然3步走: 
Shell代碼
  1. ./configure --prefix=/my/php --with-mysql   
  2. make   
  3. make install  
有 人質疑: 我安裝mysql sdk,./configure命令一個--with-mysql就知道我安裝的目錄,仍是有點神奇,難道他全硬盤搜索.h文件? 不是, 若是你用yum方式安裝sdk,那麼LD_LIBRARY_PATH系統變量就指示了該sdk相關信息 ,若是你使用源碼(tar)安裝mysql sdk,你的--with-mysql參數不得不像這樣: --with-mysql=/your_mysql_sdk_dir/ 

方式2:

以添加ftp模塊爲例子 php

進入源碼目次 mysql

cd php-5.2.8/ext/ftp
#運行phpize configure
程序員

/usr/local/php/bin/phpize sql

#編譯,指定php-config,留意這裏的php-config,不是php.ini apache

./configure --with-php-config='/usr/local/php/bin/php-config'
#上面能夠添加--enable-ftp,也能夠不消添加
windows

#編譯安裝     
(留意:假如以前有過添加其餘模塊確定 要先 make clean ,否則 編譯報錯。)
函數

make && make install spa

#生成一個目錄來存放擴展的模塊 debug

mkdir /usr/local/php/etc/php/ext 源碼

#複製ftp.so到模塊目次

cp /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ftp.so /usr/local/php/etc/ext/

#編輯 php.ini文件,指定PHP到哪一個目次讀模塊

vi /usr/local/php/etc/php.ini

extension_dir="/usr/local/php/etc/ext"
#Load模塊
extension=ftp.so
#保存退出

重啓apache 再用/usr/local/php/bin/php -m|grep ftp查察 是否有ftp.so

相關文章
相關標籤/搜索