5

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

“您的主机不允许使用 system() 和 exec() 函数。”

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

4

3 回答 3

8

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

于 2012-12-20T21:07:37.173 回答
1

一些托管服务提供商能够从 .htaccess(如果是 Apache Httpd)中覆盖php.ini设置,或者使用托管帐户目录中某处的单独 php.ini 文件。

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

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

于 2012-12-20T21:19:49.163 回答
1

以利亚,我也有同样的问题,关于 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,(“”之间的第一个单词)并删除系统,

不要忘记删除带有两个单词的逗号 (,)。

它对我有用。

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

还请遵循质粒87 在这里给出的好建议,在完成创建您的站点的克隆后将其放回原处。

马里奥·布鲁诺

于 2014-04-29T00:02:48.687 回答