摘要:但當(dāng)我們?cè)诰W(wǎng)站上訪問(wèn)的時(shí)候,我們此時(shí)的用戶為如果不修改的執(zhí)行權(quán)限的話,是無(wú)法執(zhí)行成功的。
0.說(shuō)明
在php中,我們可以使用exec()來(lái)執(zhí)行系統(tǒng)命令,但有時(shí)我們會(huì)遇到exec()命令執(zhí)行不成功,或者無(wú)返回的情況,下面來(lái)說(shuō)明一下:
1.函數(shù)exec ( string $command [, array &$output [, int &$return_var ]] ) : string 參數(shù)說(shuō)明: 1.$command 要執(zhí)行的命令 2.$output 執(zhí)行結(jié)果 3.$return_var 若同時(shí)設(shè)置 $output 和此變量,命令執(zhí)行后的返回狀態(tài)會(huì)被寫(xiě)入到此變量2.例子
exec("ping www.baidu.com", $output);
正常來(lái)說(shuō)執(zhí)行結(jié)果會(huì)跟在服務(wù)器上直接執(zhí)行ping沒(méi)區(qū)別,但是由于某些原因會(huì)導(dǎo)致意外情況,下邊針對(duì)兩種情況作出說(shuō)明,以及解決辦法
問(wèn)題
當(dāng)我們?cè)诜?wù)器上直接執(zhí)行l(wèi)inux系統(tǒng)命令時(shí)(此處以ping為例),執(zhí)行權(quán)限取決于我們登陸用戶的權(quán)限,如果我們登陸用戶為root ,則執(zhí)行ping的時(shí)候是用root來(lái)執(zhí)行。但當(dāng)我們?cè)诰W(wǎng)站上訪問(wèn)的時(shí)候,我們此時(shí)的用戶為www,如果不修改ping的執(zhí)行權(quán)限的話,是無(wú)法執(zhí)行成功的。
解決
修改ping或者對(duì)應(yīng)命令的執(zhí)行權(quán)限
問(wèn)題
還有一種情況,當(dāng)我們用exec執(zhí)行某個(gè)命令時(shí),不報(bào)錯(cuò),也不返回結(jié)果,原因是此命令沒(méi)有在環(huán)境變量配置的目錄下即/etc/profile文件中,以ifconfig為例,我們可以用whereis ifconfig,找出此命令具體路徑,比如路徑在/usr/sbin下,兩種解決辦法:
解決
1 復(fù)制命令到/usr/bin下,也就是環(huán)境變量下的目錄(不太推薦)
2 直接將命令全路徑補(bǔ)全exec("/usr/sbin",$output);(推薦)
3 在環(huán)境變量中增加目標(biāo)目錄例如增加/usr/sbin到目錄
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/30082.html
摘要:一執(zhí)行系統(tǒng)外部命令輸出并返回最后一行結(jié)果。相同點(diǎn)都可以獲得命令執(zhí)行的狀態(tài)碼用提供的專門(mén)函數(shù)提供共了個(gè)專門(mén)的執(zhí)行外部命令的函數(shù),,。第二個(gè)參數(shù)是可選的,用來(lái)得到命令執(zhí)行后的狀態(tài)碼。 php高級(jí)語(yǔ)法總結(jié)。 一、執(zhí)行系統(tǒng)外部命令 system() 輸出并返回最后一行shell結(jié)果。 exec() 不輸出結(jié)果,返回最后一行shell結(jié)果,所有結(jié)果可以保存到一個(gè)返回的數(shù)組里面。 pass...
閱讀 939·2021-11-22 12:09
閱讀 3710·2021-09-27 13:36
閱讀 1397·2021-08-20 09:37
閱讀 4017·2019-12-27 12:22
閱讀 2360·2019-08-30 15:55
閱讀 2364·2019-08-30 13:16
閱讀 2822·2019-08-26 17:06
閱讀 3440·2019-08-23 18:32