1

我在共享主机上,出于安全原因禁用了 ini_set 功能。我正在尝试在此主机上部署 CakePHP 2.4.1。新鲜蛋糕安装会导致空白页面,没有显示错误,如果我评论这些行:

\lib\Cake\Model\Datasource\CakeSession.php

if (empty($_SESSION)) {
            if (!empty($sessionConfig['ini']) && is_array($sessionConfig['ini'])) {
                foreach ($sessionConfig['ini'] as $setting => $value) {
                    if (ini_set($setting, $value) === false) {
                        throw new CakeSessionException(__d('cake_dev', 'Unable to configure the session, setting %s failed.', $setting));
                    }
                }
            }
        }

一切似乎都运行良好。现在,我要问的是,保留这些片段的注释有什么缺点(换句话说,该代码负责什么)?

4

1 回答 1

0

如异常消息、方法名称和其余代码所示,它配置会话设置、会话名称、cookie 生存期、保存处理程序等...

您的代码可能运行良好,并且您应该能够使用 PHPsession_*()函数来配置设置(最好的地方可能是您的bootstrap.php. 还将一个虚拟值写入$_SESSION似乎会阻止CakeSession::_configureSession()to use ini_set(),因此您不必修改它。

所以这可能有效,但没有必要跳过这样的圈子。ini_set()在正确设置的共享托管环境中无需禁用,如果他们无法更改此行为,我个人会更改主机。

于 2013-10-15T12:52:58.590 回答