關於WordPress的update-core.php更新失敗的解決方法

前段時間又重新研究了下WordPress,發現更新的時候出現了:“WordPress更新失败-这通常是由于文件权限不一致所致。:wp-admin/includes/update-core.php”的提示。
英文版的是:Failed WordPress Update – This is usually due to inconsistent file permissions.: wp-admin/includes/update-core.php。

查了網上很多資料,無非都是給出以下幾種解決方法:

1. 将所有文件的权限重置为664:
find /path/to/site/ -type f -exec chmod 664 {} \;

2. 将目录的权限重置为775:
find /path/to/site/ -type d -exec chmod 775 {} \;

3. 将群组重置为wordpress群组(或任何对您有意义的群组)
chgrp -R wordpress /path/to/site/

然而並沒有什麼用,即使這樣設置後,也會出現一系列其它文件的權限問題,而且還增加了安全隱患。
後來想到用的是SELinux,應該是這個引起的問題,嘗試查詢了日誌

sudo ausearch -m avc –start recent

出現以下提示,就說明SELinux會阻止WordPress的更新。

time->Fri Feb 29 22:14:31 2021
type=PROCTITLE msg=audit(4946665230.987:148): avc: denied { write } for pid=13864 comm=”httpd” exe=”/usr/sbin/httpd” name=”update-core.php” dev=”md126″ ino=30 context=scontext=system_u:system_r:httpd_t:s0 context=system_u:system_r:httpd_t:s0 tclass=file

用以下命令查看下SELinux的狀態:

1. /usr/sbin/sestatus -v
SELinux status: enabled ##如果這裡的SELinux status的參數為enabled,即為開啟狀態

2. getenforce ##也可以用這個命令查詢

關閉SELinux:

1. 臨時關閉(不用重啟伺服器):
setenforce 0
##設置SELinux 為permissive模式
##setenforce 1 設置SELinux 成為enforcing模式

2. 永久修改設定檔(需要重啟伺服器):
修改 /etc/selinux/config
SELINUX=enforcing 改為 SELINUX=disabled

3. 重啟伺服器即可

個別文件夾是要給到一定的權限的,我是先按這個方法修改後再嘗試更新,如果還出現權限問題的提示,再逐一給權限,比如要在wp-content裡新建個tmp文件夾,並且給它個755之類。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注