php擴展模塊如何安裝

我們編譯完php之後,它有一個功能可以查看所有加載的模塊,這些模塊會包含一些靜態的也會包含一些動態的

[root@zhangmengjunlinux curl]# /usr/local/php/bin/php -m  

一些動態的可以再php.ini也就是php的配置文件裏去定義,有時候在我們編譯完php之後發現少了一些模塊沒有編譯進來,解決辦法有兩種:

  1. 第一去重新編譯安裝,找到你的源碼包重新來一遍

  2. 第二種使用動態的方式把它加載進來,你單獨的編譯出來的模塊就可以了,類似於apache的動態模共享模塊,現在我們來嘗試編譯動態模塊

wKioL1aNCdaw7Sa8AADRfAO8s4w034.png

很多模塊的源碼包都在ext目錄下,假如說我們沒有curl,編譯一下curl

[root@zhangmengjunlinux ext]# cd curl  進入它的源碼下,可以編譯一個模塊

[root@zhangmengjunlinux curl]# ls 

config.m4  config.w32  CREDITS  curl.dsp  interface.c  multi.c  package.xml  php_curl.h  streams.c  tests

[root@zhangmengjunlinux curl]# /usr/local/php/bin/phpize    用這個命令可以目的是爲了生成                                                               configuring生成這個可執行文件

Configuring for:

PHP Api Version:         20090626

Zend Module Api No:      20090626

Zend Extension Api No:   220090626

wKiom1aNCz2Bb9-TAAAzGOfW7MQ087.png

好了我們去編譯安裝

wKioL1aNC7aTWgpJAAAxXTqqEic607.png[root@zhangmengjunlinux curl]# ./configure --with-php-config=/usr/local/php/bin/php-config 

這個是固定的語法,一般編譯不會有錯,往往是因爲少了什麼庫,然後make,makeinstall

install的時候它會把模塊的文件放在這個目錄下wKiom1aNDFvy1ygUAAAkhAfiYbk108.png

接下來就是去php.ini配置文件中把配置一下,把這個模塊加載進來就可以了,extension_dir是存放這些擴展模塊的,那我們應該去找一下她的extension到底在哪了

wKioL1aNDX2TYzbdAAAryfvVZaQ927.png

extension_dir也是可以自定義的,我們去配置一下extension_dir

wKioL1aNDgbwnqwlAABAFMpkP4s713.png

保存退出,這個時候我們可以查看curl模塊是不是已經加載進來了

wKiom1aNDjHSW8CoAAAYxi4QDjI255.png

好了我們看到已經加載進來了,我們如何看動態加載的模塊有那些呢,可以再php.ini裏去grep

[root@zhangmengjunlinux curl]# grep '^extension=' /usr/local/php/etc/php.ini 

extension=curl.so

其實我們最終過濾出來只有一行,說明只有curl.so它是動態的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章