Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 14 unable to open database file

今天在將一個本地PHP網(wǎng)站部署到服務(wù)器后,訪問某頁面時發(fā)生如下錯誤:

Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 14 unable to open database file in /var/www/html/xxx/search.php:48

  • 本地測試環(huán)境

    • 操作系統(tǒng):Windows 10 專業(yè)版
    • PHP 版本:7.1.x
  • 遠(yuǎn)程服務(wù)器環(huán)境

    • 操作系統(tǒng):CentOS 6
    • PHP 版本:7.0.x

起先懷疑是PHP 版本不同引起的,因?yàn)閯倓偛沤鉀Q了一個7.1.x才支持的const變量作用域修飾符的問題,在7.0.x中你不能在const變量前面使用public等修飾符,比如:
public const INVALID_ACCESS_CODE = -1
是錯誤的,必須把前面的public去掉。而在7.1.x中就可以這樣寫了。

但檢查了幾遍代碼也沒發(fā)現(xiàn)哪里有問題,進(jìn)一步的觀察發(fā)現(xiàn),這個錯誤發(fā)生在對數(shù)據(jù)庫有寫操作的時候,讀沒有問題。然后在網(wǎng)上搜了一下,發(fā)現(xiàn)可能是權(quán)限的問題,于是又把遠(yuǎn)程服務(wù)器上數(shù)據(jù)庫文件的權(quán)限改成可讀寫,問題依然存在。

繼續(xù)搜索,終于在一篇文章里提到相同的問題,罪魁禍?zhǔn)滓彩俏募?quán)限,SQLite在寫數(shù)據(jù)庫的時候還會生成一個xxx.db-jounal的臨時文件,因此除了對數(shù)據(jù)庫文件擁有讀寫權(quán)限,還需要對數(shù)據(jù)庫所在的目錄擁有讀寫權(quán)限。

于是對目錄設(shè)置讀寫權(quán)限后,問題迎刃而解。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom閱讀 3,224評論 0 3
  • 背景: 閱讀新聞 12C CDB模式下RMAN備份與恢復(fù) [日期:2016-11-29] 來源:Linux社區(qū) 作...
    陽屯okyepd閱讀 3,885評論 0 7
  • 語 句 功 能 數(shù)據(jù)操作 SELECT——從數(shù)據(jù)庫表中檢索數(shù)據(jù)行和列INSERT——向數(shù)據(jù)庫表添加新數(shù)據(jù)行DELE...
    戰(zhàn)敭閱讀 5,240評論 0 53
  • http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 當(dāng)給sq...
    xuningbo閱讀 10,567評論 2 22
  • 流居 居住島上煙雨細(xì),樓雖有門常不閉。朝看白云爭起落,晚送夕陽沉海里。閑遐吟詩兩三首,不用斗智出奇計(jì)。須曳燈闌我欲...
    倚劍白云天閱讀 277評論 0 0

友情鏈接更多精彩內(nèi)容