从PHP脚本运行linux命令


Running a linux command from a PHP script?

我知道这是一个简单的问题,但我一辈子都做不到。如果我通过SSH(linux)登录到我的服务器并键入:/home/username/public_html/x/foo.cgi f=subscribe l=list e=abcd@gmail.com,脚本就会完美运行。然而,如果我尝试通过PHP运行脚本,比如:shell_exec("/home/username/public_html/x/foo.cgi f=subscribe l=list e=abcd@gmail.com");,则不会发生任何事情。

有人能给我指正确的方向吗?

提前感谢!

Tre

"Nothing happens"不是一个非常描述性的错误消息。然而,脑海中浮现出三种可能性:

  1. 服务器托管环境与shell环境之间的差异
  2. 您的服务器或托管站点可能已禁用shell_exec或其他功能
  3. 您可能需要以SSH登录的同一用户身份运行PHP(或者获得正确的权限)
  4. 由于配置错误或误用,堆栈的其他部分处于混乱状态

任你选择。检查日志。确保没有留下任何漏洞供攻击者进入。

如果您正在管理服务器,很可能是权限问题。您的Web服务器以www数据或类似用户身份运行。它需要对脚本文件具有执行权限才能运行。请尝试使用chmod命令更改脚本的所有者,或者使用chown命令赋予要运行的文件更自由的访问权限。

另一件需要考虑的事情是,如果PHP在安全模式下运行,shell_exec可能会被禁用。