php+apache+nginx 更换域名

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 只是静态反向代理或根本没用到)

  1. 找到 Apache 虚拟主机文件

    • Ubuntu/Debian:/etc/apache2/sites-enabled/
    • CentOS/RHEL:/etc/httpd/conf.d//etc/httpd/conf/extra/httpd-vhosts.conf
  2. 把旧域名全部替换为新域名

    apache 复制代码
    <VirtualHost *:80>
        ServerName  new.com
        ServerAlias www.new.com
        DocumentRoot /home/www/new.com/htdocs
    </VirtualHost>
  3. 重载 Apache

    bash 复制代码
    sudo systemctl reload apache2      # Debian/Ubuntu
    sudo systemctl reload httpd        # CentOS/RHEL

🔹 场景 B:Nginx 监听 80/443,反向代理到 Apache

  1. 在 Nginx 里找到 server_name 指令

    bash 复制代码
    grep -R "old\.com" /etc/nginx/ /usr/local/nginx/conf/

    没结果说明所有 .conf 文件里确实没有;可能:

    • 老配置放在 sites-available没 link 到 sites-enabled
    • 老配置在自定义路径,如 /www/server/nginx/conf/vhost/old.com.conf(宝塔/OneinStack 常见)
  2. 修改或新增 server 块

    nginx 复制代码
    server {
        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;
        }
    }
  3. 重载 Nginx

    bash 复制代码
    sudo nginx -t && sudo systemctl reload nginx

✅ 第 3 步:DNS & 本地 hosts 指向新域名

  1. 域名解析:去 DNS 面板把 A 记录指向服务器 IP。

  2. 本地测试(可选):

    bash 复制代码
    echo "123.123.123.123  new.com www.new.com" | sudo tee -a /etc/hosts

✅ 小结流程图

复制代码
┌──────────────┐
│ 谁是 80/443 监听者?│
└────┬─────────┘
     │
 ┌───┴────────────┬─────────────────┐
 │ Apache 监听     │ Nginx 监听       │
 │ 修 Apache 配置 │ 修 Nginx 配置   │
 │ reload Apache  │ reload Nginx    │
 └────────────────┴─────────────────┘

相关推荐
凤山老林2 小时前
Spring Boot 集成 Apache Kafka Streams 构建流处理应用:状态存储、窗口聚合与
spring boot·kafka·apache
DolphinScheduler社区15 小时前
Apache DolphinScheduler 8 月报:权限安全加固,调度补火上线,性能与稳定性持续提升
大数据·安全·开源·apache·任务调度·海豚调度
北京盛世宏博15 小时前
物联网传感器通信协议:帧字段规划、CRC 校验、异常包过滤方案
网络·物联网·php
三84416 小时前
PHP Session 反序列化:防御加固、审计套路与总结
web安全·php·安全加固·session反序列化
中科三方17 小时前
DNS拨测到底在拨测什么?
开发语言·github·php·dns·云拨测
企业通信技术笔记17 小时前
企业IM内外网隔离部署:DNS、证书、WebSocket与跨网接口设计
websocket·网络协议·架构·php·信息与通信
szarron18 小时前
RF Demo Kit|NanoVNA 射频演示测试板完整上手教程,滤波器、衰减器、SOLT 校准学习板
开发语言·人工智能·学习·php·射频工程·频谱仪
IT菜鸟程18 小时前
Ubuntu 下 apt 版 Nginx 升级为源码编译版本完整操作指南(1.24.0 → 1.30.4 实战)
linux·nginx·ubuntu
sbjdhjd21 小时前
从 assert 动态调用报错到临时文件链路:PHP 5.6 与 7.3 授权靶场中的短 payload 复盘 | (17字符绕过)
安全·网络安全·数据挖掘·开源·云计算·php·字符绕过