Wordpress 在 WebServer 中的权限配置

Wordpress默认安装时候的权限设置,会导致安装插件、主题,上传图片时候权限不足。

有些时候朋友询问我这个问题时候,只能笼统的答道把wordpress文件夹权限修改为和php解析器相同的组,实在无办法就也只能临时开777,终究不是长远之道。

于是就有了今天这篇。

首先,要弄明白,是什么玩意儿的权限不足,导致无法写入

一般来说,这个得看Server的配置方式,基本上php的话两种常用方式:

  • Apache + 动态链接扩展,windows和*nix一般用的都是这种方式。(注:win系的话,使用此种方式需要使用对应PHP的TS版本,即线程安全版才有插件)

访问使用的是apache运行的用户(组),那么就需要将wordpress文件夹及子目录设置为同httpd.conf中配置。(默认apache):

1
vi /etc/httpd/conf/httpd.conf
  • Apache or Nginx + PHP-FPM,此种方式效率较高,且配合nginx配置简便,基本原理就是PHP服务监听一个端口,网页服务器将php请求转发至其端口。

需要查看php-fpm的配置文件。(默认apache):

1
vi /etc/opt/remi/php70/php-fpm.d/www.conf

QQ20160808-0
QQ20160808-1

知道了用户,那么就可以修改目录的属性了

修改所属用户、用户组,以修改为nginx为例,wp目录/usr/share/nginx/html/wordpress,-R递归修改
1
chown -R nginx:nginx /usr/share/nginx/html/wordpress
修复文件夹权限,还原正常文件夹权限
1
find . -type d -exec chmod 755 {} \;
修复文件权限,还原正常文件权限
1
find . -type f -exec chmod 644 {} \;
当然修改apache or fpm中配置的用户亦可,保持统一就行

补充:
如若开启了 Selinux,则需要额外的设置:

  1. 修改网页内容目录的 Selinux 权限 (Nginx or Apache):
1
chcon -R -h -t httpd_sys_script_rw_t /usr/share/nginx/html/wordpress

qq%e6%88%aa%e5%9b%be20161003141521

  1. PS:若需调试 Selinux,请参考 https://wiki.centos.org/zh/HowTos/SELinux

完工