今天,被sqlite的一个机制给坑了。本人用C语言写的cgi程序去访问sqlite数据库,读取没有问题,但是插入新纪录和更新数据就不行,在服务器上直接对数据库进行增删查改则没有任何问题。但浏览器上访问并且对数据库有写的操作时,则报错误:
unable to open database file
本人在网上查找了很久,没有找到直接相关的答案。偶在一个百度问答上看到sqlite库在对数据库进行操作时(本人估计是写操作),会在数据库的当前文件夹下创建一个临时文件,当操作结束时,该临时文件将被删除。 而远程用户一般不具备有对临时文件足够的权限所以会造成无法打开、写或者删除临时文件。解决的方法就是递归地(加-R)将数据库所在文件夹设置为任何用户都有可读可写可删的权限。假如sqlite数据库路径为/opt/lampp/cgi-bin/, 则:
chmod -R 777 /opt/lampp/cgi-bin/
解决SQLite CGI写权限问题
本文探讨了使用C语言编写的CGI程序访问SQLite数据库时遇到的问题:在尝试插入新记录或更新数据时出现“无法打开数据库文件”的错误。文章详细解释了这一问题的原因在于远程用户对SQLite创建的临时文件缺乏必要的权限,并给出了通过调整文件夹权限来解决此问题的具体步骤。
1万+

被折叠的 条评论
为什么被折叠?



