2013-10-07 82 views
1

將全功能Drupal 7站點和相應的數據庫遷移到新服務器。我無法登錄到管理員端。錯誤消息是:「訪問被拒絕。您無權訪問此頁面。「用戶名和密碼已通過驗證。Drupal 7訪問被拒絕管理面板

我查看了/ admin/reports/dblog,錯誤日誌每次登錄顯示2個條目。一個條目顯示會話是爲正確的用戶名打開的,而另一個條目顯示訪問被拒絕並且用戶是「匿名的」。這是我的假設,Drupal無法驗證用戶,因此它將該用戶分配爲匿名用戶。

我讀過很多關於類似問題的論壇話題。我在'settings.php'中註釋了'$ cookie_domain',但仍然沒有任何結果。我回頭看功能網站,看到2個cookie被生成:'has_js'和會話ID cookie。在新網站中,只會生成'has_js'Cookie(同時使用Firefox和Chrome瀏覽器)。我已驗證會話標識正被保存到數據庫中的會話表中。

我已經研究過修改'php.ini'(etc/php5/apache2/php.ini),但還沒有找到解決方案來保存會話ID cookie。

的Drupal 7 Linux服務器 的Ubuntu 12.04 的Apache 2.2.22 MySQL的14.14 PHP 5.3.10

回答

1

遷移時從服務器到另一個Drupal的安裝有可能出現的一些問題。

1)檢查您的文件權限,因爲有時我們將文件從服務器遷移到另一個文件並擁有不同的所有者:組,這給出了嚴重的問題。

2)您需要在遷移之前刪除所有緩存,以避免訪問問題以及從緩存等使用錯誤的URL,在您的情況下您已經遷移了Drupal,因此您需要轉到數據庫並刪除所有內容cache_ *數據庫。這可以幫助你。

3)如果沒有,你需要看看你使用的是什麼PHP版本,以及mysql和apache可能是一些不贊成使用的函數。

1

我有同樣的問題,除了我可以看到Chrome中的會話cookie(Settings -> Show Advanced Settings -> Content Settings -> All Site Cookies and Data)。 Cookie的「Send for」屬性被設置爲「僅限安全連接」,並且我的網站在HTTP /端口80上運行。因此,瀏覽器不會將cookie發送回網絡。

的問題竟然是這行php.ini中:session.cookie_secure = 1

當這個選項被設置,PHP將指定該cookie只能通過安全(HTTPS)連接來發送。這使得難以發起中間人攻擊,因爲cookie不再通過明文發送。

有兩種方法可以解決問題:1)將站點切換到HTTPS。 2)在php.ini中,設置爲session.cookie_secure = 0

0

我有同樣的問題。第一個答案中的數字3救了我 - 我最近將我的MAMP PHP版本更改爲5.6,這似乎是造成這個問題的原因。恢復到5.5意味着我現在可以登錄。上的settings.php

2

取消註釋行340,以反映您正在訪問的域名

例如for localhost

$cookie_domain = 'localhost'; 

請注意,這適用於drupal 7,而我的php版本是5.6。

Regards,