应该是用户" apache"拥有我的SQLite数据库?

时间:2016-12-11 22:00:37

标签: php mysql database apache sqlite

我目前正在尝试编写一个简单的网页来存储数据库中的电子邮件。我在不是我的服务器上(但运行Apache),所以我没有root访问权限,所以我选择使用SQLite3。目标是使用PHP来INSERT进入数据库,但是,我继续遇到我所拥有的数据库和PHP试图使用用户访问的问题" apache"这导致了一个" readonly"错误。由于我不是root用户,因此无法使用数据库文件,即使是chmod 777,也没有效果。我得出的结论是让PHP脚本自己创建数据库(在用户apache下),但现在我没有对该文件的写访问权。我可以只允许apache拥有数据库,还是有更好的方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

SQLite是一个库,也就是说,它只是在Web服务器进程内运行的一堆代码。这意味着对数据库文件的访问行为与Apache的任何其他文件访问行为一样。

Web服务器进程需要能够访问文件本身,并在同一目录中创建日志回滚文件。

chmod 777不好,因为该计算机上的每个用户都可以对数据库执行任何操作。最好让数据库文件和目录属于一个拥有您和apache成员的组。

如果服务器的管理员不会创建这样的组,那么您可以将apache作为所有者,并为您的Web应用程序添加一个后门(受到充分保护),以允许使用新文件覆盖数据库。 / p>