詳解PHP中如何執(zhí)行系統(tǒng)命令
常見(jiàn)方法
使用反引號(hào)執(zhí)行
<?php $result = `ipconfig`; $result = iconv('GBK', 'utf-8', $result); echo $result; ?>
使用 exec
<?php $result = exec("ipconfig"); echo $result; ?>
使用 system
<?php $result = system("ipconfig"); echo $result; ?>
Windows
讀取外部普通文件時(shí)
<?php echo (file_get_contents('D:/a.csv')); ?>
注意:直接讀取即可。
執(zhí)行系統(tǒng)命令
<?php echo `net start ToDesk_Service`; ?>
注意:需要管理員權(quán)限或者管理員授權(quán)才可以執(zhí)行。
Linux
Apache
讀取外部普通文件時(shí)
讀取防火墻文件,文件有 r 權(quán)限,每級(jí)目錄都有 rx 權(quán)限即可。
<?php echo (file_get_contents('/etc/firewalld/zones/public.xml')); ?>
執(zhí)行系統(tǒng)命令時(shí)
執(zhí)行關(guān)閉防火墻命令(寫(xiě)一段 PHP 代碼,并通過(guò)瀏覽器訪問(wèn)此頁(yè)面)。
<?php echo `sudo systemctl stop firewalld`; // 關(guān)閉失敗 ?>
找到關(guān)于此命令的位置。
whereis systemctl # 發(fā)現(xiàn)位置在 /usr/bin/systemctl
查看目錄權(quán)限,發(fā)現(xiàn)每級(jí)目錄都有 rx 權(quán)限,但依然無(wú)法執(zhí)行。
ll /usr/bin/ | grep systemctl ll /usr/ | grep bin ll / | grep usr
解決
使用 root 管理員用戶
查看 apache 默認(rèn)用戶(寫(xiě)一段 PHP 代碼,并通過(guò)瀏覽器訪問(wèn)此頁(yè)面)。
<?php echo 'whoami'; // 顯示默認(rèn)用戶為 daemon ?>
嘗試改成 root 用戶
cd /opt/lampp/etc # 切換到 /opt/lampp/etc/ 目錄 vi httpd.conf # 編輯 httpd.conf 文件 /User # 找到 User User root # 改成 root 用戶 Group root # 改成 root 組
重啟 lampp
/opt/lampp/lampp restart # 發(fā)現(xiàn)啟動(dòng)失敗
xampp 集成環(huán)境為了安全性考慮不能改成 root 用戶訪問(wèn)。
將命令的執(zhí)行權(quán)限賦予給 xampp(Apache)對(duì)應(yīng)的用戶。最后執(zhí)行關(guān)閉防火墻命令,即可成功。
vi /etc/sudoers 或 visudo # 編輯 /etc/sudoers 按 G # 將光標(biāo)移動(dòng)到最后一行 按 i ,添加 daemon ALL=(ALL) NOPASSWD:ALL 或 daemon ALL=(ALL) NOPASSWD:/usr/bin/systemctl,/usr/bin/firewall-cmd # 添加授權(quán)指令 # 含義:給哪個(gè)用戶授權(quán) 允許哪個(gè)主機(jī)訪問(wèn)=模擬哪個(gè)賬號(hào)執(zhí)行命令 不要求輸入密碼:允許執(zhí)行的命令路徑 圖片
以上就是PHP中如何執(zhí)行系統(tǒng)命令的詳細(xì)內(nèi)容,更多關(guān)于PHP執(zhí)行系統(tǒng)命令的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
分享下頁(yè)面關(guān)鍵字抓取components.arrow.com站點(diǎn)代碼
這篇文章主要介紹了分享下頁(yè)面關(guān)鍵字抓取components.arrow.com站點(diǎn)代碼的相關(guān)資料,需要的朋友可以參考下2014-01-01PHP動(dòng)態(tài)輸出JavaScript代碼實(shí)例
這篇文章主要介紹了PHP動(dòng)態(tài)輸出JS代碼實(shí)例,本文直接給出代碼實(shí)例,一看就懂,簡(jiǎn)潔明了,需要的朋友可以參考下2015-02-02PHP驗(yàn)證碼類(lèi)文件及調(diào)用方式代碼詳解
這篇文章主要介紹了PHP驗(yàn)證碼類(lèi)文件及調(diào)用方式代碼詳解,需要的朋友可以參考下2017-09-09淺析php如何實(shí)現(xiàn)App常用的秒發(fā)功能
很多社交軟件都是用了一種秒發(fā)機(jī)制,讓用戶的體檢感很好,今天我們也來(lái)談?wù)勥@些社交軟件中常用的小技巧。2016-08-08Yaf框架封裝的MySQL數(shù)據(jù)庫(kù)操作示例
這篇文章主要介紹了Yaf框架封裝的MySQL數(shù)據(jù)庫(kù)操作,結(jié)合實(shí)例形式分析了Yaf框架基于PDO操作MySQL數(shù)據(jù)庫(kù)的相關(guān)配置、連接、增刪改查、統(tǒng)計(jì)等相關(guān)操作技巧,需要的朋友可以參考下2019-03-03php優(yōu)化查詢foreach代碼實(shí)例講解
這篇文章主要介紹了php優(yōu)化查詢foreach代碼實(shí)例講解,列舉了代碼實(shí)例和測(cè)試結(jié)果,有感興趣的同學(xué)可以學(xué)習(xí)下2021-03-03