在CentOS上搭建服务器环境,核心路径就三步:装系统、配环境、部署服务,但2026年的今天你得先想清楚一件事——CentOS 7官方已经停止维护,新项目建议直接选Rocky Linux或AlmaLinux,老项目也得规划迁移,否则裸奔在公网上就是给自己埋雷。
下面这套流程基于CentOS 7兼容思路,同样适用于Rocky Linux 9和AlmaLinux 9,命令几乎通用,我会把从零到能跑起一个网站的全过程拆开揉碎,每一步都给到可验证的命令和操作路径。
centos搭建网站服务器的核心流程
服务器到手后别急着装面板或传代码,先按顺序做好基础配置,这套流程我跑了上百台机器,顺序错了后面会反复返工。
第一步:系统安装与初始化配置
不管是物理机还是云服务器,安装时记住三个原则:分区用LVM、swap给到内存的1.5倍、时区选Asia/Shanghai,装完系统后用SSH登录,先做基础加固:
# 更新系统源(CentOS 7需先换Vault源,Rocky/Alma直接更新即可) yum update -y # 创建普通用户并赋予sudo权限 useradd deploy passwd deploy usermod -aG wheel deploy # 修改SSH端口并禁止root登录 sed -i 's/#Port 22/Port 2333/' /etc/ssh/sshd_config sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config systemctl restart sshd
这里的核心逻辑是:root账户只保留本地登录权限,日常操作交给deploy用户,改SSH端口前先确认防火墙放行了新端口,不然容易把自己锁在门外——别问我怎么知道的。
第二步:centos 7搭建lnmp环境分步演示
LNMP组合(Linux + Nginx + MySQL + PHP)依旧是最常见的web环境,用yum安装虽然版本旧但胜在稳定,适合生产环境:
# 安装EPEL和Remi源 yum install -y epel-release yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm # 安装Nginx yum install -y nginx # 安装MySQL 5.7(CentOS 7默认源是MariaDB,需要额外配置) rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm yum install -y mysql-community-server # 安装PHP 7.4(通过Remi源) yum install -y yum-utils yum-config-manager --enable remi-php74 yum install -y php php-fpm php-mysql php-gd php-mbstring
装完依次启动服务并设置开机自启:
systemctl start nginx systemctl start mysqld systemctl start php-fpm systemctl enable nginx mysqld php-fpm
MySQL 5.7首次启动会生成临时密码,通过grep 'temporary password' /var/log/mysqld.log查,登录后第一件事就是改密码,默认密码策略要求包含大小写字母、数字和特殊字符。
第三步:Nginx配置和PHP联动
Nginx默认站点根目录在/usr/share/nginx/html,但更建议把网站目录放到/var/www下,方便后续维护,一个匹配PHP解析的server块最小配置如下:
server {
listen 80;
server_name example.com;
root /var/www/example.com;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
改完配置先nginx -t检查语法,再systemctl reload nginx加载,这套配置跑WordPress、ThinkPHP、Laravel都能直接工作。
centos搭建到底难不难,需要多长时间
这个问题每次接新项目都会被问到,说实话,如果按上面步骤走,从裸机到网站跑起来,熟练工30分钟搞定,新手也就半天时间,但很多人卡在的不是命令,而是对Linux文件系统和权限体系不熟悉。
时间都花在哪些环节
以我实际带新人的经验,时间分布大概是这样的:
| 环节 | 熟练工耗时 | 新手耗时 | 主要卡点 |
|---|---|---|---|
| 分区和系统安装 | 15分钟 | 40分钟 | 分区方案纠结 |
| 基础安全配置 | 5分钟 | 15分钟 | 防火墙规则不熟 |
| LNMP环境安装 | 10分钟 | 30分钟 | 依赖包缺啥装啥 |
| 域名解析和HTTPS | 5分钟 | 20分钟 | 证书申请流程陌生 |
| 部署代码调试 | 10分钟 | 60分钟+ | 权限和伪静态问题 |
多数情况下,新手最大的时间损耗在最后一步。代码传上去打不开,权限开了又怕不安全,环境变量配了不生效——这些排查过程才是真正耗时的部分。
常见场景的搭建周期参考
根据统计,不同使用场景的搭建周期差异明显:
- 个人博客/企业展示站:1天(含域名备案等待时间)
- 电商独立站:3-5天(涉及支付接口和HTTPS配置)
- API接口服务:2-3小时(纯后端,无前端页面)
- 文件存储/网盘:半天(重点在磁盘扩容和权限策略)
这里说的都是装好系统后的实际工作时间,不算采购服务器和备案的时间。
CentOS停止维护后,搭建方案要调整什么
行业共识认为,CentOS 7的生命周期已经结束,但存量用户依然庞大,据统计,仍有相当一部分企业的核心业务跑在CentOS 7上,如果你现在才刚开始centos搭建,下面这三种选择建议优先考虑。
三种系统选择的优劣势对比
| 系统 | 兼容性 | 安全更新 | 适用场景 |
|---|---|---|---|
| Rocky Linux 9 | 与RHEL 9一致 | 到2032年 | 新项目首选 |
| AlmaLinux 9 | 与RHEL 9一致 | 免费永久 | 社区支持好 |
| CentOS 7(不推荐) | 老软件生态 | 已停止 | 仅限内网学习 |
据工信部公告,开源系统国产化替代是明确方向,CentOS停止维护后国内企业转向迁移的比例明显上升,如果你只是学习用,CentOS 7的各类教程资源最丰富,装了也不影响练手,但涉及到公网服务的,别犹豫,直接用Rocky Linux。
老服务器如何平滑迁移
如果你手头有CentOS 7服务器需要迁到Rocky Linux,官方提供了迁移脚本:
# 下载并执行迁移脚本(先备份数据) curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh chmod +x migrate2rocky.sh sudo ./migrate2rocky.sh -r 9
实测迁移后,PHP和MySQL的配置基本不用动,nginx的conf文件能直接用,但迁移前务必快照或全量备份,因为脚本执行过程不可逆,一旦中断可能需要重装系统。
centos搭建的Q&A:三个高频疑问
centos搭建的网站如何配置HTTPS
Let's Encrypt的免费证书目前覆盖了大多数场景,用certbot一行命令就能搞定:
yum install -y certbot python2-certbot-nginx certbot --nginx -d example.com -d www.example.com
证书有效期90天,建议配置定时任务自动续期,在crontab里加一行0 3 * * * certbot renew --quiet就能实现,如果网站有用户注册或在线支付,强制定向到HTTPS版——修改nginx配置添加return 301 https://$host$request_uri;即可。
centos搭建的服务器如何做日常备份
网站文件用rsync增量同步到远程备份机,数据库用mysqldump每天凌晨导出,保留最近7天即可,关键数据保留30天,具体命令:
# 备份数据库 mysqldump -u root -p --all-databases > /backup/db_$(date +%Y%m%d).sql # 同步到备份机 rsync -avz /backup/ backup@192.168.1.100:/backup/
备份策略的核心不是“每天备份一次”,而是“备份能恢复上次故障瞬间”,再强调一遍,备份文件要存放在独立介质上,和服务器同机房的备份在机房出故障时一样不可用,如果条件允许,至少保留一份异地备份,云厂商的对象存储是最低成本的方案。
