咱們編譯完php以後,它有一個功能能夠查看全部加載的模塊,這些模塊會包含一些靜態的也會包含一些動態的php
[root@zhangmengjunlinux curl]# /usr/local/php/bin/php -m linux
一些動態的能夠再php.ini也就是php的配置文件裏去定義,有時候在咱們編譯完php以後發現少了一些模塊沒有編譯進來,解決辦法有兩種:apache
第一去從新編譯安裝,找到你的源碼包從新來一遍curl
第二種使用動態的方式把它加載進來,你單獨的編譯出來的模塊就能夠了,相似於apache的動態模共享模塊,如今咱們來嘗試編譯動態模塊ide
不少模塊的源碼包都在ext目錄下,假如說咱們沒有curl,編譯一下curlurl
[root@zhangmengjunlinux ext]# cd curl 進入它的源碼下,能夠編譯一個模塊3d
[root@zhangmengjunlinux curl]# ls xml
config.m4 config.w32 CREDITS curl.dsp interface.c multi.c package.xml php_curl.h streams.c testsblog
[root@zhangmengjunlinux curl]# /usr/local/php/bin/phpize 用這個命令能夠目的是爲了生成 configuring生成這個可執行文件ci
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
好了咱們去編譯安裝
[root@zhangmengjunlinux curl]# ./configure --with-php-config=/usr/local/php/bin/php-config
這個是固定的語法,通常編譯不會有錯,每每是由於少了什麼庫,而後make,makeinstall
接下來就是去php.ini配置文件中把配置一下,把這個模塊加載進來就能夠了,extension_dir是存放這些擴展模塊的,那咱們應該去找一下她的extension到底在哪了
extension_dir也是能夠自定義的,咱們去配置一下extension_dir
保存退出,這個時候咱們能夠查看curl模塊是否是已經加載進來了
好了咱們看到已經加載進來了,咱們如何看動態加載的模塊有那些呢,能夠再php.ini裏去grep
[root@zhangmengjunlinux curl]# grep '^extension=' /usr/local/php/etc/php.ini
extension=curl.so
其實咱們最終過濾出來只有一行,說明只有curl.so它是動態的