2013-05-07 111 views
4

我上传了一个gif到我的网站。被上传完成后,我可以看到这个错误:警告:出于安全考虑,`exec()`已被禁用

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; 

一部分感谢您的帮助! :-)

回答

2

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

Fatal error: Call to undefined function execute() 

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

Warning: exec() has been disabled for security reasons 

您的虚拟主机已禁用exec()方法,你将无法运行后台脚本(如您似乎在试图做)。你需要找到另一种方式来实现你的目标,或找到另一个网络主机。

+0

哦:-(感谢您的帮助,我正在寻找新的主机:) – 2013-05-07 14:40:22

+1

共享主机上几乎总是禁用'exec',因为这个功能太危险了。 – Jocelyn 2013-05-07 14:47:15

6

正如其他信息:

有一个叫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

+0

其他执行正在工作......只有在这段代码中,执行不起作用......对不起,我的英文不好:) – 2013-05-07 14:49:09

+0

就像我说的,这是因为这个功能已被托管提供商禁用,并且在共享托管域很难找到允许执行的提供者。如果你找到某人,要非常谨慎,因为它不会是一个非常安全或安全的服务器恕我直言。 – raidenace 2013-05-07 14:50:27