(Drupal 8)私のローカル環境からは、管理者ユーザーでのロギングについて問題はありません。
しかし、ローカルサーバーからリモートサーバーに移行した後、任意のユーザー(および管理者)でログインすると、ユーザーページ(/ user/x、xは数値)にリダイレクトされますが、次のエラーメッセージが表示されます。
このページにアクセスする権限がありません
ページを更新すると、ユーザーのログインページに自動的にリダイレクトされます。理由がわかりません。
自分のデータベースから、ログに記録すると新しいセッションが表示されます。そして、ウォッチドッグは使用された接続のみを表示し、アクセスは拒否されました。
$drush wd-show
25136 27/Dec 00:18 access denied warning /user/1
25135 27/Dec 00:18 user notice Session opened for okli
誰かが私を助けることができますか?
ログイン後、ブラウザにCookieがないことに気づきました。たぶん問題はこれですが、Drupalログインセッションの専門家ではありません。
移行中に、サーバー構成を変更しました。以前は、WebサイトはSSL証明書を使用していました。証明書を削除しました(Webサイトはhttpです)。私は思いませんが、新しいサーバー構成が問題の原因である可能性があります。
UPDATE:私のステップとログ
1)データベースから、セッションとフラッドテーブルを切り捨てます
2)Firefoxブラウザを使用しています。登録されているすべてのCookieを空にします
3)/var/log/Apache2/access.log、/var/log/Apache2/error.logおよび/var/log/mysql/error.logをシェルから「tail -f」で開いて、ロギンに移動しますFirefoxのページ( http://xxx.xxx.xxx.xxx )
4)管理者名とパスワードを入力し、ログインフォームを送信します。アクセス拒否ページに移動します。
5)ログファイルが表示されます。
6)ブラウザのCookieには次の値があります。
7)テーブルセッションに1つのエントリがあります。
私のCookie値とデータベースエントリは同じではありませんか?ログインプロセスをデバッグするためにどのように/する必要がありますか?
以下、私のApache2.confファイルの内容:
Mutex file:${Apache_LOCK_DIR} default
PidFile ${Apache_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${Apache_RUN_USER}
Group ${Apache_RUN_GROUP}
HostnameLookups Off
ErrorLog ${Apache_LOG_DIR}/error.log
LogLevel debug
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
LimitRequestBody 204800
FileETag None
<IfModule mod_headers.c>
Header always append X-Frame-Options SAMEORIGIN
Header set X-XSS-Protection "1; mode=block"
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
</IfModule>
RewriteEngine On
RewriteCond %{THE_REQUEST} !HTTP/1\.1$
RewriteRule .* - [F]
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options -FollowSymLinks -Includes -ExecCGI
AllowOverride None
Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
IncludeOptional conf-enabled/*.conf
そして、私の/ect/Apache2/sites-enabled/xxx.confファイル(confファイルは1つしかありません):
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName xxx.xxx.xxx.xxx
DocumentRoot /var/www/drupalmaindir
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
<Directory /var/www/drupalmaindir>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
私のdrupalウォッチドッグ:
私の間違いはどこにあるのかわからず、なぜdrupalウェブサイトに接続できないのですか...:/
注:移行中に、Apache Webサイトの設定を変更しました。以前は、Webサイトでssl証明書(https)を使用していましたが、証明書を削除します(Webサイトはhttpにあります)。
"アクセスが拒否されました"のkingfisher64によると、 "このページへのアクセスは許可されていません"エラー???
誰かがこの問題につまずいた場合に備えて、私のための解決策はsettings.phpにありました。ウェブサイトをあるドメインから別のドメインにコピーしましたが、ファイルの下部にある次の設定は変更していません。
$cookie_domain = 'newwebsitenamehere.com';
注:http://
もwww.
もないことに注意してくださいはありませんこれらを入れてください。
Update:OPerがコメントしました:
移行中に、Apache Webサイトの構成を変更しました。以前は、Webサイトでssl証明書(https)を使用していましたが、証明書を削除します(Webサイトはhttpにあります)。
また、settings.phpで探す別のことは、コメントが外されている場合の$base_url
です(最初に#がない)正しいドメイン名であることを確認します(ドメイン名がこの新しいサーバーをすでにポイントしていると仮定します。このサーバーが指すドメイン名を持たない場合それをコメントアウトしてから、この行をコメントアウトします)、また、SSLを使用していないため、https://がある場合はs
も削除します。
例:
または、SSLがないため、#
を追加してコメント化することができます。