本文是與Ktree的合作努力。 感謝我們的合作夥伴使Sitepoint成為可能。
>本文探討了Magento cookie錯誤配置如何破壞店面和管理後的登錄功能,並解釋了基本原因並提供解決方案。 這個問題通常以重定向循環為特徵,儘管有正確的憑據,但登錄屏幕仍在其中重新出現。
包括診斷腳本以幫助識別幾個常見問題。隨意適應並為您的特定需求提供擴展。
密鑰點:
.example.com
>
>
Magento提供的多個會話提供商可在
中配置:
><session_save></session_save><session_save_path></session_save_path>
<session_save></session_save>
/app/etc/local.xml
Core\_session
啟用數據庫會話存儲。會話存儲在<session_save>db</session_save><redis_session><host>127.0.0.1</host><port>6379</port></redis_session>
<session_save></session_save><session_save_path></session_save_path>
> Magento的cookie用法:
> Magento使用“前端”和“ AdminHtml” cookie。瀏覽任何頁面並在客戶登錄時進行更新時,創建“前端”; “ AdminHTML”是在後端登錄中創建的。 檢查元素(in Chrome:>檢查元素&gt;應用)顯示了這些cookie。 cookie配置在Magento Admin菜單中找到: System&gt;配置&gt;一般&gt; Web
。
>故障排除登錄失敗和重定向:
>
令人沮喪的登錄重定向循環是一個常見的洋紅色問題。讓我們探索解決方案:問題1:不匹配的cookie和服務器域:
>
example.com
如果您的網站為xyz.com
,但是Magento cookie域是xyz.com
,Magento cookies將使用example.com
,但是會話驗證使用訪問的域(
>
>解決方案:>在
<code class="language-sql">SELECT * FROM core_config_data WHERE path = 'web/cookie/cookie_domain'; -- Verify UPDATE core_config_data SET VALUE = "domain.com" WHERE path = 'web/cookie/cookie_domain'; -- Update</code>
問題2:多個子域的不正確的cookie配置:
可能有效,但是example.com/admin
失敗。 登錄最初可能會成功,但是切換域需要cookie清除。 staging.example.com/admin
>
解決方案1(相同的服務器):將cookie域設置為> in .example.com
系統&gt;配置&gt;一般&gt; Web。
解決方案2(不同的服務器):適當地為每個服務器設置cookie域(例如,用於主域的> .example.com
進行登台)。 另外,請確保您的.staging.example.com
cookie域與您的洋紅色配置匹配。 php.ini
>
解決方案3(較少推薦):修改app/code/core/Mage/Core/Controller/Varien/Action.php
以動態調整子域的adminhtml
cookie名稱(謹慎使用)。
問題3:重複的前端cookie:
確保在主域和子域中確保一致的cookie域設置()。 檢查您的cookie域設置,並確保與Magento配置保持一致。
.example.com
> php.ini
問題4:會話ID創建失敗:
>諸如“ session_regenerate_id():無法創建(read)會話ID”之類的錯誤可能會發生,尤其是由於嚴格的類型檢查而在PHP 7中發生。
> typecast
to>。 。
read()
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php
問題5:不正確的會話文件所有權:return (string)$data;
>
解決方案:>授予Weberver用戶(例如,
)會話目錄的所有權(例如,)。 考慮替代會話提供商(例如,數據庫或Redis),並清除
>目錄。>
>用於cookie診斷的PHP腳本:www-data
sudo chown -R www-data:www-data
var/cache
>常見問題(常見問題解答) - 總結:
<code class="language-sql">SELECT * FROM core_config_data WHERE path = 'web/cookie/cookie_domain'; -- Verify UPDATE core_config_data SET VALUE = "domain.com" WHERE path = 'web/cookie/cookie_domain'; -- Update</code>> FAQS部分提供了有關對Magento登錄問題進行故障排除的常見問題的詳細答案,涵蓋了cookie和Cookie和會話管理,錯誤解決,績效優化以及尋求專業幫助的各個方面。 關鍵要點是確保在Magento設置中確保一致,正確的cookie和會話配置,並利用提供的診斷腳本來識別和解決特定問題。
以上是如何解決餅乾和會話的洋紅色登錄問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!