首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

ThinkPHP 3.1 本地登入正常但部署到服務器失效的排查

     編輯:程式設計疑難解答

現象

ThinkPHP 3.1 專案在本地環境登入完全正常,SESSION 與 COOKIE 均能正確輸出,Runtime 目錄已清空,資料庫登入日誌也有寫入,但部署到服務器後無法登入。

根因分析

經排查,實際原因是資料庫用戶權限不足。服務器上的資料庫賬號缺乏對相關表的寫入/更新權限,導致登入過程中寫入 session 或更新用戶狀態失敗,但前端無明確報錯。

解決步驟

  1. 檢查服務器資料庫用戶權限:GRANT SELECT, INSERT, UPDATE, DELETE ON db_name.* TO 'user'@'%';
  2. 確認 `config.php` 中資料庫連線參數(主機、用戶、密碼、資料庫名)與服務器一致。
  3. 清理 `Runtime` 目錄下所有快取檔案,重新啟動服務。
  4. 若使用獨立 Session 存儲(如 Redis、Memcached),檢查連線配置與權限。

避坑指南

  • 部署前務必在測試環境模擬生產資料庫權限。
  • 開啟 ThinkPHP 調試模式(`APP_DEBUG => true`)可快速定位 SQL 錯誤。
  • 檢查 `php.ini` 中 `session.save_path` 是否可寫。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved