2014-10-11 178 views
0

我有一個應用程序負責URL路由我在Windows環境下開發的其他項目。無法寫入一個只讀的SQLite數據庫文件

現在我已經在虛擬機中設置了Linux環境,並且我無法重新生成我的應用程序的路由,因爲我用來存儲信息的SQLite文件顯然不能由我的PHP應用程序中的例程寫入。

我收到一個PDOException以下消息:

SQLSTATE[HY000]: General error: 8 attempt to write a readonly database

我讀過this stack說SQLite的文件的父文件夾必須是可寫了。那麼......我是Linux新手,我一次只能解決一個小問題,儘管我明白這個...... Linux限制性策略,我不知道如何解決這個問題。

Windows分區,其中文件被存儲,相應地,我爲了讓他們的客戶(Linux)的範圍內進行訪問閱讀教程,告訴我,我的主人:

Folder Permissions

而且我讀過了以不同用戶或組運行的PHP腳本。我該怎麼辦?

唉...我要生氣這個Linux環境...

+0

你能通過控制檯在Windows分區中寫入(創建)文件嗎? – 2014-10-11 19:24:38

+0

是的,我想我可以,因爲終端說** bruno @ pc **。我嘗試使用像Sqliteman這樣的第三方應用程序,它也不能寫入文件,說文件被鎖定。 – 2014-10-11 19:31:17

+0

我的猜測是這是裝載分區中的權限問題。你在使用哪種Linux? – 2014-10-11 20:03:26

回答

0

在Ubuntu討論板讀書a comment後,我有我的問題的部分答案。顯然NFS文件夾的權限,我認爲它是Windows(文件系統),設計不佳。

在回答這個問題之後,我決定將SQLite文件移動到掛載文件夾之外的其他地方。我收到一個新的錯誤,說數據庫文件無法打開,但是這次我已經知道PDO SQLite限制here,它聲明父文件夾也必須是可寫的。

權限固定,一切正常。 :)

在那之後,我注意到another comment ahead說這個錯誤是固定的桑巴中的3.2.5,因爲運行smbstatus的命令後,我的版本收到4.1.6 Ubuntu的這是奇怪的。

無論如何......重點在於此評論還指出,如果您在CIFS安裝期間使用選項掛載分區,則建議鎖定不會在網絡中傳播。

我不知道這意味着什麼,我只知道在編輯我的/etc/fstab(見下文)以包含此選項並重新啓動虛擬機之後,所有工作都正常。

//WindowsIP/SharedPartitionName /path/to/linux/folder cifs username=myusername,password=mypassword,rw,nobrl,uid=1000,gid=1000,nounix,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0 

謝謝@AlejandroArbiza耐心,我希望這能幫助未來的人。

相關問題