php+apache+nginx 更换域名
-
- [✅ 第 1 步:确认到底是谁在监听 80/443](#✅ 第 1 步:确认到底是谁在监听 80/443)
- [✅ 第 2 步:按监听者修改配置](#✅ 第 2 步:按监听者修改配置)
-
- [🔹 场景 A:Apache 直接监听 80/443](#🔹 场景 A:Apache 直接监听 80/443)
- [🔹 场景 B:Nginx 监听 80/443,反向代理到 Apache](#🔹 场景 B:Nginx 监听 80/443,反向代理到 Apache)
- [✅ 第 3 步:DNS & 本地 hosts 指向新域名](#✅ 第 3 步:DNS & 本地 hosts 指向新域名)
- [✅ 小结流程图](#✅ 小结流程图)
入职新公司做全栈开发,上个开发人员没有留下任何文档和源码,本身又不是php开发,领导给了一个需求,那就是更换域名,
"老域名"在 Nginx 里找不到,大概率是 Apache 在 80/443 端口监听 ,而 Nginx 只是反向代理或根本没用到。
要更换域名 ,只需弄清「谁真正在监听 80/443」并修改对应配置即可。下面给出排查-修改-验证三步法。
✅ 第 1 步:确认到底是谁在监听 80/443
bash
# 1. 看哪个进程占用了 80 或 443
sudo netstat -tlnp | grep ':80\|:443'
# 或(新系统)
sudo ss -tlnp | grep ':80\|:443'
典型输出
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1234/httpd
- httpd → Apache 在监听
- nginx → Nginx 在监听
✅ 第 2 步:按监听者修改配置
🔹 场景 A:Apache 直接监听 80/443
(Nginx 只是静态反向代理或根本没用到)
-
找到 Apache 虚拟主机文件
- Ubuntu/Debian:
/etc/apache2/sites-enabled/
- CentOS/RHEL:
/etc/httpd/conf.d/
或/etc/httpd/conf/extra/httpd-vhosts.conf
- Ubuntu/Debian:
-
把旧域名全部替换为新域名
apache<VirtualHost *:80> ServerName new.com ServerAlias www.new.com DocumentRoot /home/www/new.com/htdocs </VirtualHost>
-
重载 Apache
bashsudo systemctl reload apache2 # Debian/Ubuntu sudo systemctl reload httpd # CentOS/RHEL
🔹 场景 B:Nginx 监听 80/443,反向代理到 Apache
-
在 Nginx 里找到
server_name
指令bashgrep -R "old\.com" /etc/nginx/ /usr/local/nginx/conf/
没结果说明所有
.conf
文件里确实没有;可能:- 老配置放在
sites-available
却 没 link 到sites-enabled
- 老配置在自定义路径,如
/www/server/nginx/conf/vhost/old.com.conf
(宝塔/OneinStack 常见)
- 老配置放在
-
修改或新增 server 块
nginxserver { listen 80; server_name new.com www.new.com; root /home/www/new.com/htdocs; location ~ \.php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 或 127.0.0.1:9000 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
-
重载 Nginx
bashsudo nginx -t && sudo systemctl reload nginx
✅ 第 3 步:DNS & 本地 hosts 指向新域名
-
域名解析:去 DNS 面板把
A
记录指向服务器 IP。 -
本地测试(可选):
bashecho "123.123.123.123 new.com www.new.com" | sudo tee -a /etc/hosts
✅ 小结流程图
┌──────────────┐
│ 谁是 80/443 监听者?│
└────┬─────────┘
│
┌───┴────────────┬─────────────────┐
│ Apache 监听 │ Nginx 监听 │
│ 修 Apache 配置 │ 修 Nginx 配置 │
│ reload Apache │ reload Nginx │
└────────────────┴─────────────────┘