我将现有且成功运行的站点复制到新的开发服务器。
新服务器上的登录现在被破坏了,我追查到虽然会话 cookie 被重命名了......
ini_set('session.name', 'DOMAIN1');
...浏览器不断将会话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');
}
...并且登录现在可以在新服务器上使用。