WordPress 主题编辑器文件权限
Wordpress Theme Editor file permissions
在某些时候,我无法通过 WP 主题编辑器编辑我的主题文件,因为该文件据说不可写(is_writable()
returns 错误)。访问它时,显示以下消息:
You need to make this file writable before you can save your changes. See Changing File Permissions for more information.
我的站点 运行 在我自己的 CentOS 7 服务器上,我已确保文件权限的所有推荐设置都已到位:
httpd在apache用户运行下
/var/www/ 下的文件和文件夹归 apache:apache
所有
所有文件权限设置为 644,文件夹权限设置为 755
DISALLOW_FILE_EDIT未定义
httpd.conf:
<Directory “/var/www/html”>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
/var/www/html/.htaccess:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
停用所有插件
测试手动修改文件作为 apache 并且按预期工作 (su -s /bin/bash apache
)
我的系统中还有其他我无法识别的东西正在阻止我能够适当地管理我的网站。
系统信息:
- CentOS 7
- 阿帕奇 2.4.6
- PHP 7.4.16
- MariaDB 10.3.28
- WordPress 5.7
我找到了问题的解决方案:
SELinux 配置为只允许 httpd 服务读取文件的权限。尽管文件权限设置赋予了 apache 用户 RW 权限,但该服务仍被拒绝。
# Check SELinux settings on Wordpress folder
ls -Z /var/www/html/
drwxr-xr-x. apache apache system_u:object_r:httpd_sys_content_t:s0 wp-content
object_r:httpd_sys_content_t: 只读
object_r:httpd_sys_rw_content_t: 读写
要配置 folder/files 您希望能够通过 Wordpress(httpd 服务)进行修改:
# Configure SELinux to allow Read/Write rights to httpd
sudo chcon -t httpd_sys_rw_content_t /var/www/html/wp-content -R
以上示例提供 R/W 对文件夹 /var/www/html/wp-content 及其所有内容的 https 权限。
在某些时候,我无法通过 WP 主题编辑器编辑我的主题文件,因为该文件据说不可写(is_writable()
returns 错误)。访问它时,显示以下消息:
You need to make this file writable before you can save your changes. See Changing File Permissions for more information.
我的站点 运行 在我自己的 CentOS 7 服务器上,我已确保文件权限的所有推荐设置都已到位:
httpd在apache用户运行下
/var/www/ 下的文件和文件夹归 apache:apache
所有所有文件权限设置为 644,文件夹权限设置为 755
DISALLOW_FILE_EDIT未定义
httpd.conf:
<Directory “/var/www/html”> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
/var/www/html/.htaccess:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
停用所有插件
测试手动修改文件作为 apache 并且按预期工作 (
su -s /bin/bash apache
)
我的系统中还有其他我无法识别的东西正在阻止我能够适当地管理我的网站。
系统信息:
- CentOS 7
- 阿帕奇 2.4.6
- PHP 7.4.16
- MariaDB 10.3.28
- WordPress 5.7
我找到了问题的解决方案:
SELinux 配置为只允许 httpd 服务读取文件的权限。尽管文件权限设置赋予了 apache 用户 RW 权限,但该服务仍被拒绝。
# Check SELinux settings on Wordpress folder
ls -Z /var/www/html/
drwxr-xr-x. apache apache system_u:object_r:httpd_sys_content_t:s0 wp-content
object_r:httpd_sys_content_t: 只读
object_r:httpd_sys_rw_content_t: 读写
要配置 folder/files 您希望能够通过 Wordpress(httpd 服务)进行修改:
# Configure SELinux to allow Read/Write rights to httpd
sudo chcon -t httpd_sys_rw_content_t /var/www/html/wp-content -R
以上示例提供 R/W 对文件夹 /var/www/html/wp-content 及其所有内容的 https 权限。