在 Ubuntu 上调整 PHP 日志编码(通常是让日志以 UTF‑8 输出,避免乱码),可以从 PHP 本身、Web 服务器、系统环境 三个方面入手。下面按常见场景说明。
编辑 php.ini(路径可能是 /etc/php/8.x/cli/php.ini 或 /etc/php/8.x/fpm/php.ini):
default_charset = "UTF-8"
重启 PHP:
sudo systemctl restart php8.x-fpm
查看当前 locale:
locale
如果不是 UTF‑8,设置:
sudo locale-gen en_US.UTF-8
sudo update-locale LANG=en_US.UTF-8
PHP 日志本身不会自动转码,它写什么就存什么。
✅ 正确做法:
查看日志编码:
file -i /var/log/php/php_error.log
Nginx 日志默认按系统 locale 写。
确保:
locale
是 UTF‑8
如果还是乱码,可在 Nginx 配置中:
charset utf-8;
AddDefaultCharset UTF-8
CLI 模式下:
php -i | grep default_charset
并确保终端是 UTF‑8:
echo $LANG
❌ 日志乱码通常不是 PHP 配置问题
✅ 而是:
default_charset = UTF-8
mbstring.internal_encoding = UTF-8
mbstring.http_output = UTF-8
系统:
LANG=en_US.UTF-8
如果你能告诉我:
我可以给你更精确的配置。