php獲取linux
⑴ php如何判斷當前的操作系統是linux還是windows
PHP判斷當前操作系統的方法很多,比如:
1.直接使用PHP預定義常量PHP_OS來獲取;
<?php
header("Content-type:text/html;charset=utf-8;");
$os_name=PHP_OS;
if(strpos($os_name,"Linux")!==false){
$os_str="Linux操作系統";
}elseif(strpos($os_name,"WIN")!==false){
$os_str="Windows操作系統";
}
echo$os_str;
2.還可以通過用戶瀏覽器信息來判斷操作系統。
<?php
header("Content-type:text/html;charset=utf-8;");
//測試
echoget_user_os();
//Windows操作系統
functionget_user_os(){
//獲取用戶瀏覽信息參數
$agent=$_SERVER['HTTP_USER_AGENT'];
//獲取操作系統類型
if(strpos($agent,"NT6.1")){
$os_name="Windows7";
}elseif(strpos($agent,"NT5.1")){
$os_name="WindowsXP(SP2)";
}elseif(strpos($agent,"NT5.2")&&strpos($agent,"WOW64")){
$os_name="WindowsXP64-bitEdition";
}elseif(strpos($agent,"NT5.2")){
$os_name="Windows2003";
}elseif(strpos($agent,"NT6.0")){
$os_name="WindowsVista";
}elseif(strpos($agent,"NT5.0")){
$os_name="Windows2000";
}elseif(strpos($agent,"4.9")){
$os_name="WindowsME";
}elseif(strpos($agent,"NT4")){
$os_name="WindowsNT4.0";
}elseif(strpos($agent,"98")){
$os_name="Windows98";
}elseif(strpos($agent,"95")){
$os_name="Windows95";
}elseif(strpos($agent,"Linux")){
$os_name="Linux";
}
//判斷
if(strpos($os_name,"Linux")!==false){
$os_str="Linux操作系統";
}elseif(strpos($os_name,"Windows")!==false){
$os_str="Windows操作系統";
}else{
$os_str="未知操作系統";
}
return$os_str;
}
3.使用php_uname函數來獲取;
<?php
header("Content-type:text/html;charset=utf-8;");
$os_name=php_uname();
if(strpos($os_name,"Linux")!==false){
$os_str="Linux操作系統";
}elseif(strpos($os_name,"Windows")!==false){
$os_str="Windows操作系統";
}
echo$os_str;
⑵ 如何在Linux伺服器上查看PHP信息
phpinfo()函數用來顯示PHP的當前信息,其中包括PHP擴展和編譯版本,伺服器信息和環境,PHP環境中,路徑,主機和本地配置選項,HTTP頭,PHP許可等等(詳細信息可參考PHP手冊)。要得到這些信息,不僅可以從瀏覽器中查看,還可以使用命令行在伺服器上查看。
使用瀏覽器查看很簡單,我們只需要在網站目錄創建一個PHP文件,使用上面提到的phpinfo()函數,如:
<?php
phpinfo();
?>
然互在瀏覽器中輸入此文件路徑即可查看。
在Linux伺服器上,我們還可以使用如下命令,不用瀏覽網頁同樣可以查看PHP信息,如:
php -r 'phpinfo();'
此命令同樣可以得到網頁形式的結果。
⑶ php在windows下和linux獲取腳本路徑的區別
windows下使用的是「\」作為分隔符,而linux則反其道而行之使用"/"作為分隔符。所以在windows 環境中獲取路徑常見 C:\windows\system 的形式,而linux 常見 /user/share 的形式。
PHP中使用$_SERVER['DOCUMENT_ROOT'] 和 dirname(__FILE__)可以獲取兩個路徑。
在linux下獲取的這兩個路徑使用的都是Linux文件系統"/"作為分隔符的;而windows中獲取的這兩個路徑則不是都使用windows文件系統"\"作為分隔符的。
$_SERVER['DOCUMENT_ROOT'] 在linux和windows下均返回以"/"作為分隔符的文件路徑
dirname(__FILE__)在linux下使用「/」作為路徑分隔符,在windows下使用」\「作為分隔符
⑷ php 怎麼獲取 linux磁碟讀寫io使用率
1.使用iotop命令
使用該命令有個條件,Linux內核要高於2.6.20的版本,版本過低則沒有此命令,執行效果如下圖所示:
2:block_mp方法
首先,關閉syslog服務,然後開啟block_mp,最後正則表達式提取dmesg信息。
/etc/init.d/syslog stop
echo 1 > /proc/sys/vm/block_mp
dmesg | egrep "READ|WRITE|dirtied" | egrep -o '([a-zA-Z]*)' | sort | uniq -c | sort -rn | head
執行結果如下圖所示:
注意:操作完成後請關閉block_mp和啟動syslog
echo 0 > /proc/sys/vm/block_mp #關閉block_mp
/etc/init.d/syslog start #啟動syslog
⑸ 如何通過PHP執行linux命令
你想問得是php如何執行shell命令把?\x0d\x0a\x0d\x0a可以用system(),exec(),passthru()這三個函數實現\x0d\x0a雖然這三個命令都能執行linux系統的shell命令,但是其實他們是有區別的:\x0d\x0a system() 輸出並返回最後一行shell結果。\x0d\x0a exec() 不輸出結果,返回最後一行shell結果,所有結果可以保存到一個返回的數組裡面。\x0d\x0a passthru() 只調用命令,把命令的運行結果原樣地直接輸出到標准輸出設備上。\x0d\x0a 相同點:都可以獲得命令執行的狀態碼\x0d\x0a例子:system("ls -al");\x0d\x0a【使用之前要在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伺服器所有文件
httpd進程是root身份吧,這樣很危險,一般的辦法是設置httpd的進程身份為apache、www或者nobody這樣普通用戶,如果是APACHE,可以在httpd.conf裡面如下設置:
user = apache
group = apache
當然,需要建立對應的用戶,否則無法啟動。