在 CentOS 上,Apache 本身一般不叫 apache2(那是 Debian/Ubuntu 的叫法),CentOS 上通常是 httpd。你遇到的“乱码”大多是字符编码不一致导致的,常见于中文页面、日志、或 CGI 输出。
下面按「最常见 → 最彻底」的方式解决。
编辑配置文件:
vim /etc/httpd/conf/httpd.conf
找到或添加:
AddDefaultCharset UTF-8
✅ 推荐设置为 UTF-8
重启 Apache:
systemctl restart httpd
如果你用虚拟主机:
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/html
AddDefaultCharset UTF-8
</VirtualHost>
HTML 页面头部必须有:
<meta charset="UTF-8">
或老写法:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
⚠️ Apache 设置和页面设置必须一致
locale
如果不是 UTF-8,例如:
LANG=zh_CN.GBK
localectl set-locale LANG=zh_CN.UTF-8
或编辑:
vim /etc/locale.conf
内容:
LANG=zh_CN.UTF-8
重新登录或重启。
在 PHP 文件最前面加:
header("Content-Type:text/html;charset=utf-8");
并保证文件本身是 UTF-8 无 BOM 编码。
在脚本开头加:
export LANG=zh_CN.UTF-8
AddDefaultCharset UTF-8<meta charset="UTF-8">如果你愿意,可以告诉我:
我可以直接给你针对性配置。