已解决:请参阅下面的答案
我遇到的问题是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,增加了我在某处发生写权限冲突的假设。
答案 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
。