【问题标题】:why is php's ini_set function switched off on shared hosts为什么 php 的 ini_set 函数在共享主机上关闭
【发布时间】:2010-01-19 17:47:45
【问题描述】:

我在 VPS 上使用主机,他们不允许我使用 php 的 ini_set 函数在运行时逐个脚本地设置配置。相反,我必须直接在 php.ini 文件中更改设置,这是通过 SSH 访问的任务。

这是为什么?

这虽然很好,但有点烦人,因为我在共享服务器上有 12 个域,我不一定想全面设置设置....

【问题讨论】:

    标签: php set shared host ini


    【解决方案1】:

    如果它是针对经销商的产品,可能是为了防止您的客户/客户/用户随意更改 php.ini 设置,这通常是明智的做法。

    但是如果你有机器的完全访问权限,你不应该可以重新激活ini_set吗?

    【讨论】:

      【解决方案2】:

      就像 Pekka 说的,如果你可以通过 SSH 修改你的 php.ini,然后尝试在那里更改它。

      关闭safe_mode并检查disable_functions的内容

      此指令允许您出于安全原因禁用某些功能。它采用逗号分隔的函数名称列表。 disable_functions 不受安全模式的影响。该指令必须在 php.ini 中设置,例如,您不能在 httpd.conf 中设置。

      【讨论】:

        【解决方案3】:

        VPS 提供商倾向于强制他们的用户使用最安全的环境。禁用ini_set() 通常是一种很好的安全实践,因为您可以很容易地在 PHP 代码中使用eval() 语句,该语句使用 GET/POST/SESSION 变量作为输入,例如。我相信如果safe_mode 打开,ini_set() 默认会被阻止。我想任何共享托管服务提供商都会强制执行safe_mode

        【讨论】:

        • 要明确一点:使用 eval() 根本是不好的做法。如果您根本需要使用 eval(),则永远不要使用用户输入进行 eval(),即使开启了 safe_mode。
        【解决方案4】:

        您能否详细介绍一下服务器组件。 PHP 作为 CGI 或 mod_php。 PHP 是否启用了 suPHP 或其他保护系统? 可以使用 .htaccess 文件更改某些选项。您是否可以直接访问 httpd.conf 文件?在那里你可以启用 ini_set() -> http://php.net/manual/en/configuration.changes.php

        【讨论】:

          猜你喜欢
          • 2011-02-02
          • 2013-07-05
          • 1970-01-01
          • 1970-01-01
          • 2011-03-11
          • 1970-01-01
          • 2016-05-21
          • 1970-01-01
          • 2010-12-25
          相关资源
          最近更新 更多