Drupalにログインできない問題を解消

気づいたらDrupalにログインできなくなっていた。ユーザー名とパスワードを入れても同じ画面が表示されるばかり。何かおかしなことをしたかと思ってさんざん調べたら、先日trac月を入れた時のproxy設定が不充分だったことが原因で、追加でApache2.2を入れました。

ログインできなかった原因は、先日リバースプロキシーを通す設定をして、表向きのURLと、Drupalを実際に動かしているポート番号が異なってしまったため、cookieが送られなくなってしまった、というもの。

リクエスト(:80)→リバースプロキシー(ポート変換) → Drupal(:10080) →set-cookie(domain:.nonn-et-twk.net:10080)

になってしまったため、ブラウザーから見ると、リクエストしているドメイン(ポート)と異なるcookieを設定しようとしていることになってしまい、無視されてしまっていた、という訳。

前回の設定では、リバースプロキシーの設定のみ行われており、set-cookieのドメインは変換してくれないのです。aタグのリンク先は (もし絶対パスで書いていたら) 変換されないのと同じようなことです。

で、調べてみると、ProxyPassReverseCookieDomainという設定を追加すれば、変換してくれるとのこと。けど、これってApache2.2用で、先日入った2.0では有効にならないんですよね。・・・入れました2.2。

apache2.2 : 入り口。現在はリバースproxyとしてのみ動作。
apache2.0 : tracが動作。
apache1.3 : drupalほかが動作。

一台で3つもapache動かしてどうすんの!て感じですが、リクエストがなければメモリーもそれほどは使わないようなので、というかまた面倒なんでこれぐらいにしておきました。

2.2側のhttpd.confの設定。Drupalは.nonn-et-twk.netでCookieを発行していました。

<VirtualHost *:80>
ServerName nonn-et-twk.net:80
ProxyPass / http://nonn-et-twk.net:10080/
ProxyPassReverse / http://nonn-et-twk.net/
ProxyPassReverseCookieDomain nonn-et-twk.net:10080 nonn-et-twk.net
ProxyPassReverseCookieDomain .nonn-et-twk.net:10080 .nonn-et-twk.net
</VirtualHost>

trac側は、先日もうvirtualhostにしていたので、そこのポート番号ら辺を変えたのみです。

Trackback URL for this post:

http://nonn-et-twk.net/twk/trackback/107
0