2014-09-05 321 views
0

我已经实现了一个简单的缓存系统,如果数据库表示没有更新可用,则加载静态HTML,并在数据库说有更新时重新生成/写入文件。PHP:fopen导致“权限被拒绝” - 给PHP写入权限?

初步试验表明,这种工作,然而,文件的实际写作不工作:

Warning: fopen(/var/www/html/cache/en/item_4.php): 
failed to open stream: Permission denied 

尝试写入该文件的PHP脚本位于/var/www/html/src/p/view_item.php

每解决方案到目前为止假设我知道如何完全操作服务器并使用复杂的术语和推理;这是我第一次使用我自己的服务器,有几件事情还不清楚。

我已经看到它多次表示你应该让用户“无人”写入所述文件夹(在全新的PHP安装中),而其他人则说文件本身需要对目录拥有某种形式的所有权或者Apache本身需要写入权限。

总体而言:没有什么工作,将目录设置为777,并以另一个用户的身份运行操作(我只能假设他有写访问权限)。

我到底该如何让PHP写入/var/www/html/cache/en/和子文件夹?

我正在运行LAMP,我有shell访问和所有。

+0

你可以写在任何地方?你会读...吗?当你搜索这个问题时,你是否浏览过谷歌搜索结果的第一页?当你尝试这些事情时会发生什么? (他们太详细了,不能在评论中提出)[PHP的fopen文档](http://php.net/manual/en/function.fopen.php)谈论与safe_mode和open_basedir一起使用时的限制...? – 2014-09-05 21:22:43

+0

看看这个链接。我有一个类似的问题,这解决了它。 http://stackoverflow.com/questions/9133024/www-data-permissions – Nicolas 2014-09-05 21:25:03

+0

@ gloomy.penguin - 是的,我不能写任何地方。它可以读取任何内容,只是不写(你可能想要重写一下:P)。我总结了我在这个问题上努力的成果。 – 2014-09-05 21:27:12

回答

0

我该如何让PHP写入/ var/www/html/cache/en /和子文件夹?
PHP运行在www数据

chown -R www-data.www-data /var/www/html/cache/en/