簡體   English   中英

PHP無法執行任何外部命令?

[英]php can't execute any external command?

我們從Slackware遷移到CentOS,它工作正常,然后沒有通知,php停止執行外部調用,例如對“ wc”和“ spamc”的調用。 所有此類調用在error_log上顯示為:

sh:/ usr / bin / spamc:權限被拒絕

路徑正確。 我們已經正確設置了權限,並且apache應該能夠正常執行文件。 我們也不是對的safe_mode和我們沒有base_dir集。 它不是SELinux,或者至少sestatus說SELinux已禁用。

摘要:

  • PHP無法通過exec()或popen()執行任何操作
  • 二進制文件的路徑正確。
  • 我們不處於安全模式
  • 我們沒有設置base_dir
  • 二進制文件的權限允許apache用戶執行它們
  • SELinux被禁用
  • php.ini中的disable_functions為空
  • 我們不知道為什么它不起作用

PHP版本5.3.3和CentOS 5.5

任何人都有可能發生的事情的線索嗎? 提前致謝

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

發現錯誤。

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

我發了瘋,決定檢查從根目錄/文件夾到整潔的二進制文件的所有路徑組件的權限后,便找到了答案,我發現所有權限設置都正確,但usr文件夾的權限完全搞砸了。

這是固定的。

PHP是否在服務器上作為Apache運行? 我以為沒有人跑。

https://serverfault.com/questions/207989/php-cant-execute-any-external-command/208001#208001

通常,除非您將php編譯為fastcgi,dso等,否則centOS上的PHP會以無人運行的方式運行...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM