問題背景:
想在oj上加乙個重啟判題服務的按鈕呼叫shell而已
1.使用su root進入root賬戶
修改/etc/sudoers許可權 777
%sudo all=(all:all) all改為
%sudo all=(all:all) nopasswd:all
%表示組 即sudo組的都可以免密碼使用sudo指令(其實有點危險啊)
2.usermod -g sudo www-data sudo
將執行php頁面的使用者www-data加入sudo組中
3.重啟apache
在ubuntu中是/etc/init.d/apache2 restart
4.exec('sudo killall -9 judged 2>&1 ',$output,$ans);可以將報錯資訊重定向輸出到$output變數中
5.如果想在後台執行 php頁面不等待的寫法
system("sudo ./restart.sh >>/home/important/judgeonline2017core/log/newfile.txt &");
必須要把輸出的資訊重定向到檔案才可以!!要不然那個指令碼不執行完 網頁就一直轉圈圈 重新整理就崩 但是pid變了
md太菜了 這麼個小功能加了兩天才寫完
經歷的乙個小插曲是:
www-data執行sudo不是得輸入密碼麼 但是php執行指令碼沒地方讓你輸入啊 就得改sudoers檔案 這個檔案正常許可權是440唯讀的 我是用sudo chmod 777修改的 然後加了免密碼 nopasswd: all那行以後 再sudo chmod 440就儲存了 因為sudoers檔案必須是440的時候sudo命令才能用嘛 不用sudo我連重啟進去安全模式都不能做 就只能去機房強制關機 然後我跟我導說這個事 他說你幹嘛用sudo su root使用root賬號就得了唄 學藝不精
php怎麼呼叫,php怎麼實現呼叫物件
php怎麼實現呼叫物件 閱讀 73 php 物件的呼叫和引入 直接上例項 定義 class a static q 888 public function index echo 1111 static function debug echo echo 555 使用 include a.php clas...
php怎麼呼叫,php如何呼叫指定檔案
php 中的 include require 函式可以呼叫其他php生成的內容,一般來說include 或 require 語句會獲取指定檔案中存在的所有文字 標記,並複製到使用 include 語句的檔案中。通過 include 或 require 語句,可以將 php 檔案的內容插入另乙個 ph...
PHP呼叫MYSQL儲存過程 不報錯的解決方法
前兩天跟同事一起開發一套庫存管理系統,我負責寫頁面程式,同事負責寫儲存過程,寫程式時一切進展很順利,直到開發完成,我用php呼叫他的儲存過程時問題發生了。以後開發時需要注意以下幾點 1 連線mysql資料庫時要注意後兩個引數 define client multi results 131072 定義...