【问题标题】:Run a Perl Script from PHP/Apache从 PHP/Apache 运行 Perl 脚本
【发布时间】:2012-02-18 03:26:23
【问题描述】:

在 RED HAT LINUX 上:运行 APACHE

我想从 PHP 脚本运行 Perl 脚本并尝试使用以下命令:

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

这似乎失败了,因为 PERL 脚本需要由另一个用户 (USER1) 运行。

我尝试过使用 SUDO,但没有成功。我必须以 (USER1) 而不是用户 (APACHE) 身份运行脚本,因为 (USER1) 比 APACHE 用户拥有更多权限。

知道我会怎么做吗?

【问题讨论】:

  • 希望您无法将网络服务器连接到sudo 任何东西!您需要更改文件的权限,以便网络服务器可以访问和运行它。
  • USER1(或 ROOT)必须是运行 Perl 脚本的人,因为该用户有权运行某些命令,例如 Kill 进程。这有意义吗?
  • 是的,它可以作为一个句子来理解,但不,这是一个可怕、可怕的想法。如果你让你的 web 服务器以 root 身份运行,你就是在自找麻烦。作为用户,Web 服务器可以终止它创建的进程。
  • 点了。回到绘图板。
  • Perl 脚本有什么作用?

标签: php linux perl apache exec


【解决方案1】:

在不完全了解您的 perl 脚本在做什么的情况下,也许可以考虑运行一个运行 perl 脚本的 cronjob。通过这种方式,它完全与 Apache 隔离,并且仍然可以以 root 身份运行,而不会损害您的服务器。

【讨论】:

  • 或者编写一个守护进程来监控你的数据库服务器,无论它允许 ping 它或通过 SNMP 监控它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-26
  • 2016-02-11
  • 2017-10-26
  • 2012-09-05
相关资源
最近更新 更多