简介这是一份围绕CentOS 6.3整理的前端网页源码工具包面向需要在CentOS服务器上快速部署静态页面或学习HTML/CSS/JavaScript基础结构的开发者。压缩包内含19个文件其中14张PNG配图、3个JS脚本、1个CSS样式表以及1个首页HTML整体仅244KB体积轻量便于下载和部署。已有514人学习使用适合作为轻量级网站模板或前端入门练习素材。从目录结构来看页面主体、图片资源、脚本与样式分离清晰解开后可直接通过index.html预览效果也可基于现有JS和CSS进行二次修改方便在CentOS 6.3环境中搭建简洁的工具展示页或学习静态资源组织方式。由于标签包含“源码”与“工具”这套资源偏重代码层面的可读性与复用性对希望手动调试页面、替换图片素材或扩展交互功能的用户较有实用价值。 CentOS 6.3这个版本搁今天看已经是妥妥的“上古神器”了。2012年发布的它内核还是2.6.32连systemd的影子都没有服务管理全靠service和chkconfig。但如果你跟我一样在传统企业或IDC机房里摸爬滚打过就一定知道CentOS 6系列在服务器领域的地位——稳定性极强资料极多踩坑成本极低。这篇文章不是怀旧而是实打实地把这套老系统的部署、优化、排错经验整理出来给正在接手老旧生产环境的朋友一份参考。1. CentOS 6.3的时代背景与技术特性拆解1.1 为什么CentOS 6系列能成为服务器首选聊CentOS 6.3就得先聊它当年为什么能霸占服务器市场。核心原因就三个字稳、免费、兼容。CentOS是RHELRed Hat Enterprise Linux的社区再编译版本去掉了Red Hat的商标和商业支持服务但代码和二进制兼容性保持得几乎一致。这意味着企业可以免费拿到一个跟商业发行版同等稳定性的操作系统。对于预算有限又追求稳定的中小企业来说这简直是刚需。CentOS 6.x系列采用的是SysVinit初始化机制配置文件直接、启动脚本清晰。和后来CentOS 7的systemd相比它虽然显得“笨”但胜在透明——出问题时你能从启动脚本一路查到/etc/rc.d/rc.local逻辑非常简单排查心理负担小得多。直到今天还有不少老机房里跑着CentOS 6.x不是不想换是太稳定了不敢动。1.2 CentOS 6.3的组件版本与兼容性边界做老系统运维第一件事就是背熟自带组件的版本号否则大概率在编译安装时报错。CentOS 6.3的核心组件版本大概是这样的内核2.6.32-279、GCC 4.4.6、Python 2.6.6、Perl 5.10.1、Apache 2.2.15、MySQL 5.5.28、PHP 5.3.3。这套组合现在看很旧但在当年是绝配PHP 5.3对面向对象和命名空间的支持已经成熟MySQL 5.5的InnoDB性能也够用Apache 2.2的模块生态非常完整。但如果你要在6.3上装现代软件比如PHP 7.4、MySQL 8.0、Nginx 1.20就得小心了。系统自带的GCC 4.4.6太老编译新版本源码大概率会报错Python 2.6.6对很多现代Python脚本也不友好。这里我建议你记住一个原则6.3装老软件很顺手装新软件要先解决编译链和环境依赖。1.3 6.3与6.x系列其他小版本的差异很多人分不清CentOS 6.0到6.10的差别其实对运维来说差异主要在两块一是内核与驱动补丁迭代二是软件包的bugfix版本更新。6.3相比6.0/6.1最大的变化是加入了ext4文件系统的稳定性修复以及更好的硬件支持比如对SSD的TRIM支持更完善。另外6.3也是CentOS 6系列中比较“平衡”的一个版本既继承了前期的稳定又不像6.0那样存在较多硬件兼容性坑。如果你手头正好是6.3做运维升级时可以考虑先小版本更新内核补丁而不是直接跨大版本。2. 安装部署与初始化配置实操指南2.1 安装过程中的分区与引导注意事项CentOS 6.3安装盘启动后图形界面和文本界面二选一。老服务器内存小我一般直接用文本模式。最关键的还是分区策略。推荐分区方案/boot区200MB~500MBext4即可用来放内核和initrd。swap区物理内存1~2倍。4GB内存的机器给8GB swap性能不差。“/”区用LVM管理方便以后扩展lvm卷。为什么不推荐单独分/home因为很多业务数据都在/var或/home下分区规划得越细后期磁盘满了越难处理。我踩过最大的坑就是当年给某台服务器分了独立的/data分区结果磁盘没规划好/var暴涨导致系统盘满业务直接不可写但/data还空着一大半非常尴尬。用LVM统一管理“/”配合lvextend扩展是老系统最省心的方案。2.2 安装后的基础网络配置安装完第一时间要确认网络。CentOS 6.3默认网卡名是eth0配置文件在/etc/sysconfig/network-scripts/ifcfg-eth0。修改静态IP后你们一定要记得两件事一是修改/etc/resolv.conf里的DNS二是重启网络服务测试。# 修改ifcfg-eth0 DEVICEeth0 BOOTPROTOstatic ONBOOTyes IPADDR192.168.1.100 NETMASK255.255.255.0 GATEWAY192.168.1.1 # 重启网络服务 service network restart # 检查结果 ping -c 4 192.168.1.1这里有个细节CentOS 6.3默认的NetworkManager服务对服务器的干扰很大尤其是在远程操作时稍不留神就把网络配置重置了。如果不打算用它可以直接关掉:service NetworkManager stop chkconfig NetworkManager off这个操作建议安装后第一个做省得后面配置的静态IP被莫名奇妙地覆盖。2.3 初始化阶段的优化与安全设置老系统的初始化优化我按重要程度排个序第一关闭SELinux。6.3的SELinux默认是enforcing但很多应用如自编译Nginx、PHP-FPM如果没有相应策略会直接报权限问题。你可以临时关闭也可以永久关闭。setenforce 0 sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config生产环境如果是纯内网我建议直接禁用如果是公网环境还是要评估风险毕竟SELinux是纵深防御的一环但坦白说CentOS 6.3的年代大部分运维都会关掉它换便利性。第二改SSH配置。编辑/etc/ssh/sshd_config至少做三件事禁止root远程登录PermitRootLogin no、修改默认端口Port 2222、开启密钥登录。Port 2222 PermitRootLogin no PasswordAuthentication yes PubkeyAuthentication yes改端口是基操但千万别忘了在iptables里放行新端口否则改完直接连不上。第三关闭不需要的服务。chkconfig --list | grep 3:on # 只保留sshd、network、crond、iptables、rsyslog # 其余如postfix、cups等都可以关掉 chkconfig postfix off chkconfig cups off每少开一个服务就少一个攻击面和系统资源占用这个习惯在老旧机器上尤其重要。3. 典型业务场景下的部署实战3.1 用CentOS 6.3搭建LNMP环境LNMPLinux Nginx MySQL PHP是CentOS 6.3最经典的搭配。但有坑6.3仓库里没有NginxPHP和MySQL的版本也偏老。Nginx安装官方提供了针对CentOS 6的yum源直接用就行。rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm yum install nginx -yMySQL安装用系统自带的MySQL 5.5即可生产环境小项目足够。装完记得跑一下mysql_secure_installation把匿名账号和测试库清掉。PHP安装这是最麻烦的。系统自带PHP 5.3.3很多新项目跑不了。需要安装EPEL和Webtatic源来获取更新版本的PHP。rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm yum install php70w php70w-fpm php70w-mysql -y注意Webtatic这个源在CentOS 6上最高支持的PHP版本是7.0/7.1再往上就没了。如果你的业务需要PHP 7.2以上就得编译安装但那样GCC版本又是个问题。所以老平台上跑新业务版本卡位很重要。3.2 用Samba搭内网文件共享服务很多企业内部文件共享用的是Samba。CentOS 6.3自带的Samba 3.x功能够用配置也简单。核心配置在/etc/samba/smb.conf。[global] workgroup WORKGROUP server string File Server security user [share] path /data/share valid users user1,user2 read only no create mask 0664 directory mask 0775建好目录、加好系统用户和Samba用户、重启smb服务一套内网共享就搭起来了。需要注意防火墙必须放行137、138、139、445端口。iptables -I INPUT -p tcp --dport 445 -j ACCEPT iptables -I INPUT -p udp --dport 137:138 -j ACCEPT iptables -I INPUT -p tcp --dport 139 -j ACCEPT service iptables save我这里有一回配置Samba后Windows客户端死活连不上排查半天是iptables的规则顺序问题——新规则没有插在最前面被后面的REJECT规则拦截了。所以保存防火墙规则前一定要用iptables -L -n确认顺序。3.3 日志切割与定时备份老系统的磁盘很金贵日志必须管理好。centos 6.3自带logrotate用系统默认配置即可但有两个地方建议调一调。一是Nginx日志。默认Nginx的access.log在/var/log/nginx/下需要在/etc/logrotate.d/nginx里加一份配置/var/log/nginx/*.log { daily missingok rotate 30 compress delaycompress notifempty create 640 nginx adm sharedscripts postrotate [ -f /var/run/nginx.pid ] kill -USR1 cat /var/run/nginx.pid endscript }二是定时备份。我习惯写一个简单的shell脚本放crontab里每天凌晨压缩备份数据库和关键配置目录。用系统自带的cron配置在/etc/crontab或crontab -e都可以。0 2 * * * root /opt/backup/backup.sh /dev/null 21备份脚本里核心就是mysqldump加tar打包然后把旧备份文件删除。老系统空间有限备份文件保留7天就够了别贪多。4. 长期运维踩坑实录与排查技巧4.1 Yum源失效后的抢救方案这是CentOS 6老用户最痛的坑官方源早在2020年就停止维护了mirror.centos.org上相关目录已经挪到vault。这时候再用yum update或者装新包多半会报404。解决方案是把源替换成Vault归档源# 进入yum源目录 cd /etc/yum.repos.d/ # 备份原配置 mkdir /tmp/yum-repos-backup cp *.repo /tmp/yum-repos-backup/ # 修改baseurl把mirror.centos.org/centos/6替换为vault.centos.org/6.3 sed -i s/mirror.centos.org\/centos\/6/vault.centos.org\/6.3/g CentOS-Base.repo sed -i s/#baseurl/baseurl/g CentOS-Base.repo sed -i s/mirrorlist/#mirrorlist/g CentOS-Base.repo # 清缓存并测试 yum clean all yum repolist注意URL路径里的“6.3”版本号如果你的系统是6.5以上Vault源里的目录路径写法会有些不太一样。稳妥的做法是先到https://vault.centos.org/看目录结构再决定写哪个版本。我遇到过一台6.5的机器直接抄网上6.3的URL结果yum源依然报404就是因为版本目录写死了。建议用6开头的目录Vault对6.x小版本做了聚合处理6.3也能适配大部分包。4.2 老内核与现代软件/硬件的兼容性博弈CentOS 6.3的内核是2.6.32-279对NTFS格式、某些新RAID卡驱动、以及大批量SSD优化支持都不好。在纯SSD的服务器上这块老内核没有原生的NVMe驱动需要额外打驱动模块或换成6.10并升级内核。如果你非得在6.3上跑NVMe基本只能靠第三方编译的内核比如kernel-ml或者kernel-lt但这些都是ELRepo源提供的需要先装ELRepo。rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm yum --enablerepoelrepo-kernel install kernel-ml -y装完新内核后在grub里设置默认启动项。但我要提醒你老系统升级内核要极度谨慎特别是跑数据库的机器。有些老应用依赖旧内核的模块行为升级后极易出现文件锁异常或者网络队列参数失效。没有十足把握内核升级能不做就不做。4.3 故障排查速查表老系统排错我习惯先看日志再动手。CentOS 6.3的日志集中在/var/log/目录下几个关键的/var/log/messages系统总体日志、/var/log/secure安全认证日志、/var/log/dmesg内核日志。下边是我多年用下来整理出的高频问题排查表故障现象排查思路常用命令SSH连不上先看端口是否监听再查防火墙规则netstat -tlnp | grep ssh、iptables -L -n网站访问慢查服务状态和系统负载top、free -m、df -hyum无法使用大概率是源失效或DNS故障curl -I http://vault.centos.org中文显示乱码缺少中文字符集安装fonts-chineseyum install fonts-chinese -y时间不对导致https失败同步时间ntpdate ntp.aliyun.com磁盘满但找不到大文件有被删除但仍被进程占用的文件lsof | grep deleted尤其是最后一条系统df显示100%但du却找不到大文件不用怀疑就是有进程占用了已删除的日志文件。处理方式是找到对应进程并重启空间立刻释放。我在一台跑了一年多的Jenkins节点上遇到过java进程一直占据着已删除的日志文件句柄最后重启Jenkins服务才解决。4.4 系统安全补丁与入侵风险应对CentOS 6.3的生命周期已经结束不再提供安全补丁。但这不意味着系统只能裸奔。如果业务没迁移至少要做这几件事彻底关闭不对外服务的端口用iptables做白名单控制。SSH改用非对称密钥登录并禁用root直接登录。安装并定期更新fail2ban自动封禁暴力破解来源IP。内网环境建议通过堡垒机跳板不让业务机器直接暴露在公网。我在一台CentOS 6.3老机器上装了fail2ban一个月时间自动封了上千个SSH暴力破解IP。配置很简单修改/etc/fail2ban/jail.local里的[ssh-iptables]段落即可。关键参数是bantime和maxretry我一般设为86400秒和3次。老系统性能弱fail2ban本身的内存占用也就20MB左右基本无感。5. 老系统生命周期终点与迁移准备5.1 评估是否必须迁移CentOS 6.3确实该退役了。但我见过太多“想升级没人敢动”的场景。业务跑得好好的升级完挂了谁负责所以对系统是否迁移我建议做一次理性评估机器是否暴露在公网如果只跑内网业务风险可控可以再撑一撑。业务是否依赖系统自带的旧库版本比如PHP 5.3、MySQL 5.5如果迁移成本极大优先做软硬件隔离。是否有双机热备如果有可以先迁移备用机再切换主备。5.2 容器化老系统最稳妥的出路对老业务最友好的迁移路线我个人强烈推荐容器化迁移。把整个CentOS 6.3做成容器镜像业务原封不动地跑在容器里宿主用新系统。这样既绕开了老系统与新时代硬件驱动不兼容的痛点又保持了应用运行环境的一致性。具体的思路是先写Dockerfile基础镜像直接用centos:6把应用依赖装好再导入业务代码和数据。难点在于老系统的glibc版本较旧某些新环境变量或内核特性容器里无法获取。但绝大多数业务只要在宿主机设置好sysctl参数基本都能跑起来。容器化之后再逐步把业务依赖的新特性迁移出来比如把数据库升级到MySQL 5.7/8.0把PHP从5.3升到7.4最终实现业务从老系统解放。5.3 数据与配置的备份清单在决定迁移前先做好备份。我整理了一份老系统备份清单按重要程度排序数据库全量备份mysqldump或物理备份注意备份一致性。应用代码目录以及Nginx/Apache、PHP、MySQL的配置文件。crontab计划任务列表别漏掉业务定时脚本。iptables规则、网络配置、hosts文件等系统级配置。SSH密钥、证书文件、加密串等敏感资产。备份做完后可以先试着在虚拟机里用CentOS 7或8还原一遍业务验证一次迁移流程是否可行。没有验证过的备份等于没有备份。写在最后的一点体会CentOS 6.3是一套承载了一代人技术记忆的系统。我至今还记得第一次在生产环境用它部署NginxPHP时那种小心翼翼、又成就感满满的心情。老系统迟早会被替代但你在它身上踩过的坑、总结出的运维方法放到新系统上依然有效。如果你现在正面对一台还在运行的CentOS 6.3不要慌先做好备份再逐项梳理服务依赖最后按自己的节奏把它迁移到更安全的新环境。老系统教会我们的从来都是稳字当头、计划先行。本文还有配套的精品资源点击获取