2012-01-24 147 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