Невозможно изменить имя файла cookie php

Я скопировал существующий и успешно работающий сайт на новый сервер разработки.

Вход на новый сервер теперь сломан, и я отследил его до того, что хотя cookie сеанса переименован …

ini_set('session.name', 'DOMAIN1'); 

… браузер хранит файл sesssion cookie как PHPSESSID.

Когда я удаляю вышеуказанную строку из приложения на новом сервере, логин снова работает. Но это нехорошее решение, потому что другое приложение также использует PHPSESSID под этим именем.

И я предпочел бы найти причину странного поведения вместо использования обходного пути. Если я не исправлю это, это может укусить меня в другом месте.

Может быть, это уже достаточно информации для кого-то, чтобы дать мне подсказку. Если нет, какая информация будет полезна?

Эта машина была очень голым и базовым сервером ubuntu 8.04, и я установил apache2, mysql и php5 с aptitude. Я также обновил lokales и часовой пояс.

Решение:

Я заменил строку выше этим кодом из принятого ответа …

 if(ini_set('session.name', 'DOMAIN1') === false || !session_name('DOMAIN1')) { die('Unable to set sesssion scope'); } 

… и теперь вход на новый сервер работает.

Иногда ini_set воспроизводится и не может правильно установить значения ini, возможно, до разрешений.

ниже не удается полностью решить проблему с помощью ini_set , и если кто-нибудь знает причину (причины), почему ini_set не работает на хосте некоторых типов, то, пожалуйста, поделитесь!

Попробуйте следующее:

 <? if(ini_set('session.name', 'DOMAIN1') === false || !session_name('DOMAIN1')) { die('Unable to set sesssion scope'); } phpinfo(); ?> 

в качестве альтернативы вы можете просто использовать session_name() чтобы установить его, и не рекомендуется всегда просто запускать функции и надеяться, что всегда проверяйте в инструкции if и подготовьтесь к наихудшему сценарию, то есть когда ваше приложение станет надежным и будет меньше error_prone.