说实话,自从 CentOS 停止维护之后,很多老手都在找接班人。AlmaLinux 8 就是那个“亲儿子”级别的替代品,跟 CentOS 8 几乎一模一样,稳定、免费、社区支持好。但是!你在阿里云或者腾讯云上一键买来或者手动装完之后,往往会遇到几个让人头秃的问题:终端中文乱码、装软件报依赖错、想设置的开机自启服务死活启不来。
别急,这篇文章就是专门来救火的。我不讲那些虚头巴脑的概念,直接给你最实操的步骤,保准你照着做就能跑起来。
第一步:登录系统,先看看“脸色”
不管是阿里云还是腾讯云,你拿到服务器 IP 之后,首先肯定是 SSH 登录。用终端输入:
ssh root@你的服务器IP
登录后,第一件事不是急着装东西,而是看看系统语言环境。在命令行输入:
locale
如果你看到 LANG=en_US.UTF-8 或者干脆是 POSIX,而你的系统里又装着中文软件,那恭喜你,乱码问题马上就会来找你麻烦。
第二步:解决中文乱码——这步必须做
AlmaLinux 8 默认是英文界面,如果你要跑中文网站、看中文日志,或者用某些国产软件,不装中文包绝对会乱码。
1. 安装中文语言包
执行这条命令,耐心等待一下(可能需要几分钟,取决于你的网速):
sudo dnf groupinstall "Chinese Support" -y
如果没有这个 group,也可以直接安装 locale 包:
sudo dnf install kde-l10n-Chinese -y
2. 设置系统默认语言为中文
这里有个坑!很多教程直接让你改 /etc/locale.conf,但在 AlmaLinux 8 这种现代 systemd 系统里,最稳妥的方式是用 localectl 命令:
sudo localectl set-locale LANG=zh_CN.UTF-8
然后,为了确保 shell 会话也生效,最好把这一行加到 /etc/environment 文件里:
echo 'LANG=zh_CN.UTF-8' | sudo tee /etc/environment
3. 验证是否生效
断开 SSH 重新登录,再次执行:
locale
你应该能看到 LANG=zh_CN.UTF-8 了。这时候你再运行 ls 或者查看一些包含中文的日志,应该就正常显示了。
注意:如果你是通过阿里云/腾讯云的 Web 终端(VNC)操作,有时候 Web 终端本身也受浏览器编码影响。如果本地终端正常,但 Web 终端还乱码,记得在浏览器里检查编码设置,或者干脆用本地终端工具(如 Terminal、PuTTY、Xshell)连接。
第三步:依赖安装报错?别慌,常见坑点解析
AlmaLinux 8 用的是 DNF 包管理器,有时候你装个东西,比如 nginx、docker 或者某些 Python 库,它会报一堆依赖错误。比如:
Error:
Problem: package nginx-1.14.1-1.el8.x86_64 requires httpd-maven-plugins, but none of the providers can be installed
或者更常见的:
Nothing matches the request
原因分析与解决
源配置问题 AlmaLinux 8 默认的仓库可能没完全同步,或者你之前改过源。建议先清理并重建缓存:
sudo dnf clean all sudo dnf makecache如果还是不行,考虑换成阿里云的镜像源(在国内服务器上用这个速度飞快):
sudo sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/*.repo sudo sed -i 's|^#baseurl=http://repo.almalinux.org|baseurl=https://mirrors.aliyun.com|g' /etc/yum.repos.d/*.repo sudo dnf clean all sudo dnf makecache模块流(Module Stream)冲突 AlmaLinux 8 引入了模块流的概念。比如你想装 PHP,直接
dnf install php可能会报错,因为系统不知道你要哪个版本的 PHP。解决办法是先查看可用的模块流:
sudo dnf module list php然后启用对应的流(比如 php 7.4):
sudo dnf module enable php:7.4 -y sudo dnf install php php-fpm php-mysqlnd -y缺少 EPEL 仓库 很多第三方软件不在官方仓库里,你得装 EPEL:
sudo dnf install epel-release -y sudo dnf update -y装完 EPEL 后再试之前的安装命令,很多时候就通了。
GPG 密钥问题 如果报错提示 GPG 签名失败,可以尝试忽略密钥检查(临时方案):
sudo dnf install --nogpgcheck 软件包名但更推荐的是导入正确的密钥,或者更新 GPG 密钥:
sudo rpm --import https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux
第四步:开机自启配置——systemd 是核心
在 Linux 里,服务管理全靠 systemd。你想让 Nginx、MySQL、Docker 或者你自己的 Python 脚本开机自动启动,都得用它。
1. 管理现有服务
假设你已经装了 Nginx,想让它开机自启:
# 启用开机自启
sudo systemctl enable nginx
# 立即启动
sudo systemctl start nginx
# 查看状态
sudo systemctl status nginx
enable 是核心,它会在 /etc/systemd/system/multi-user.target.wants/ 下创建软链接,告诉系统在启动时该服务要拉起。
2. 自定义服务开机自启(重点)
很多开发者有自己的应用,比如一个 Python Flask 应用,或者一个 Node.js 脚本,系统里没有现成的服务文件,咋办?
你得自己写一个 .service 文件。
举例:假设你的 Python 应用路径是 /opt/myapp/app.py,你想让它以 root 用户运行,端口 8080。
创建服务文件:
sudo vi /etc/systemd/system/myapp.service填入以下内容:
[Unit] Description=My Custom Python App After=network.target [Service] # 指定用户,建议不要用 root,可以创建一个专用用户 User=root # 应用工作目录 WorkingDirectory=/opt/myapp # 启动命令 ExecStart=/usr/bin/python3 /opt/myapp/app.py # 重启策略,如果崩溃了就重启 Restart=always # 重启间隔 5 秒 RestartSec=5 [Install] WantedBy=multi-user.target重载 systemd 配置,启用并启动服务:
sudo systemctl daemon-reload sudo systemctl enable myapp.service sudo systemctl start myapp.service验证:
sudo systemctl status myapp.service看到绿色的
active (running)就说明成功了。重启服务器后,你的应用也会自动起来。
3. 常见问题:服务启动失败
如果 systemctl start 失败,别急,用 journalctl 查看日志:
# 查看该服务的实时日志
sudo journalctl -u myapp.service -f
# 查看之前的日志
sudo journalctl -u myapp.service -n 50 --no-pager
很多时候是因为路径不对、权限不够、或者端口被占用。对照日志里的错误信息排查即可。
第五步:防火墙与安全组——别漏了这步
AlmaLinux 8 默认开启了 firewalld 防火墙。就算你在系统里开了 80 端口,如果防火墙没放行,外面也访问不了。
1. 配置 firewalld
比如你要开放 HTTP(80)和 HTTPS(443):
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
查看已开放的端口:
sudo firewall-cmd --list-ports
sudo firewall-cmd --list-services
2. 云服务商的安全组——必须配!
这是很多新手最容易忘的地方!
阿里云和腾讯云都有“安全组”(类似虚拟防火墙)。你服务器里的 firewalld 只是第一层,第二层在云平台的控制台。
- 阿里云:登录控制台 -> ECS 实例 -> 安全组 -> 配置规则 -> 添加入方向规则
- 腾讯云:登录控制台 -> 云主机 -> 安全组 -> 入站规则
你需要在这里放行你想用的端口,比如 80、443、22(SSH)、3306(MySQL)等。只配系统防火墙,不配安全组,端口照样不通!
建议把 22 端口(SSH)限制为只允许你自己的 IP 访问,增加安全性。
第六步:基本优化与安全加固(可选但推荐)
1. 关闭 Selinux(新手友好)
Selinux 虽然安全,但配置复杂,经常导致各种“权限拒绝”错误,新手容易懵。如果不是对安全有极端要求的场景,可以临时关闭:
sudo setenforce 0
# 永久关闭,需要编辑文件
sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
重启后生效。
2. 禁用不必要的服务
# 查看自启服务
systemctl list-unit-files --type=service | grep enabled
# 禁用不需要的,比如蓝牙、打印机等
sudo systemctl disable bluetooth.service
sudo systemctl disable cups.service
3. 更新系统
sudo dnf update -y
定期更新可以修复安全漏洞。
总结
部署 AlmaLinux 8 其实没那么难,关键是要一步步来:
- 先搞定语言环境,避免乱码影响操作。
- 配好源,解决依赖报错问题,EPEL 和阿里云镜像源是神器。
- 学会用 systemd,自定义服务自启是必备技能。
- 别忘了云平台的“安全组”,这是内外网络畅通的关键。
- 适当关闭 Selinux,减少初期排查的痛苦。
只要你按这个流程走,阿里云或腾讯云上的 AlmaLinux 8 服务器就能稳稳当当跑起来了。遇到具体问题,多查 journalctl 日志和官方文档,问题总能解决的。祝你部署顺利!
