php執行linux
⑴ php調用linux可執行文件
PHP調用可執行程序的語法例子:
system("ls /usr");
使用system調用,結果直接顯示才網頁上,參數通過字元串傳遞
調用注意:
PHP的進程要對可執行程序有相關的許可權。
⑵ 如何用php運行linux命令,並獲取返回信息
你想源問得是php如何執行shell命令把?
可以用system(),exec(),passthru()這三個函數實現
雖然這三個命令都能執行linux系統的shell命令,但是其實他們是有區別的:
system() 輸出並返回最後一行shell結果。
exec() 不輸出結果,返回最後一行shell結果,所有結果可以保存到一個返回的數組裡面。
passthru() 只調用命令,把命令的運行結果原樣地直接輸出到標准輸出設備上。
相同點:都可以獲得命令執行的狀態碼
例子:system("ls -al");
【使用之前要在php.ini中把safe_mode關閉】
⑶ php上如何運行linux命令
你想問得是php如何執抄行shell命令把?
可以用system(),exec(),passthru()這三個函數實現
雖然這三個命令都能執行linux系統的shell命令,但是其實他們是有區別的:
system() 輸出並返回最後一行shell結果。
exec() 不輸出結果,返回最後一行shell結果,所有結果可以保存到一個返回的數組裡面。
passthru() 只調用命令,把命令的運行結果原樣地直接輸出到標准輸出設備上。
相同點:都可以獲得命令執行的狀態碼
例子:system("ls -al");
【使用之前要在php.ini中把safe_mode關閉】
⑷ PHP怎麼調用Linux命令終端
首先先要給大家介紹PHP執行linux系統命令的幾個基本函數。
system函數
說明:執行外部程序並顯示輸出資料。
語法:string system(string command, int [return_var]);
返回值: 字元串
詳細介紹:
本函數就像是 C 語中的函數 system(),用來執行指令,並輸出結果。若是 return_var 參數存在,則執行 command 之後的狀態會填入 return_var 中。同樣值得注意的是若需要處理用戶輸入的資料,而又要防止用戶耍花招破解系統,則可以使用 EscapeShellCmd()。若 PHP 以模塊式的執行,本函數會在每一行輸出後自動更新 Web 伺服器的輸出緩沖暫存區。若需要完整的返回字元串,且不想經過不必要的其它中間的輸出界面,可以使用 PassThru()。
實例代碼:
< ?php
$last_line = system('ls', $retval);
echo 'Last line of the output: ' . $last_line;
echo '<hr/>Return value: ' . $retval;
?>
exec函數
說明:執行外部程序。
語法:string exec(string command, string [array], int [return_var]);
返回值: 字元串
詳細介紹:
本函數執行輸入 command 的外部程序或外部指令。它的返回字元串只是外部程序執行後返回的最後一行;若需要完整的返回字元串,可以使用 PassThru() 這個函數。
要是參數 array 存在,command 會將 array 加到參數中執行,若不欲 array 被處理,可以在執行 exec() 之前呼叫 unset()。若是 return_var 跟 array 二個參數都存在,則執行 command 之後的狀態會填入 return_var 中。
值得注意的是若需要處理使用者輸入的資料,而又要防止使用者耍花招破解系統,則可以使用 EscapeShellCmd()。
實例代碼:
< ?php
echo exec('whoami');
?>
popen函數
說明:打開文件。
語法:int popen(string command, string mode);
返回值: 整數
詳細介紹:
本函數執行指令開檔,而該文件是用管道方式處理的文件。用本函數打開的文件只能是單向的 (只能讀或只能寫),而且一定要用 pclose() 關閉。在文件操作上可使用 fgets()、fgetss() 與 fputs()。若是開檔發生錯誤,返回 false 值。
實例代碼:
< ?
$fp = popen( "/bin/ls", "r" );
?>
通過上述函數,PHP可以執行linux系統的shell命令。
⑸ 如何用php作Linux自動執行腳本
嵌入式
linux
如何以root身份自動登錄
並開機自動執行腳本文件
下面操作步驟記錄如下:
要設置自啟動程序需要解決兩個問題:1、系統自動登錄;2、自動執行腳本,
1)系統自動登錄
(1)修改/etc/inittab
在inittab中,有如下配置
1:2345:respawn:/sbin/agetty
tty1
9600
2:2345:respawn:/sbin/agetty
tty2
9600
3:2345:respawn:/sbin/agetty
tty3
9600
4:2345:respawn:/sbin/agetty
tty4
9600
5:2345:respawn:/sbin/agetty
tty5
9600
6:2345:respawn:/sbin/agetty
tty6
9600
表示系統可以有六個控制台,可以用alt+(f1~f6)來切換。而/sbin/agetty就是一個登陸驗證程序,執行它,會提示用戶輸入用戶名和密碼,然後啟動一個指定的shell(在passwd文件中指定的)。
所以,我們只需將其修改為不執行agettty,而是執行自己編寫的一個腳本,就可以跳過用戶名和密碼的輸入。修改如下:
1:2345:respawn:/root/logintest
tty1
9600
這里我在/root/下放了一個測試腳本,這樣系統啟動時就會執行那個腳本,腳本內容:
#!/bin/sh
/bin/login
-f
root
腳本其實就是執行了一個root用戶的登陸而已。
2)自動執行程序
方法有兩種,一種是將要執行的代碼放到1)中的/root/logintest的後面;
另一種是將要執行的代碼放到/etc/profile文件的後面即可。
⑹ 如何通過PHP執行linux命令
你想問得是php如何執行shell命令把?
可以用system(),exec(),passthru()這三個函數實現
雖然這三個命令都能執行linux系統內的shell命令,但是其實他容們是有區別的:
system() 輸出並返回最後一行shell結果。
exec() 不輸出結果,返回最後一行shell結果,所有結果可以保存到一個返回的數組裡面。
passthru() 只調用命令,把命令的運行結果原樣地直接輸出到標准輸出設備上。
相同點:都可以獲得命令執行的狀態碼
例子:system("ls -al");
【使用之前要在php.ini中把safe_mode關閉】
⑺ php如何執行linux的curl指令
(1)可以使用system("curl",$return);
注: 如果用本函數啟動一個程序並希望保持在後台運行,必須確保該程序的輸出被重定向到一個文件或者其它輸出流去,否則 PHP 會在程序執行結束前掛起。
(2)
或exec("curl",$return);
以上具體請查閱手冊.
(3)其實php5內置了對curl的支持,編譯curl擴展庫,修改php.ini即可.詳見參考資料.
⑻ 如何讓PHP有許可權執行Linux下的命令
最近幫一個朋友搞個東西,但是用的是比較笨的方法,代碼如下--------主要是讓PHP獲取更大的許可權去執行LINUX命令,有許可權去重啟nginx服務或者重啟Apache服務。
<?php
// 作用取得客戶端的ip、地理信息、瀏覽器、本地真實IP
//此文檔編碼類型:utf-8
//程序使用:
//include("XXX.php") //引入類
// $gifo = new get_gust_info();//實例化
// $gifo->GetBrowser(); //獲得訪客瀏覽器類型
// $gifo->GetLang(); //獲得訪客瀏覽器語言
// $gifo->GetOs(); //獲取訪客操作系統
// $gifo->Getip(); //獲得訪客真實ip
// $gifo->get_onlineip(); //獲得本地真實IP
// $gifo->Getaddress($ip); //參數 $ip 是可選的,默認返回一個二維數組包含當前訪客所在地的相關信息
//
⑼ php如何實現隨意執行linux命令(任意讀寫,刪除等)
顯然,你要抄靠php操作其范圍外的文襲件或目錄是不可能的,這是因為php的運行身份是apache,因此沒辦法操作root許可權的文件或目錄。 我們採取的辦法是,用VC寫個服務,該服務的運行身份是root,也就是給其最大許可權,php調用該服務做操作。
當然還有另外的辦法,這是我的猜測,你不妨試看看,
1、把php的運行用戶改為root,這樣可能會存在一定的風險。
2、在apache裡面指定可以對某個root許可權的文件或目錄做操作,該辦法沒試驗過。如果你能試驗成功的話,希望反饋一下哦。