安装Drupal 5.0-URL含有端口号时创建管理员账号显示Access Denied

根据Drupal 5 简易安装指南(文字版)的安装步骤,在windows2003+apache2+php5+mysql5上面安装Drupal,最后一步创建管理员账号完成时,直接显示Access Denied,因为没有本地邮件服务器,所以不会发送密码到注册邮箱,但是也没有如指南所解释的会显示密码要求修改,得到的只是一个Access Denied,并且没有日志。经过分析和google,最终知道问题出在Session和Cookie上(因为我的站点是带有端口号的),根据Drupal 5 and problems with domains that include ports提示,修改setting.php:
if (isset($_SERVER['HTTP_HOST'])) {
  
// strip www., IP addresses, and port numbers from HTTP_HOST
  $domain = '.'. preg_replace('`(^www\.|[\d:\.]+$)`', '', $_SERVER['HTTP_HOST']);
  
// Per RFC 2109, cookie domains must contain at least one dot other than the
  // first. For hosts such as 'localhost', we don't set a cookie domain.

  if (count(explode('.', $domain)) > 2) {
    
ini_set('session.cookie_domain', $domain);
  }
}

/**
* To prevent cookie collisions, use an unique session name. Session names only
* accept alphanumeric characters. If you want to share sessions across
* installations in the same domain, specify the session name by hand.
*/
conf_init();
session_name(preg_replace('`(^https?://|[^a-z\d])`i', '', $base_url));

当然你也可以把那段if(isset...)直接注释掉,并加入
ini_set('session.cookie_domain', 'yourdomain.com');

另外:注意`(^www\.|[\d:\.]+$)` ,如果站点不以www开头,而以其他(比如ww2)的形式开头,那么也需要对应修改。

目前成功安装了Drupal和Mambo,也试用比较了一下。虽然经验不多,总体感觉来讲,“Drupal更简洁、Mambo更商业”。如果你做一个自娱自乐的网站,那么Drupal比较合适,如果你想做商业化的网站,或许Mambo更合理。当然这不代表Drupal不适合做商业网站,他们的功能都很强大,扩展性也非常好。只是Drupal相对比较清新,使用也比Mambo简单。

Joomal是Mambo的一个分支,看介绍差别不大,有空还是实践一下才能更好的理解。
posted @ 2007-04-17 18:33  bengxia  阅读(695)  评论(0编辑  收藏  举报
无觅相关文章插件,快速提升流量