2012-01-24 191 views
1

在Red Hat Linux:運行Apache運行Perl腳本從PHP/Apache的

從PHP腳本我想運行一個Perl腳本,我試圖用以下命令這樣做:

exec("/usr/bin/perl /home/path/to/perlscript/main.pl", $output, $result); 

這似乎失敗了,因爲PERL腳本需要由另一個用戶(USER1)運行。

我試過沒有成功使用SUDO。我必須以(USER1)而不是用戶(APACHE)運行腳本,因爲(USER1)具有比APACHE用戶更多的權限。

任何想法我會怎麼做?

+4

我會**希望**你無法讓網絡服務器「sudo」任何東西!您需要更改文件的權限,以便Web服務器可以訪問並運行它。 – 2012-01-24 21:22:20

+0

USER1(或ROOT)必須是運行Perl腳本的用戶,因爲該用戶有權運行某些命令,如殺死進程。那有意義嗎? – mmundiff

+3

是的,它作爲一個句子是可理解的,但不是,這是一個**可怕的,可怕的想法**。如果你讓你的web服務器以root身份運行,你就會乞求麻煩。 Web服務器作爲一個用戶可以終止它創建的進程。 – 2012-01-24 21:30:06

回答

0

不完全知道你的perl腳本正在做什麼,也許考慮運行一個運行perl腳本的cronjob。這樣它就完全與Apache隔離開來,並且仍然可以以root身份運行而不會影響服務器。

+0

或者編寫一個守護進程來監視您的數據庫服務器意味着它允許ping它或通過SNMP監視它。 – Skittles