【问题标题】:Warning: `exec()` has been disabled for security reasons [duplicate]警告:出于安全原因,`exec()` 已被禁用 [重复]
【发布时间】:2013-05-01 13:33:25
【问题描述】:

我将 gif 上传到我的网站。什么时候上传完成,我可以看到这个错误:

Warning: exec() has been disabled for security reasons in /data/web/virtuals/28995/virtual/www/include/functions/main.php on line 306

Fatal error: Call to undefined function execute() in /data/web/virtuals/28995/virtual/www/include/functions/main.php on line 309

这是 main.php 的一部分

$owh = $width_old."x".$height_old;
$nwh = $final_width."x".$final_height;
if(!file_exists($temppic))
{
    $runinbg = "convert ".$file." -coalesce ".$temppic;
    $runconvert = execute("$runinbg");
}
$runinbg = "convert -size ".$owh." ".$temppic." -resize ".$nwh." ".$output;
$runconvert = execute("$runinbg");
return true;

感谢您的帮助! :-)

【问题讨论】:

    标签: php fatal-error


    【解决方案1】:

    作为附加信息:

    有一个名为disable_functions 的php.ini 指令。添加到此列表的函数将被 PHP 禁用,当您尝试执行这些函数时,您会收到此错误。如前所述,您的托管服务提供商很可能已将 exec 添加到禁用列表中。这是共享主机中的常见做法。如果您真的想运行exec(或一些提供pseudo-exec 功能的托管服务提供商),您将需要一个专用服务器。 It is a bad idea to trust a shared hosting provider who allows you to run exec unrestrained.

    【讨论】:

    • 其他执行正在运行...仅在此代码中,执行不起作用...对不起我的英语不好:)
    • 就像我说的,因为这个功能已经被主机商禁用了,在共享主机域中很难找到允许执行的提供商。如果你找到某人,要非常小心,因为它不会是一个真正安全或安全的服务器恕我直言..
    • @raidenace 为什么在共享主机上允许 exec 被认为并不安全?您能否详细说明或引用您的来源?
    【解决方案2】:

    这些错误就是他们所说的。

    Fatal error: Call to undefined function execute() 
    

    您正在调用一个不存在的函数。

    Warning: exec() has been disabled for security reasons
    

    您的网络主机已禁用exec() 方法,您将无法运行后台脚本(就像您正在尝试执行的那样)。您需要找到另一种方法来实现您的目标,或者寻找其他网络托管服务商。

    【讨论】:

    • 哦 :-( 感谢您的帮助,我正在寻找新的主机 :)
    • exec 在共享主机上几乎总是被禁用,因为这个功能太危险了。
    • @Jocelyn 你能解释一下这个功能对共享主机有什么危险吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多