【问题标题】:Is it possible for a host to lock a php ini settings?主机是否可以锁定 php ini 设置?
【发布时间】:2013-09-02 13:33:06
【问题描述】:

我正在开发一个需要使用会话的网站。但是,会话生命周期的默认值为 1440 秒或 24 分钟。我尝试使用ini_set() 更改此设置,确保将ini_set() 放在session_start() 之前,然后使用ini_get() 进行检查。 ini_get() 返回我设置的值,但会话似乎仍然遵循默认规则集。

那么主机是否可以锁定对 ini 设置的编辑?

【问题讨论】:

  • 我相信我正在使用 linux 和 apache。
  • 是的。主持人可以强制执行他们想要的任何设置,也可以根据需要禁止您进行更改。尤其是带有外部文件的东西,比如会话,他们可以自己进行垃圾收集。
  • 您实际更改的是哪个 ini 值?您通常使用 session_set_cookie_params() 设置 cookie 参数 - ini var session_gc_maxlifetime 对 cookie 的生命周期没有影响 - 只是垃圾收集可能运行之前的时间量。
  • 对不起,我也使用了 session_set_cookie_params() 但这也没有用。

标签: php web-hosting php-ini


【解决方案1】:

简短回答:可能。

可能是他们通过全局 php.ini 中的 disable_functions 指令禁用了 ini_set 的使用,但这并不能解释您所看到的行为;文档不清楚,但是如果您调用禁用的函数,我希望它会引发错误,也没有解释为什么ini_get 返回您之前设置的内容。也完全有可能他们正在运行他们自己的修补版本的 PHP 来改变这种行为。并非闻所未闻,但不太可能。

要尝试的事情:

  • 改为使用session_set_cookie_params 设置(需要在session_start 之前)
  • 仔细检查您是否设置了正确的参数 (session.cookie_lifetime),并且您的 ini_set 确实放置在 session_start 之前,或者您在其他地方没有另一个 session_start

【讨论】:

  • 是的,这两件事我都做过。那时他们必须禁用它们。使用会话进行用户登录时,这有点烦人。明天我会和他们聊聊:)
【解决方案2】:

awser 是的。

php 代理有 3 个作用域。

1 个系统

这会影响所有应用程序。它的 global.ini 文件。他们能 也禁用覆盖。

2 Perdir

这是您的 php.ini 文件。它只会影响您的目录。这里可以 您禁用脚本范围的覆盖并在 允许时的系统范围

3 脚本

这是ini_set 范围。它可以覆盖 perdir & system 允许的范围

那么主机是否可以锁定对 ini 设置的编辑?

是的,他们可以在系统范围内禁用覆盖。

【讨论】:

  • 真的吗?你有资源吗?从the documentation says 看来,在我看来这些已经融入 PHP,并且如果不修补 PHP 本身就无法更改。所以,如果一个属性被PHP_INI_ALL 标记为可更改,我看不出你可以如何将其更改为PHP_INI_SYSTEM 更改。
猜你喜欢
  • 2016-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-05
  • 1970-01-01
  • 1970-01-01
  • 2011-02-05
相关资源
最近更新 更多