CakePHP ini_set на общем хосте
Я на общем хосте и функция 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));
}
}
}
}
Кажется, все работает нормально. Теперь я спрашиваю, что является недостатком в том, чтобы оставлять фрагменты комментариев (другими словами, за что отвечает этот код)?
1 ответ
Как указывает сообщение об исключении, имя метода и остальная часть кода указывают настройки сеанса, имя сеанса, время жизни файла cookie, обработчик сохранения и т. Д.
Ваш код может работать нормально, и вы должны быть в состоянии использовать PHP session_*()
функции вместо того, чтобы настроить параметры (лучшее место для этого, вероятно, ваш bootstrap.php
). Также записываем фиктивное значение в $_SESSION
кажется, мешает CakeSession::_configureSession()
использовать ini_set()
так что вам не нужно изменять его.
Так что это может сработать, но не нужно прыгать через такие обручи. Там нет необходимости отключать ini_set()
в правильно настроенной среде общего хостинга, и лично я бы сменил хостера на случай, если они не смогут изменить это поведение.