juls07 Asked: 2020-06-08 13:51:34 +0800 CST2020-06-08 13:51:34 +0800 CST 2020-06-08 13:51:34 +0800 CST phpBB 服务器无权写入缓存文件和存储(fedora) 772 我正在尝试制作一个我一直在从事的名为 SnowBall 的项目,并且我正在使用 phpBB 来做到这一点,但是在第 2 步中的要求和最后说 cache/: Found, Unwritable files/: Found, Unwritable store/: Found, Unwritable 我尝试过的事情: ⚫chmod 777 ⚫chmod 002 ⚫chmod 775 ⚫chmod 660 ⚫chmod 770 没有一个有效的任何想法帮助表示感谢在高级 linux php fedora phpbb phpbb3 1 个回答 Voted Best Answer davidgo 2020-06-08T20:19:17+08:002020-06-08T20:19:17+08:00 我要检查的第一件事是 SELinux 是否导致了这个问题。您可以通过暂时禁用它或查看 /var/log/audit.log 来做到这一点。 如果不是这种情况,您需要确定文件被写入的位置 - 很可能是您期望的位置,但由于错误显示相对解决问题可能在其他地方。(我不使用 PHPBB,但我想如果你在 PHP 代码中寻找“找到,不可写”,你可以在它附近修改一行以显示完整路径,可能使用类似 echo $dirname($path variable) . 或者,您可能需要设置一个配置文件,其中包含路径的基本目录。 此外,由于您具有“chmod”访问权限,请尝试将这些目录 chown 给 Web 用户(通常是 http、httpd 或 www-data - 您可以通过查看谁在运行 Web 服务器或 /etc/passwd 中的用户名来查看哪个目录. 我不认为运行 chmod 777 是一个好主意,尽管它允许写入文件而不管所有者如何 - 而运行 chmod 002 显然是错误的,不允许任何人读取文件,只有非所有者和非组用户写文件) 您还应该检查 Web 用户是否可以读取所有父路径,并确保您要查找的目录存在。
我要检查的第一件事是 SELinux 是否导致了这个问题。您可以通过暂时禁用它或查看 /var/log/audit.log 来做到这一点。
如果不是这种情况,您需要确定文件被写入的位置 - 很可能是您期望的位置,但由于错误显示相对解决问题可能在其他地方。(我不使用 PHPBB,但我想如果你在 PHP 代码中寻找“找到,不可写”,你可以在它附近修改一行以显示完整路径,可能使用类似 echo $dirname($path variable) . 或者,您可能需要设置一个配置文件,其中包含路径的基本目录。
此外,由于您具有“chmod”访问权限,请尝试将这些目录 chown 给 Web 用户(通常是 http、httpd 或 www-data - 您可以通过查看谁在运行 Web 服务器或 /etc/passwd 中的用户名来查看哪个目录. 我不认为运行 chmod 777 是一个好主意,尽管它允许写入文件而不管所有者如何 - 而运行 chmod 002 显然是错误的,不允许任何人读取文件,只有非所有者和非组用户写文件)
您还应该检查 Web 用户是否可以读取所有父路径,并确保您要查找的目录存在。