mac M2 架設 wordpress 不能上傳圖片 出現JSON錯誤

最近碰到的問題,我將PHP改版本後遇到圖片不能正常上傳,原本以為是PHP.INI的問題,但後來找了找,又去翻LOG,心得是遇到問題先找LOG真的沒有錯,一下子就知道為什麼了。

然後再依循錯誤提示去解決,就沒問題了,另外是MAC OS的權限設定,其實用圖形介面也會有相對的提示,我這邊是直接用SSH來操作。

1.超過上傳限制

確認圖片是否超過上傳限制,如果上傳限制太小可以自己調整php.ini,我將它調到1000M

upload_max_filesize = 1000M

mac os M2用homebrew安裝的人PHP.INI位置在我是使用8.1 版的PHP,之後會升級

Macintosh HD\opt\homebrew\etc\php\8.1

2.查看NGINX LOG

LOG位置(mac os M2用homebrew安裝)

Macintosh HD\opt\homebrew\var\log\nginx

顯示錯誤

2023/10/30 10:35:49 [crit] 592#0: *51651 open() "/opt/homebrew/var/run/nginx/client_body_temp/0000000011" failed (13: Permission denied), client: XXX.XXX.XXX.XXX, server: ipph.net, request: "POST /wp-json/wp/v2/media?_locale=user HTTP/1.1", host: "ipph.net", referrer: "<https://ipph.net/wp-admin/post.php?post=267&action=edit>"

這邊顯示我並未授權nginx,使用client_body_temp的權限

解決方式

sudo chown -R 管理員名稱:staff /opt/homebrew/var/run/nginx/client_body_temp/
sudo chmod -R 755 /opt/homebrew/var/run/nginx/client_body_temp/

這邊需要自己輸入管理員名稱,也就是你的用戶名,不知道的人可以用以下指令查詢,就能看到nginx目前是哪個用戶再執行

ps aux | grep 'nginx: master process'

staff是mac os預設的用戶組,沒特別去修改的話是通用的。

發表迴響