本文目錄一覽:
- 1、如何讓PHP有權限執行Linux下的命令
- 2、怎麼禁止php獲取linux服務器所有文件?
- 3、如何用php運行linux命令,並獲取返回信息?
- 4、php 怎麼獲取 linux磁盤讀寫io使用率
- 5、為什麼linux下php無法讀取移動設備警告沒權限,在線急等,
- 6、為什麼php遠程執行linux命令失敗
如何讓PHP有權限執行Linux下的命令
php執行linux的命令用system或exec就可以,只要打開safemode,但是一些系統底層的沒有執行命令的不允許調用哦,實在有些命令例如zip之類想用的話,直接用php寫入一個shell腳本文件再exec那個sh就好了。
怎麼禁止php獲取linux服務器所有文件?
httpd進程是root身份吧,這樣很危險,一般的辦法是設置httpd的進程身份為apache、www或者nobody這樣普通用戶,如果是APACHE,可以在httpd.conf裡面如下設置:
user = apache
group = apache
當然,需要建立對應的用戶,否則無法啟動。
如何用php運行linux命令,並獲取返回信息?
你想問得是php如何執行shell命令把?
可以用system(),exec(),passthru()這三個函數實現
雖然這三個命令都能執行linux系統的shell命令,但是其實他們是有區別的:
system() 輸出並返回最後一行shell結果。
exec() 不輸出結果,返回最後一行shell結果,所有結果可以保存到一個返回的數組裡面。
passthru() 只調用命令,把命令的運行結果原樣地直接輸出到標準輸出設備上。
相同點:都可以獲得命令執行的狀態碼
例子:system(“ls -al”);
【使用之前要在php.ini中把safe_mode關閉】
php 怎麼獲取 linux磁盤讀寫io使用率
1.使用iotop命令
使用該命令有個條件,Linux內核要高於2.6.20的版本,版本過低則沒有此命令,執行效果如下圖所示:
2:block_dump方法
首先,關閉syslog服務,然後開啟block_dump,最後正則表達式提取dmesg信息。
/etc/init.d/syslog stop
echo 1 /proc/sys/vm/block_dump
dmesg | egrep “READ|WRITE|dirtied” | egrep -o ‘([a-zA-Z]*)’ | sort | uniq -c | sort -rn | head
執行結果如下圖所示:
注意:操作完成後請關閉block_dump和啟動syslog
echo 0 /proc/sys/vm/block_dump #關閉block_dump
/etc/init.d/syslog start #啟動syslog
為什麼linux下php無法讀取移動設備警告沒權限,在線急等,
首先您的media目錄可能是光盤;檢查media本身的權限,最後ls一下看看所列出的文件權限是否具有wr-wr-wr-,然後您需要判斷,您的httpd是否以某一用戶的權限運行。即使您以root登錄,但是web服務器卻不一定具有root權限,確認該服務器運行的用戶是否具有對該目錄的read權限即可。如果您改變了權限設定,可以嘗試重新啟動httpd試一試。
為什麼php遠程執行linux命令失敗
php執行系統命令需要權限,比如你用的是apache,那麼就需要apache執行shell的權限
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/198341.html