2010-04-02 25 views
0

默認情況下,當在PHP中使用system()exec()函數時,默認用戶是SYSTEM,因此我永遠無法看到結果。有沒有辦法改變它運行的用戶?如何在PHP中使用特定用戶的exec函數

+2

exec()將作爲啓動進程的用戶(如apache)運行。這是不能改變的。但是,exec()應該返回命令的結果。 – webbiedave 2010-04-02 21:25:20

+0

如果不知道您使用哪種操作系統(以及您是否可能更改),則無法回答。雖然我相信微軟有sudo like工具(sudowin) – symcbean 2010-04-02 22:01:24

+0

我使用Windows 7和Apache 2.2和PHP 5.3.2。 – Eric 2010-04-03 11:08:35

回答

0

要插件到webbiedave,您可以輸出或保存到文件。 我的建議是將它保存到數據庫,如果可以的話,這將防止競爭條件。

0

Web服務器可能會有另一個用戶(例如suEXEC)運行腳本的規定,但PHP本身不能這樣做。

0

您可以定義一個cronjob(特定用戶),每分鐘檢查一次文件。使用PHP(其他用戶),您可以寫入該文件。如果cronjob在文件中找到某些東西,它就開始在特定用戶下處理任務。這是恕我直言改變用戶的唯一方式。

相關問題