CentOS 7 搭建 PHP 环境踩坑全记录:从网络瘫痪到 LAMP 落地,我经历了什么

9 阅读3分钟

在 CentOS 7 上搭建 PHP 靶场环境,本以为照着教程个把小时就能搞定,结果硬是踩了一整天的坑,差点给我整崩溃。复盘一下遇到的六个典型问题,留作记录,也供后来者参考。


一、虚拟机重启后 IP 地址消失了

现象:ip a 查看网卡 ens33,下面空空如也,inet 地址不翼而飞。

原因:上午卸载系统自带 MariaDB 时,可能误伤了 DHCP 客户端 dhclient,导致系统无法自动获取 IP。

解决:没网就没法在线装回 dhclient,挂载 CentOS 7 Minimal 版 ISO 发现里面也没有 dhcp-client 包,死循环。最后手动编辑 /etc/sysconfig/network-scripts/ifcfg-ens33,配置静态 IP 和网关,重启网络后才勉强把网救回来。


二、yum 安装软件报错找不到 baseurl

现象:执行 yum install 提示 Cannot find a valid baseurl for repo: base/7/x86_64。

原因:CentOS 7 已于 2024 年 6 月停止官方维护,原有 yum 源地址失效。

解决:将 /etc/yum.repos.d/CentOS-Base.repo 中的 baseurl 替换为阿里云或清华的 vault.centos.org 镜像地址,清理缓存并重建即可。


三、XAMPP 启动报共享库加载失败

现象:安装 XAMPP 8.2 后启动,报 libc.so.6、libdl.so.2 等库无法打开,连带系统命令 cat、netstat 也失效。

原因:XAMPP 8.x 与 CentOS 7 自带的 glibc 2.17 存在兼容性问题,且之前卸载软件时动态链接缓存可能受影响。

解决:尝试修改脚本、重装 glibc 后系统命令恢复正常,但 XAMPP 依然无法启动。折腾无果,最终放弃 XAMPP,改为手动安装 LAMP 环境(Apache + MySQL + PHP),各组件版本匹配且稳定。

621ee94fd9e7acae13cef44df82880d4.jpg

四、安装 MySQL 8.0 时 GPG 密钥验证失败

现象:yum install mysql-community-server 报错 mysql-community-libs 的公钥尚未安装。

原因:MySQL 官方仓库的 GPG 密钥未导入或已过期。

解决:手动执行 rpm --import repo.mysql.com/RPM-GPG-KEY… 导入新密钥后重新安装。


五、MySQL 临时密码登录被拒绝

现象:从日志中获取临时密码后登录,提示 ERROR 1045 (28000): Access denied。

原因:日志中密码前后存在换行或空格,复制时未完整选取。

解决:使用 awk -F ': ' '{print $NF}' 精准提取密码字符串,成功登录并修改为新密码。


六、物理机浏览器无法访问虚拟机网页

现象:浏览器输入虚拟机 IP 后跳转到路由器管理页,或显示连接超时。

原因:虚拟机网络使用桥接模式时,获取的 IP 与局域网内真实路由器 IP 冲突;改用 NAT 模式后访问超时,则是因为防火墙未关闭及浏览器缓存。

解决:将虚拟机网络改回 NAT 模式,手动设置静态 IP 192.168.179.128,关闭系统防火墙,并在浏览器中完整输入 链接,最终成功打开 PHP 信息页。

de521bd99f56bdc3ad5c241118b58b20.jpg

写在最后

尤其是 dhclient 被误删那个问题,翻遍以前的记录也找不到头绪,现象相似但根因完全不同,只能一步步从头排查。XAMPP 下载安装也是困难重重,启动失败后反复试错,最后才发现是版本不兼容,索性放弃整合包,老老实实手动搭建。

环境配置成功后,浏览器又打不开网页,AI 一会儿说桥接模式,一会儿又说 NAT 模式,直接给我整懵了。从网络到配置文件,从服务到防火墙,一路排查、一路纠正、一路试错——能踩的坑基本全让我踩了一遍。

总结一句话:停止维护的老版本系统尽量别用了,选技术栈时也不要追新,稳定、兼容才是王道。遇到问题别死磕,先搞清楚原理,再一步步缩小范围,总能把根因揪出来。

本人真实踩坑记录,内容由AI帮助润色。