【问题标题】:PHP Exec() or System() Causes 500 ErrorPHP Exec() 或 System() 导致 500 错误
【发布时间】:2012-07-13 10:24:02
【问题描述】:

我认为这是一个相当简单的问题。这是我的测试代码(显然我会在实际编写时添加安全预防措施)-

<?php
    if (isset($_POST['url']) && !empty($_POST['url'])) {
        system('wget --no-parent --timestamping --convert-links --page-requisites --no-directories --no-host-directories -erobots=off '.$_POST['url']);
} else {
    echo '<form method="post"><input type="url" name="url"><input type="submit"></form>';
}

?>

我需要启用/安装 PHP 或 Apache2 中的某些模块才能使其正常工作吗?如果有帮助,我正在通过浏览器访问此页面。即使尚未调用命令(if 语句的那部分未运行)也会发生这种情况,如果我注释掉 system() 或 exec() 行,500 错误就会消失。

【问题讨论】:

    标签: php system exec


    【解决方案1】:

    您的代码对我有用,请检查system 功能是否对您禁用。您可以使用ini_get('disable_functions') 来检查它是否被禁用。

    【讨论】:

      【解决方案2】:

      您提供的代码中有错误;最后你把点放在了错误的地方:

       '.$_POST['url']);
      

      而不是

       .'$_POST['url']);
      

      【讨论】:

      • 我已经复制了你的确切代码,但我得到了一个白页,因为我禁用了 system() 命令,但完全没有错误。你想要完成什么?你不能改用 PHP cURL 库或函数 file_get_contents() 吗?
      • 我正在尝试将一个页面及其所有依赖项下载到一个目录中,我被告知 wget 是最好的方法。你能想到其他方法吗?
      猜你喜欢
      • 2012-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多