实战经验:权限问题导致的WordPress更新失败

实战经验:权限问题导致的WordPress更新失败

作者:BlogUpdater |  时间:2017-08-18 |  浏览:3446 |  评论已关闭 条评论

为了防止黑客攻击,通常Web站点根目录的权限需要谨慎的设置,并遵循“最小权限”原则,即仅给予需要正常工作的最小权限,防止权限给的过高带来的安全隐患。
Wordpress更新版本时,需要对其相关目录有写入权限,否则,更新时会出现如下的错误:
copy(xxx.file): failed to open stream: Permission denied in xxx.file.

如何解决?
修改对应目录的权限,设置账号IIS AppPool\应用程序池或IUSER对该目录有写权限。这里的IIS AppPool\应用程序池即IIS进程的执行身份。它是一个虚拟账号,在系统用户管理里是看不到的。而IUSER是IIS用来匿名浏览站点的用户账号。

原理:
假设Wordpress站点是由PHP CGI程序执行,该CGI程序运行在IIS的应用程序池下。这个应用程序池是Windows为IIS创建的虚拟账号用来浏览站点文件的,所以当Wordpress运行更新时,执行身份为站点所配置的应用程序池。当该应用程序池对更新目录无写入权限时,就会出现如上的Permission denied问题。

我的建议:一般只有文件所有者(如管理员)拥有对站点目录的写权限,IIS进程仅需要有对站点目录的读取权限即可。当然了,如果你需要更新Wordprss站点,而按照如上方法临时添加写权限也是可以的。

标签:

评论已关闭。