Drupal 无法登录,服务器端似乎存在与cookie相关的问题

Drupal 无法登录,服务器端似乎存在与cookie相关的问题,drupal,nginx,php,Drupal,Nginx,Php,这是通过drush新安装的Drupal7 使用firebug,我可以看到cookie在我尝试登录后被发送回响应头。页面将重定向到主页(/node)。会话记录也保存在会话表中。没有错误。服务器错误日志上也没有错误 同一台服务器正在承载具有登录功能的其他站点。同一浏览器可以毫无问题地登录到其他站点。例如Wordpress。Cookie肯定已启用 服务器正在运行Nginx、PHP和fpm 附件是我的网站的nginx设置。我不确定它是否与干净的url有关。从浏览器中,我确实看到了干净的url。我可以输入

这是通过drush新安装的Drupal7

使用firebug,我可以看到cookie在我尝试登录后被发送回响应头。页面将重定向到主页(/node)。会话记录也保存在会话表中。没有错误。服务器错误日志上也没有错误

同一台服务器正在承载具有登录功能的其他站点。同一浏览器可以毫无问题地登录到其他站点。例如Wordpress。Cookie肯定已启用

服务器正在运行Nginx、PHP和fpm

附件是我的网站的nginx设置。我不确定它是否与干净的url有关。从浏览器中,我确实看到了干净的url。我可以输入/user、/user/register、/user/password页面

server
{
  listen       80;
  server_name  www.testd720.com;
  index        index.php index.html index.htm;
  root         /opt/www/drushtest/web1;
  #error_page 404 = @drupal;

  #location / {
  #          # This is cool because no php is touched for static content
  #          try_files $uri $uri/ @rewrite;
  #          expires max;
  #}

  #location @drupal {
  #   rewrite ^(.*)$ /index.php?q=$1 last;
  #}

  location / {
      if (!-e $request_filename) {
          rewrite  ^/(.*)$   /index.php?q=$1  last;
          break;
      }
  }

  location ~ .*\.(php|php5)?$
  {
    #fastcgi_pass unix:/tmp/php-cgi.sock;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    include       fastcgi.conf;
  }
  access_log logs/testd720.log main;
}
标题:

Cache-Control   no-cache, must-revalidate, post-check=0, pre-check=0
Connection  keep-alive
Content-Language    en
Content-Type    text/html; charset=utf-8
Date    Thu, 07 Mar 2013 09:47:37 GMT
Etag    "1362649657"
Expires Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified   Thu, 07 Mar 2013 09:47:37 +0000
Location    http://www.testd720.com/node
Server  nginx/1.2.0
Set-Cookie  SESS26bc541d314e909277ae077251e81e7a=qu7a2apzFE9ALHnLWc04N-t_JoHhh2UCR2MkmKROVG0; expires=Sat, 30-Mar-2013 13:20:57 GMT; path=/tmp; domain=.testd720.com; HttpOnly
Transfer-Encoding   chunked
X-Powered-By    PHP/5.4.3

问题出在cookie路径设置上:

Set-Cookie  SESS26bc541d314e909277ae077251e81e7a=qu7a2apzFE9ALHnLWc04N-t_JoHhh2UCR2MkmKROVG0;
   expires=Sat, 30-Mar-2013 13:20:57 GMT;
   path=/tmp;
   domain=.example.com;
   HttpOnly
在这里,您可以向浏览器指定此cookie仅用于以/tmp开头的站点上的url


您肯定会将cookie path参数(即用于限制此cookie应用的网站上的PTH的路径)与服务器上的cookie存储路径(实际上不存在,cookie不存储在服务器上)弄错--(在php中,这是由session.save_路径设置管理的。如果会话是通过Web服务器上的文件管理的,这是默认配置,则会话存储在服务器上,其名称为cookie名称)。

问题在于cookie路径设置:

Set-Cookie  SESS26bc541d314e909277ae077251e81e7a=qu7a2apzFE9ALHnLWc04N-t_JoHhh2UCR2MkmKROVG0;
   expires=Sat, 30-Mar-2013 13:20:57 GMT;
   path=/tmp;
   domain=.example.com;
   HttpOnly
在这里,您可以向浏览器指定此cookie仅用于以/tmp开头的站点上的url


您肯定会将cookie path参数(即用于限制此cookie应用的网站上的PTH的路径)与服务器上的cookie存储路径(实际上不存在,cookie不存储在服务器上)弄错--(在php中,这是由session.save_path设置管理的。如果您的会话是通过Web服务器上的文件管理的,这是默认配置,则会话存储在服务器上,其名称为cookie名称)。

添加包含cookie的响应头,特别是cookie内容(可能仅限于域或其他内容)添加包含cookie的响应头,特别是cookie内容(可能仅限于域或其他内容)