什么是PHP擴(kuò)展膘滨?
為PHP提供一些擴(kuò)展的功能
常見的PHP擴(kuò)展
mysql-----提供給PHP操作MySQL數(shù)據(jù)庫的功能
gd2----動(dòng)態(tài)創(chuàng)建圖像
xdebug-----跟蹤、調(diào)試和分析PHP程序的運(yùn)行狀況
查看PHP擴(kuò)展
1.使用phpinfo探針
phpinfo()---輸出關(guān)于PHP配置的信息
輸出PHP當(dāng)前狀態(tài)的大量信息,包含了PHP編譯選項(xiàng)、啟用的擴(kuò)展、PHP的版本、服務(wù)器信息和環(huán)境變量(如果編譯為一個(gè)模塊的話)、PHP環(huán)境變量论皆、操作系統(tǒng)版本信息、path變量猾漫、配置選項(xiàng)的本地值和主值点晴、HTTP頭和PHP授權(quán)信息(license).
以上是PHP官方對phpinfo()函數(shù)的解釋,我們接下來用這個(gè)函數(shù)來做一個(gè)測試悯周。
首先新建一個(gè)文件
<?php
phpinfo();
保存并在瀏覽器打開這個(gè)頁面粒督,瀏覽器會(huì)輸出響應(yīng)的信息,其中就包括了當(dāng)前我們開啟了哪些PHP的擴(kuò)展
2.使用get_loaded_extensions()
該函數(shù)返回了PHP解析器里所有編譯并加載的模塊名(既已經(jīng)開啟的PHP擴(kuò)展)
新建文件夾
<?php
get_loaded_extensions();
會(huì)在屏幕上打印并輸入所有已經(jīng)加載的PHP擴(kuò)展,以所以數(shù)組返回值
3.使用extension_loaded(string name)函數(shù)
作用:檢查一個(gè)擴(kuò)展是否加載
例如我們檢查redis是否加載就可以這樣寫
<?php
extension_loaded("redis");
返回值是bool類型禽翼,如果加載既返回TRUE屠橄,否則為FALSE
4.命令行模式查看當(dāng)前安裝了哪些擴(kuò)展
php -m
管理PHP擴(kuò)展
1.PHP擴(kuò)展所在位置
在我們最初安裝PHP的時(shí)候族跛,PHP擴(kuò)展默認(rèn)的位置在ext文件下,當(dāng)然了我們也可以進(jìn)行更改锐墙,更改的方式是通過修改PHP的配置文件來實(shí)現(xiàn)的
打開PHP配置文件php.ini
找到extension_dir="" 通過這個(gè)選項(xiàng)我們來自定義PHP擴(kuò)展的文件所在目錄
以下為我Windows下的擴(kuò)展截圖
2.如何開啟已經(jīng)安裝但是并未開啟的PHP擴(kuò)展
打開php.ini文件
找到 Dynamic Extensions 模塊
下面沒有開啟的擴(kuò)展前面都是有分號的礁哄,只要把分號刪掉,重啟Apache服務(wù)器或者Nginx服務(wù)器就可以了溪北,響應(yīng)的我們安裝了某個(gè)擴(kuò)展的時(shí)候桐绒,我們就可以直接這樣書寫
extension=要開啟的擴(kuò)展名稱
然后重啟服務(wù)器就可以了
如何安裝PHP擴(kuò)展
本次介紹包括Windows和Linux擴(kuò)展的安裝接收,但是在介紹之前我們先來認(rèn)識一下PECL.
什么是PECL?
PECL 是PHP擴(kuò)展的存儲庫之拨,提供了所有已知擴(kuò)展名和目錄茉继,用于下載和開發(fā)PHP擴(kuò)展
官網(wǎng)網(wǎng)址:
pecl.php.net
額外擴(kuò)展網(wǎng)址:(以下網(wǎng)址只針對Windows系統(tǒng))
http://windows.php.net/downloads/pecl/releases/
windows安裝PHP擴(kuò)展的流程
1.到官方網(wǎng)址下載想要安裝的PHP擴(kuò)展,下載版本的時(shí)候要下載響應(yīng)的版本擴(kuò)展
PHP版本 VC版本 nts/ts x64/x86
以上的任何一個(gè)出錯(cuò)都可能導(dǎo)致意外的錯(cuò)誤
2.解壓下載的文件
解壓時(shí)有的只會(huì)解壓出一個(gè)php_xxx.dll蚀乔,有的會(huì)解壓出很多文件烁竭,但是無論哪種,我們只需要以.dll結(jié)尾的文件
3.將解壓出來的.dll文件放到我們在php.ini中配置的擴(kuò)展目錄下即可
4.在php.ini中添加配置信息
1)一般方式
extension=php擴(kuò)展的名稱
2)需要設(shè)置配置信息
這個(gè)時(shí)候就需要根據(jù)說明開寫入響應(yīng)的配置信息了乙墙,根據(jù)每個(gè)擴(kuò)展的不同會(huì)寫入不同的配置信息
5.重啟Apache或者Nginx服務(wù)器
這樣經(jīng)過這么幾步我們就達(dá)到了Windows安裝颖变、配置生均、開啟PHP擴(kuò)展的目的
Linux下安裝PHP擴(kuò)展
Linux下安裝PHP擴(kuò)展有兩種方式一種是直裝听想,一種是編譯安裝,那么如何區(qū)分是直裝還是編譯安裝呢马胧?第一步:下載Linux版本的相對應(yīng)PHP版本的PHP擴(kuò)展汉买,當(dāng)我解壓之后發(fā)現(xiàn)文件是以.so結(jié)尾的文件,那么我們就認(rèn)為他是直裝佩脊,直接把解壓的.so文件復(fù)制到PHP的擴(kuò)展目錄下即可蛙粘,以下為Linux擴(kuò)展目錄:
lib/php/extensions/no-debug-non-zts-20131226
之后我們按照Windows下的流程修改php.ini配置文件,重啟服務(wù)器就可以了
編譯安裝:
當(dāng)下載完相對應(yīng)版本的擴(kuò)展文件之后威彰,解壓之后發(fā)現(xiàn)是一堆以.c或者.h等等這些文件組成的出牧,那么就需要編譯安裝了,簡單介紹一下這些以.c或者.h結(jié)尾的文件到底是什么東東歇盼。其實(shí)對于有C語言基礎(chǔ)的開發(fā)人員來說很明白這些文件就是c語言開發(fā)的源文件舔痕,我們可以直接用編譯器打開這些代碼,如果能力足夠大的話甚至可以修改再重新開發(fā)豹缀。
接下來進(jìn)入加壓目錄執(zhí)行一個(gè)phpize的命令伯复,那么這個(gè)命令在哪里呢?在PHP目錄下的bin目錄下邢笙,但是由于每個(gè)LinuxPHP安裝目錄的不同啸如,所以我就以我的本機(jī)目錄為準(zhǔn)來講解了
/usr/local/php/bin/phpize
因?yàn)槲业腜HP是安裝在/user/local/下面的,其他的根據(jù)各自情況來寫bin目錄前面的目錄氮惯,執(zhí)行完之后執(zhí)行下面的命令叮雳,同樣等號后面的目錄根據(jù)實(shí)際情況而定
./configure --with-php-config=/usr/local/php/php-config
這條命令的意思是自動(dòng)編寫配置文件想暗,省去了我們手工編寫的環(huán)節(jié)
但是并不是所有運(yùn)行這條命令的人都能夠正確執(zhí)行,有的人會(huì)出現(xiàn)error帘不,那么這是什么原因呢江滨?是因?yàn)闆]有安裝autoconf,安裝一下就好了
centos/redhat下使用下面命令安裝:
yum install autoconf
ubuntu下使用下面命令安裝
apt-get install autoconf
但是也并是所有人運(yùn)行上面之后也都夠成功,如果提示錯(cuò)誤厌均,那么請按照下面的安裝
yum lsit? php-devel
yum install php-devel.i686
安裝完成后重新運(yùn)行上面的命令即可唬滑,之后可是編譯和安裝
make && make install
之后開啟擴(kuò)展,就是在php.ini中寫入?yún)?shù)棺弊,然后重啟服務(wù)器就可以了晶密。
其他擴(kuò)展信息
什么是phpize?
phpize是用來擴(kuò)展PHP擴(kuò)展模塊的模她,通過phpize可以建立PHP的外掛模塊
什么是autoconf?
生成可以自動(dòng)地配置軟件源代碼