您好,登錄后才能下訂單哦!
查看PHP模塊
[root@centos6 ~]# php -m
[PHP Modules]
bz2
Core
ctype
date
dom
ereg
exif
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mcrypt
openssl
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib
[Zend Modules]
如果我們發(fā)現(xiàn)有一個模塊沒有編譯進來,解決辦法有兩種:第一,需要重新編譯,重新配置;第二,單獨編譯該模塊,使用動態(tài)共享的方式加載該模塊。我們自己嘗試編譯一個PHP動態(tài)共享模塊。
PHP安裝包的ext目錄下包含了許多模塊的源代碼:
[root@centos6 ~]# cd /usr/local/src/php-5.4.36
[root@centos6 php-5.4.36]# cd ext
[root@centos6 ext]# ls
bcmath dba fileinfo iconv mbstring odbc pdo_mysql posix simplexml standard wddx zlib
bz2 dom filter imap mcrypt openssl pdo_oci pspell skeleton sybase_ct xml
calendar enchant ftp interbase mssql pcntl pdo_odbc readline snmp sysvmsg xmlreader
com_dotnet ereg gd intl mysql pcre pdo_pgsql recode soap sysvsem xmlrpc
ctype exif gettext json mysqli pdo pdo_sqlite reflection sockets sysvshm xmlwriter
curl ext_skel gmp ldap mysqlnd pdo_dblib pgsql session spl tidy xsl
date ext_skel_win32.php hash libxml oci8 pdo_firebird phar shmop sqlite3 tokenizer zip
PHP默認沒有沒有安裝curl模塊,下面命令返回無結果:
[root@centos6 ext]# php -m |grep -i curl
我們以編譯安裝PHP的curl模塊為例進行說明:進入curl目錄
[root@centos6 ext]# cd curl
[root@centos6 curl]# ls
config.m4 config.w32 CREDITS curl.dsp interface.c multi.c package.xml php_curl.h streams.c tests
生成configure相關的文件:
[root@centos6 curl]# yum install -y m4 autoconf #安裝兩個自動生成configure的工具
[root@centos6 curl]# /usr/local/php/bin/phpize #生成configure
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
[root@centos6 curl]# ls
acinclude.m4 config.h.in config.w32 ltmain.sh package.xml
aclocal.m4 config.m4 CREDITS Makefile.global php_curl.h
autom4te.cache config.sub curl.dsp missing run-tests.php
build configure install-sh mkinstalldirs streams.c
config.guess configure.in interface.c multi.c tests
配置
[root@centos6 curl]# ./configure --with-php-config=/usr/local/php/bin/php-config
錯誤1:configure: error: Please reinstall the libcurl distribution -
easy.h should be in <curl-dir>/include/curl/
解決:[root@centos6 curl]# yum -y install curl-devel
編譯
[root@centos6 curl]# make
[root@centos6 curl]# echo $?
0
安裝
[root@centos6 curl]# make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
[root@centos6 curl]# echo $?
0
模塊已生成
[root@centos6 curl]# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
curl.so
查看extension_dir
[root@centos6 curl]# php -i |grep extension_dir
extension_dir => /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525 => /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525
sqlite3.extension_dir => no value => no value
[root@centos6 curl]# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
curl.so
也可以自定義extension_dir
[root@centos6 curl]# vim /usr/local/php/etc/php.ini
……
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
; extension_dir = "ext"
……
配置加載curl.so
……
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
extension=curl.so
……
查看動態(tài)加載的模塊
[root@centos6 curl]# php -m |grep curl
curl
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。