WordPress 一般运行在 Linux 服务器上,而 Linux 服务器对各个目录有着完善、详尽的权限控制,如果权限设置不好,就会导致我们的 WordPress 站点运行有问题,其中最常见的是就是无法上传文件、无法更新主题插件、无法通过WordPress后台的主题或插件编辑器编辑代码。遇到了这些问题后,我们只需要正确设置 WordPress 站点权限即可。
为 WordPress 站点目录设置正确权限
WordPress 想要正常运行,运行 PHP-FPM 的用户需要有 WordPress 站点目录的读写权限,为了安全起见,其他用户只读权限就可以了。假如,我们的服务器上,运行 PHP-FPM 的用户为「www」,我们只需要执行如下命令即可正确设置 WordPress 站点目录的权限。
chmod 775 www:www /www/wwwroot/wpzhiku.com -Rf
上面的命令中,「chmod」是命令的名称,「755」的权限的代码,「www:www」是设置权限的用户和组,「/www/wwwroot/wpzhiku.com」是 WordPress 站点目录,「-Rf」是针对指定的所有文件和目录强制设置的指令。有关 Chomod 命令的详细教程,请参考 IBM 提供的 chmod 命令。
为主题目录设置只读权限
有时候,我们可能并不需要修改或更新主题,这种情况下,给主题加一个只读权限,可以防止主题被意外修改,导致网站出错。执行以下命令即可给 WordPress 的主题文件夹添加只读权限。
chattr -R +i /www/wwwroot/wpzhiku.com/wp-content/themes
执行了上面的命令后,除非解除只读权限,任何人或任何程序都没有办法对主题目录中的文件做修改了,添加、删除、修改都不行,只能读取。而解除只读权限方法很简单,把上面命令中的「+i」修改为「-i」即可。
设置 .ssh 目录的权限
为了防止用户私钥泄漏,sshd 服务器对 .ssh 目录的权限要求比较严格,特别是用户的私钥文件,服务器要求只有用户自己有读写权限、其他用户没有任何权限,如果权限设置不正确,会导致私钥无效而不能通过私钥登录服务器。
- .ssh 目录权限一般为 755 或者 700
- rsa_id 这个是 SSL 私钥文件,相当于自己的密码,在任何情况下都不能让其他用户读取,所以这个文件的权限必须为 600
- rsa_id.pub 和 authorized_keys 这两个文件,其他用户可以读取,但是不能修改,所以权限一般为设置为 644
总之,正确的设置服务器权限对网站正常运行和服务器安全至关重要,权限设置过于严格,会导致 WordPress 站点的某些功能失效,设置得过于宽松,会导致服务器存在安全隐患,设置权限时,我们应该坚持「最小需求」原则,只给正常运行需要的权限,其他权限一律不给。