WordPress debug.log 無法改寫到其他位置

原本在 Ubuntu(Linux System)上建置時都能將 debug.log 移往 /var/log/wp-log/ 目錄下,但是一上到 AWS EC2 就不行了,相同的 wp-config.php 設定,相同的目錄權限設定,就是無法寫入!

由於 EC2 選擇的 OS 是 Amazon Linux 2023 於是便開始思考,是否是 Amazon 基於安全預設做的限制

果然

sudo systemctl status apparmor

其狀態為 active (running)。

我們先暫停確認是否是受到其影響

sudo systemctl stop apparmor

當暫停後確認 debug.log 有正確寫入後,我們來調整一下apparmor 的設定

一般 AppArmor 的配置文件位於 /etc/apparmor.d/ 目錄中。可以檢查與你的網頁伺服器(如 Apache 或 Nginx)相關的配置文件

如果你是使用 apache 嘗試在 /etc/apparmor.d/usr.sbin.apache2 中,加入:

/var/log/wordpress/ r,
/var/log/wordpress/** rw,

並在保存修改後重啟

sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.apache2