網上我看到有很多相關的文章都是簡述這個問題的,但畢竟因為LINUX版本眾多,很多LIUNX命令或路徑都有所差別,有時同樣的命令卻不能執行一樣的操作。
這篇文章是我在實際運用當中配置成功的實例,希望對大家有所幫助,開源是來自每個人的無私幫助,每個人的成長都是需要別人的扶植!廢話就說到這了!
http://php.net/downloads.php (相應PHP版本下載)
1、首先確定LINUX下已安裝的PHP版本,因為不同PHP版本對於追加動態模塊有兼容性問題(可能路徑,配置?其他?),往往報錯不能安裝,追加的模塊必須版本一致。
查看PHP版本有多種方法:
①運行php -v(但在我的64位LIUNX測試過沒作用,原因你知道的了!)
②在已安裝好的PHP路徑下找到php-config並進行查看,可以vi或cat (關鍵字:version="XXXXXXX"為PHP版本號)
vi 或cat php-config
2、下載好的PHP源代碼包需人工上傳到FTP網絡服務器上,這時你的tar包可能只是放在WWW下,為了你自己方便查找和使用,建議建立自己的source文件夾進行存放。
建立文件夾:mkdir XXXXXX(文件夾名)
移動或復制文件:mv或cp php.tar /sourece(注意路徑,”/“我是在根目錄下創建的臨時文件夾!)
解壓tar包:tar zxfv php.tar(源代碼tar包)
3、現在進入正題了,以追加動態模塊openssl.so為例,進入PHP源碼文件夾后,執行phpize生成configure進行模塊追加:
#cd /source/php/ext/openssl 進入源碼包的OPENSSL模塊文件夾
#/var/www/php/bin/phpize 注意這個是已安裝好的PHP路徑(有些是版本可能是在/usr/local/******下,每個人的安裝習慣不同)
如出現以下錯誤:Cannot find config.m4. *****************************************
解決方法:
查看源碼包OPENSSL文件夾下是否有config0.m4,如果有可執行,
#mv config0.m4 config.m4
4、進入最后的編譯階段了,我編譯時是比較順利的(有時ERROR如果出現,我也不好做闡述,只能靠自己查看errorlog日志了)
#./configure --with-openssl --with-php-config=/var/www/php/bin/php-config(注意:這個參數后的是你本機已安裝好的PHP路徑)
#make
#make test (測試編譯結果)
#make install
當成功時會返回成功信息(注意查看,SO文件的所在位置):
Installing shared extensions: /usr/lib/20060613/(這路徑是我虛擬的,正確請自己查找,會生成openssl.so文件)
一般規范點的話,會把追加的SO模塊放在一個指定的文件夾里,就在PHP安裝好的目錄下的extensions文件夾內
#mv /*****/*****/openssl.so /var/www/php/lib/php/extensions
動態模塊追加編譯已全部完成了。。。。
最后就是要PHP支持加載這些追加的動態模塊了,vi編輯PHP下的配置文件php.ini。
#vi /*******/*******/php.ini
進入編輯器后可以看到PHP的所有相關配置,查找extension_dir這個配置的選項,
vi后可直接‘/extension_dir '查找,找到后可能是這樣的:
extension_dir = "./"
需修改成:
extension_dir = "/var/www/php/lib/php/extensions/" (注意是so文件的所在)
extension=openssl.so (so模塊文件名)
最后保存退出! :wq!
接着就是重啟 apache服務器了!(有說人不用,但也就一個命令,我覺得配置好重啟還是安心點!)
可以用命令查看下PHP的運行加載: /var/www/php/bin/php -m|grep openssl (路徑啥的我就不說了,就是安裝好的PHP路徑就是了)
出現的信息可能會出現一些錯誤,但都是沒關系的:類似找不到什么DLL文件啊(openssl.dll之類的),別管他,DLL是WINDOWS主機服務器模塊加載的類型,UNIX和LINUX是以SO為模塊加載名的!