2010-12-01 56 views
1

我們從Slackware轉移到CentOS在這裏,它工作正常,然後沒有通知,PHP停止執行外部呼叫,如調用「wc」和「spamc」。所有此類電話出現在error_log中爲:php不能執行任何外部命令?

SH:在/ usr/bin中/ spamc:權限被拒絕

的路徑是正確的。我們有正確的權限設置,並且Apache應該能夠執行沒有問題的文件。我們是不是 on safe_mode,我們沒有設置base_dir。它不是SELinux,或者至少sestatus說SELinux被禁用。

摘要:

  • PHP不能執行任何直通的exec()或POPEN()
  • 路徑,以二進制文件是正確的。
  • 我們不是在安全模式下
  • 我們沒有base_dir設置上的二進制文件
  • 權限允許Apache用戶來執行它們
  • 的SELinux被禁用
  • disable_functions選項在php.ini是空
  • 我們不知道爲什麼它不工作

PHP版本5.3.3和CentOS 5.5

任何人都有可能發生什麼的線索? 在此先感謝

+0

可能更好地回答服務器故障或網站管理員:http://serverfault.com/或http://webmasters.stackexchange.com/ – Orbling 2010-12-01 17:17:09

+0

此問題更適合http://serverfault.com/ – 2010-12-01 17:20:20

+0

@安德烈加西亞 - 你的全部命令是什麼樣的? – ajreal 2010-12-01 17:27:30

回答

1

發現的錯誤。

我試圖執行/ usr/bin/tidy,例如,usr文件夾有一個644的權限,類似於我的書中的愛情恐怖。我可以工作,因爲我是根。

我發瘋後決定檢查命令從根目錄/文件夾到整潔二進制文件的所有路徑組件的權限,我發現所有權限設置正確,但是usr文件夾的權限已完全搞砸了。

這是固定的。

2

SELinux阻止您嘗試運行它們。我建議你提出一些規則,允許你運行所需的外部命令子集並將其作爲模塊加載。

0

PHP是否在服務器上以Apache身份運行?我以爲它跑的沒人..