php調用shell腳本--126錯誤

寫個頁面的東西,來執行服務器上命令,最簡單的比如reboot命令,用php來調用 參考網上方法如下

先建立一個腳本( /root/reboot_server.sh ),重啓用的。

代碼如下:

#!/bin/bash

reboot


再給他賦予權限 4755

chown root:root /root/reboot_server.sh

chmod 4755 /root/reboot_server.sh

chmod 4777 /sbin/reboot

再在 php 裏, 想辦法做如下調用 php

reboot.php 代碼如下:


<?php

exec ("/root/reboot_server.sh",$out,$status);

print_r($out);

print_r($status);

?>

然後,通過頁面來訪問reboot.php(lnmp平臺做了虛擬主機,可以通過域名來訪問x.x.com/reboot.php)

其結果返回 126的狀態碼,搜索網上解決方案,一直無果


索性將/root/reboot_server.sh移到了和reboot.php 同一個目錄中

訪問,可以了,返回狀態碼0 系統重啓了


意識到是目錄權限的問題,/root目錄對php的用戶www沒有可執行權限

chmod -R 755 /root

然後把reboot_server.sh移動到了/root 重新測試


搞定了


。。。。。。一說都是淚啊,因爲一個目錄的權限,折騰啊

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章