从 PHP 脚本运行 Linux 命令?

发布于 2024-12-26 17:55:34 字数 555 浏览 1 评论 0 原文

我知道这是一个简单的问题,但我一生都无法解决这个问题。如果我通过 SSH (linux) 登录到我的服务器并输入: /home/username/public_html/x/foo.cgi f=subscribe l=list [email protected] 脚本运行完美。但是,如果我尝试通过 PHP 运行脚本,例如: shell_exec("/home/username/public_html/x/foo.cgi f=subscribe l=list [电子邮件受保护]"); 没有任何反应。

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

提前致谢!

特雷

I know this is a simple question, but I can't for the life of me get it to work. If I log in to my server via SSH (linux) and type in : /home/username/public_html/x/foo.cgi f=subscribe l=list [email protected] the script runs perfectly. However, if I try to run the script via PHP by the likes of : shell_exec("/home/username/public_html/x/foo.cgi f=subscribe l=list [email protected]"); nothing happens.

Can anyone point me in the right direction?

Thanks ahead of time!

Tre

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

伤痕我心 2025-01-02 17:55:34

“什么也没发生”并不是一个描述性很强的错误消息。尽管如此,我还是想到了三种可能性:

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

任你挑选。检查你的日志。确保不留下任何可供攻击者进入的漏洞。

"Nothing happens" isn't a very descriptive error message. Nevertheless, three possibilities come to mind:

  1. Differences between the server-hosted environment versus the shell environment.
  2. Your server or hosting site may have disabled shell_exec or other functionality.
  3. You may need to be running PHP as the same user you SSH'd in as (or otherwise get the correct permissions).
  4. Some other piece of the stack are in disarray due to mis-configuration or misuse.

Take your pick. Check your logs. Make sure you don't leave any holes available for attackers to get in.

对你再特殊 2025-01-02 17:55:34

如果您正在管理服务器,这很可能是权限问题。您的网络服务器正在运行 www-data 或一些类似的用户。它需要脚本文件的执行权限才能运行它。尝试使用 chmod 命令更改脚本的所有者,或者为您尝试运行的文件提供更自由的访问权限使用 chown 命令。

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

If you are managing the server, most likely this is a permissions issue. Your webserver is running as www-data or some similar user. It needs execute permissions on the script file to run it. Try changing the script's owner with the chmod command or give the file you're trying to run more liberal access permissions with the chown command.

Another thing to consider is that shell_exec may be disabled if PHP is running in safe mode.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文