在/ var / www中允许PHP PDO / Apache访问SQLite数据库所需的最低权限

时间:2010-12-18 07:02:36

标签: sqlite permissions pdo apache

已解决:请参阅下面的答案

我遇到的问题是Austin Hyde在this question中遇到的问题。我有一个SQLite数据库,我可以阅读,但不能写。

具体来说,我得到一般错误:8尝试在第34行的/var/www/html/green/database.php中编写只读数据库

我的问题与他的不同之处如下:

- 在他的问题的答案中建议,我已经使数据库可以写入世界,以及数据库所在的文件夹,没有运气。我还将数据库的所有者设置为“apache”以及“nobody”,但没有成功。

- 我设置了整个路径集777,从/ var开始(我讨厌这样做),没有快乐。

- 我搞砸了SELinux(我正在运行Fedora 12)让httpd做任何想做的事情;没有。

我觉得我几乎肯定在这里错过了一些简单的东西,但我没有想法。

SQLite文件需要什么权限才能允许PHP / Apache通过PDO读取和写入?

编辑:另一个related question,增加了我在某处发生写权限冲突的假设。

1 个答案:

答案 0 :(得分:2)

对于那些无法完全禁用SELinux的人,可以采用以下方式。

创建一个目录(比如rw_data),并且所有内容都可写入httpd_t域类型中运行的任何进程,即。 Web服务器进程,使用以下命令root

chcon -R -t httpd_sys_content_rw_t "/var/www/html/mysite/rw_data/"

您可以使用以下命令检查SELinux上下文标签:

ls -Z /var/www/html/mysite | grep httpd_sys_content_rw_t

适用于Fedora 16,适用于其他SELinux已启用的distros