代码之家  ›  专栏  ›  技术社区  ›  Joseph

exec()的问题,特别是在Drupal中

  •  1
  • Joseph  · 技术社区  · 15 年前

    or die('could not exec'); 在exec()之后,当我加载drupal页面时,它只显示“无法执行”和其他内容。

    [编辑]

    我通过指定要执行的php文件的显式路径来实现这一点。也就是说,我改变了: exec('php mymodule.helper',$output);

    exec('php /var/www/mydrupal/modules/mymodule/mymodule.helper',$output);

    [编辑2]

    exec ('php ' . __DIR__ . '/mymodule.helper',$output);

    很好用。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Scott Reynen    15 年前

    我建议您首先将问题缩小到a)非CLI PHP中的某些内容,b)Drupal中的某些内容,或c)通过exec运行的命令中的某些内容。

    一些测试:

    • 这真的是Drupal特有的吗?尝试将一些exec()代码复制到一个.php文件中并直接加载它(在Drupal之外)。在那里效果更好吗?(注意:CLI non-Drupal和non-CLI-Drupal的比较与Drupal和non-Drupal的比较不太一样。)
    • 非CLI PHP是否在安全模式下运行?(我打赌这就是问题所在)你可以向 echo(ini_get('safe_mode'));
    • exec()的实际返回变量是什么?仅仅检查它是真是假并没有多大帮助;作为一个字符串,它几乎总是真的。尝试 $result = exec(...); print_r($result);
        2
  •  0
  •   Joseph    15 年前

    exec('php'。 董事