1

これは、drushを介したDrupal7の新規インストールです。

firebugを使用すると、ログインしようとした後、応答ヘッダーでCookieが返送されたことがわかります。ページはホームページ(/ node)にリダイレクトされます。また、セッションレコードはセッションテーブルに保存されます。エラーはありません。サーバーエラーログにもエラーはありません。

同じサーバーがログイン機能を備えた他のサイトをホストしています。同じブラウザで他のサイトに問題なくログインできます。たとえばワードプレス。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
4

1 に答える 1

1

問題は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パスパラメータ(つまり、このCookieが適用されるWebサイトのpthを制限するために使用されるパス)をサーバー上のCookieストレージパスと間違え ます-実際には存在せず、Cookieはサーバーに保存されません- -(phpでは、セッションがデフォルト構成であるWebサーバー上のファイルを介して管理されている場合、これはsession.save_path設定によって管理され、セッションはサーバーに保存され、その名前はCookie名です)。

于 2013-03-08T08:51:44.527 に答える