在托管上启用system()和exec()函数?

时间:2012-12-20 21:01:58

标签: php wordpress hosting clone

我是开发人员,我在服务器上构建客户端站点,然后在完成后使用PHP脚本将其克隆到客户端的服务器。我这次尝试但是收到错误

  

“您的主机不允许使用system()和exec()   功能“。

知道如何启用此功能吗?我有cpanel访问权限,主机帐户是greengecko.com。安装Wordpress很简单,我只是无法运行这个脚本!

3 个答案:

答案 0 :(得分:8)

如果您的主机禁用了这些功能,则无法启用它们。您可以考虑与您的主机联系,看看他们是否会为每个帐户启用它们,或者如果您使用免费托管,您可以考虑升级到其托管的付费版本以启用这些功能。出于安全原因,它们被主机禁用。您唯一的行动方案,但是如果要联系您的网站托管服务商或尝试升级到付费托管服务(如果还没有)。

答案 1 :(得分:2)

Elijah,我也有关于system()和exec()的问题在php中没有问题。

只需通过FTP下载您网站根目录下的php.ini文件,您就会发现以下内容:

register_globals = On
safe_mode = Off
enable_dl = On
disable_functions = "exec,passthru,shell_exec,proc_open,popen,system,curl_exec,curl_multi_exec,parse_ini_file,show_source"

只需删除disable_functions行上的exec,("&#34之间的第一个单词;然后删除系统,

别忘了用两个单词删除逗号(,)。

它对我有用。

请注意,我在一个月前自己创建了这个php.ini文件,但我不知道为什么,通过更改cPanel中的php版本,exec和系统回来了。

在完成创建网站克隆的最后时,请遵循质量87给出的好建议,以便重新推荐。

Mario Bruneau

答案 2 :(得分:1)

某些托管服务提供商可以从.htaccess(如果使用Apache Httpd)或从托管帐户目录中的某个位置使用单独的php.ini文件覆盖php.ini设置。

我不熟悉您的托管服务提供商,因此无法评论这是否可行。但是,我可以说,如果你能够利用这样的设施,你可能正在寻找disable_functions指令。

作为进一步的建议,如果你发现自己能够“重新启用”受保护的PHP功能并且这是在客户端的帐户上,我不能强调你记得再次“重新禁用”它们的重要性之后(在托管帐户上禁用exec()system()越来越成为必需品,因为利用漏洞和简单的错误对服务器安全来说代价极高。)