韋少少
curl是利用URL語法在命令行方式下工作的開源文件傳輸工具。它被廣泛應(yīng)用在Unix、多種Linux發(fā)行版中,并且有DOS和Win32、Win64下的移植版本。在xampp集成環(huán)境中,curl自帶,只不過默認(rèn)關(guān)閉。vim /etc/php.ini注:此處的/etc/php.ini 請找到自己的php.ini路徑所有的 Unix Like 系統(tǒng)都會內(nèi)建 vi 文書編輯器,其他的文書編輯器則不一定會存在。vim 具有程序編輯的能力,可以主動的以字體顏色辨別語法的正確性,方便程序設(shè)計(jì)。然后找到:;extension=php_curl.dll在Vim下搜索字符串方法如下:1、命令模式下輸入“/字符串”,例如“/Section 3”。2、如果查找下一個,按“n”即可。要自當(dāng)前光標(biāo)位置向上搜索,請使用以下命令:/pattern Enter將;extension=php_curl.dll的注釋去掉,保存退出:x 寫入文件并退出。僅當(dāng)文件被修改時才寫入,并更新文件修改時間,否則不會更新文件修改時間。最后重啟服務(wù)即可service httpd restart
烏蠻
php安裝好后,可能在初次安裝時,會有些模塊會有遺漏,但是我們又不想重新編譯php,因?yàn)楹臅r是比較長的。我們可不可以在不重新編譯安裝php的情況下,來為php單獨(dú)添加某一個模塊呢?查找資料,發(fā)現(xiàn)還是有方法的,重點(diǎn)就是phpize了,于是寫了這篇文章.下面我們就以單獨(dú)為php加載mysqli模塊為例,演示如何動態(tài)為php添加模塊。1、找到php原碼安裝文件2、cd /home/php/ext/myslqi3、運(yùn)行 /usr/local/php/bin/phpize4、/configure –with-php-config=/usr/local/php/bin/php-config5、make && make install6、安裝完成之后會在系統(tǒng)/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/這個目錄下面生成mysqli.so的庫文件7、編輯php.ini文件,指定php到哪人目錄讀取模塊vi /usr/local/php/etc/php.iniextension_dir=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613″extension=mysqli.so8、重啟php服務(wù) /usr/local/php/sbin/php-fpm restart7、/usr/local/php/bin/php -m|grep mysqli 查看mysqli.so是否存在如果步驟正確,你的人口也不差的情況下,應(yīng)該這樣php的動態(tài)模塊加載就完成了。
毋丘甸
#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <stdlib.h>#include <errno.h>#include <dlfcn.h>//定義我們自己的connect函數(shù)int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen){ static int (*connect_linuxc)(int, const struct sockaddr*, socklen_t)=NULL; unsigned char *ip_char; //利用 lsym的RTLD_NEXT選項(xiàng)繞過LD_PRELOAD環(huán)境變量的connect方法找到c庫的函數(shù) if (!connect_linuxc) connect_linuxc=dlsym(RTLD_NEXT,"connect"); ip_char=serv_addr->sa_data; ip_char+=2;//192.168.2.3 找到了 if ((*ip_char==192)&&(*(ip_char+1)==168)&&(*(ip_char+2)==2)&&(*(ip_char+3)==3)) { //簡單返回一個權(quán)限錯誤的代碼 return EACCES; }// 調(diào)用真正的connect方法 return connect_linuxc(sockfd,serv_addr,addrlen); }編譯成so文件$ gcc -o lp_demo.so -shared lp_demo.c -ldl測試文件 test.php<?phpfile_get_contents("");?>使用方法LD_PRELOAD=lp_demo.so php test.php這樣他將不可能訪問的到192.168.2.3這種我們內(nèi)部的網(wǎng)址。起到一個很好的沙盒作用。除此之外我們還可以利用fwrite fopen等函數(shù)將php對文件系統(tǒng)的讀寫操作轉(zhuǎn)移到mencache,nosql之類的后端資源當(dāng)中。 最后,即使我們已經(jīng)深入了c庫的內(nèi)部,也不意味著我們走到了最底層,在c庫下面,還有一堆sys_開頭的函數(shù),他們才是內(nèi)核空間里的真正函數(shù),在此就不在探討了。
萬里煌
在PHP/etc 文件夾中加入擴(kuò)展在PHP 文件夾下的php.ini文件里 有很多dll文件的地方加入一行 你所添加的擴(kuò)展的名字xxxx.dll或者 是 在php.ini中直接打開對應(yīng)的擴(kuò)展 ,將目標(biāo)行的 ; 給去掉哦,對了,最后記得要重新啟動PHP的服務(wù)器
朱赤午
首先在Linux下安裝PHP擴(kuò)展的方法有很多一下我就演示一下我們最常見的一種方法。
安裝PHP擴(kuò)展
wget http://pecl.php.net/get/gearman-1.1..1.tgztar zxvf gearman-1.1.1-tgzcd gearman-1.1.1/usr/local/server/php/bin/phpize./configure --with-php-config=/usr/local/server/php/bin/php-config --with-gearman=/usr/local/server/gearmand-1.1.7/make && make install
以上的步驟會輸出擴(kuò)展安裝目錄:/usr/local/server/php-5.4.14/lib/php/extensions/no-debug-non-zts-20100525/
修改php.ini,加入語句如下
extension=/usr/local/server/php-5.4.14/lib/php/extensions/no-debug-non-zts-20100525/gearman.so
重啟php-fpm,用phpinfo查看是否安裝成功
service php-fpm restart
凌天
|靜態(tài)只要一啟動就能加載 動態(tài)用的時候才加載 .so/usr/local/php5/bin/php -i |less 查看配置文件在哪里,編譯參數(shù)/usr/local/php5/bin/php -m |less 查看php加載的模塊
鄢什
你這樣打醬油可以嘛?
王征
1、首先編寫一個函數(shù)定義文件,該文件編寫函數(shù)原型后綴為def,假設(shè)為:caleng_module.defint a(int x, int y)string b(string str, int n)2、通過擴(kuò)展骨架生成器,將在ext目錄下自動建立擴(kuò)展目錄caleng_module#> ./ext_skel --extname=caleng_module --proto=caleng_module.def3、修改配置文件: #> vim /software/php-5.2.13/ext/caleng_module/config.m4,將如下行的注釋標(biāo)簽"dnl"去掉,修改后如下所示:PHP_ARG_ENABLE(myfunctions, whether to enable myfunctions support,Make sure that the comment is aligned:[ --enable-myfunctions Enable myfunctions support])
亂世佳人
擴(kuò)展庫是php擴(kuò)展的功能,比如php本來不支持操作某種功能 ,但在新版本想對它提供支持,就以擴(kuò)展的方式來提供,這樣,我們在配置php時,如果我們不用此功能,我們就可以讓php不加載他.從而節(jié)省服務(wù)器資源.提供其性能 php的擴(kuò)展庫一般放在php目錄下的ext目錄里.你在網(wǎng)上下載的php壓縮包解壓后應(yīng)該可以看到. php.ini中的 extension_dir 用來指定你的擴(kuò)展名的地址 。 php.ini中有一排像 ;extension="xxxxxx.dll" 的內(nèi)容就是用來配置讓你的php運(yùn)行環(huán)境支持什么不支持什么。以下為php.ini中的剪切段------------------------------;extension=php_bz2.dll;extension=php_curl.dll;extension=php_dba.dll;extension=php_dbase.dll;extension=php_exif.dll;extension=php_fdf.dll;extension=php_gd2.dll //php對圖片操作的擴(kuò)展;extension=php_gettext.dll;extension=php_gmp.dll;extension=php_ifx.dll;extension=php_imap.dll;extension=php_interbase.dll;extension=php_ldap.dll;extension=php_mbstring.dll;extension=php_mcrypt.dll;extension=php_mhash.dll;extension=php_mime_magic.dll;extension=php_ming.dll;extension=php_msql.dll;extension=php_mssql.dll //php操作mssql (sql server)數(shù)據(jù)庫的擴(kuò)展;extension=php_mysql.dll //php操作mysql數(shù)據(jù)庫的擴(kuò)展------------------------------要讓php支持某種功能,把extension前面的 " ; "號去掉,重啟apache或iis即可。