您可以使用 Mike Conigliaro 的这个脚本来正确设置所有 wordpress 文件的权限。
参考
groupadd 组名,在linux中添加组
vi /etc/group,查看linux中所有组信息,可以看可以编辑
cat /etc/group,查看linux中所有组信息,只可以看不可以编辑
useradd ‐g 组名 用户名,创建用户的同时指定将该用户分配到哪个组下
vi /etc/passwd,查看linux中所有用户信息,可以看可以编辑
cat /etc/passwd,查看linux中所有用户信息,只可以看不可以编辑
id username 查看用户id
重点:
- wordpress需要www-data这个用户的权限
- docker容器内部的用户id应该和宿主机的id一致
权限调整脚本
WP_OWNER=www-data # <-- wordpress owner
WP_GROUP=www-data # <-- wordpress group
WP_ROOT=/var/www/html # <-- wordpress root directory
WS_GROUP=www-data # <-- webserver group
# reset to safe defaults
find ${WP_ROOT} -exec chown ${WP_OWNER}:${WP_GROUP} {} \;
find ${WP_ROOT} -type d -exec chmod 755 {} \;
find ${WP_ROOT} -type f -exec chmod 644 {} \;
# allow wordpress to manage wp-config.php (but prevent world access)
chgrp ${WS_GROUP} ${WP_ROOT}/wp-config.php
chmod 660 ${WP_ROOT}/wp-config.php
# allow wordpress to manage .htaccess
touch ${WP_ROOT}/.htaccess
chgrp ${WS_GROUP} ${WP_ROOT}/.htaccess
chmod 664 ${WP_ROOT}/.htaccess
# allow wordpress to manage wp-content
find ${WP_ROOT}/wp-content -exec chgrp ${WS_GROUP} {} \;
find ${WP_ROOT}/wp-content -type d -exec chmod 775 {} \;
find ${WP_ROOT}/wp-content -type f -exec chmod 664 {} \;