国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Apache > 正文

Linux/Apache php執行錯誤怎么解決?

2024-08-27 18:23:50
字體:
來源:轉載
供稿:網友
  用php調用exec方法去執行一個linux終端下的命令,結果每次都不能執行成功,主要原因是因為Apache的執行權限的問題。
  利用php利用root權限執行shell腳本必須進行以下幾個步驟:(若有不妥可指出,謝謝!)
  1. 確定一下你的Apache的執行用戶是誰。注:不一定就是nobody,我安裝的lampp,我的Apache的用戶就是${APACHE_RUN_USER}
  2. 利用visudo為你的Apache執行用戶賦予root執行權限,當然還有設置無密碼。注:為了安全起見,最好不要用root,這里最好是新建一個用戶,讓他作為Apache的執行用戶即可(修改apache2.conf文件,后面我會指出)
  3. 這步就簡單了,編寫你的腳本,利用php的exec,system...函數來執行。
  接下來就是詳細的實現過程:
  1. 查看一下你的Apache的執行用戶是誰: lsof -i:80
  運行之后的結果為:
  從圖中我們可以清楚的看到,httpd(也就是Apache)的執行用戶為:exec_shell(注:這是我本機上改過之后的用戶,只是用來說明一下,你的肯定不是這個!)
  lsof 就是 List of file 的縮寫,就是列出當前系統打開文件的工具,關于他具體的使用方法可參考:http://club.topsage.com/thread-234763-1-1.html   說的比較不錯
  確定了你的Linux上Apache的執行者是誰,下面為了安全起見,新建一個用戶將Apache的執行用戶修改為我們新建的用戶。
  2. 新建Apache的執行用戶
  useradd your_exec_user  我們知道創建用戶的時候都會默認創建一個用用戶名同樣的用戶組,也就是說現在我們也有一個your_exec_user的用戶組
  下面我們修改一下Apache的配置文件,使它的執行用戶改為我們剛才新建的這個用戶your_exec_user :
  vi  /home/houqingdong/httpd-exe/config/apache2.conf(這個是你的Apache所在的目錄位置)
  找到下面的地方,修改為你新建的用戶:your_exec_user
  重新啟動Apache:   /home/houqingdong/httpd-exe/bin/apachect1  restart      -------------> 重啟完之后你可以利用:lsof -i:80 查看一下。
  3. 執行visudo(或者是 vi /etc/sudoers) , 為your_exec_user賦予root權限,并且不需要密碼
  visudo    找到這個地方,添加your_exec_user,并且設置無需密碼
  我之前的時候,做完這里就去執行php腳本去了,結果一直創建不成功,而且很郁悶的是我切換到your_exec_user用戶下直接執行是可以執行成功的。
  4.設置執行sudo不需要一個終端
  后來,查看了一下Apache的日志文件,發現:
  這里明顯看出,在執行sudo的時候說必須要有一個tty去運行sudo , 知道問題出在哪里問題就好解決了: vi /etc/sudoers   將下面的這句注釋掉:
  這是因為默認的情況下,執行sudo需要一個終端,這里注釋掉就可以了。接下來,寫你的shell腳本和php命令吧
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大埔县| 大余县| 涡阳县| 原平市| 泗阳县| 商水县| 金川县| 荔浦县| 新河县| 太谷县| 屏东县| 江都市| 阳山县| 武定县| 杭州市| 承德市| 瓦房店市| 汉川市| 拜泉县| 侯马市| 泽库县| 都昌县| 肥东县| 和林格尔县| 昂仁县| 岳阳市| 东阳市| 砀山县| 汝南县| 襄樊市| 宁明县| 东兰县| 灵山县| 舞钢市| 天门市| 平顺县| 泸定县| 定陶县| 白水县| 涡阳县| 浦县|