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    │
 └────────────────┴─────────────────┘

相关推荐
油丶酸萝卜别吃4 小时前
nginx配置代理服务器
运维·网络·nginx
花酒锄作田5 小时前
Nginx反向代理Kafka集群
nginx·kafka
奥格列的魔法拖鞋~5 小时前
Docker-LNMP架构 创建多项目- 单个ngixn代理多个PHP容器服务
nginx·docker·eureka·架构·php·lnmp
数据爬坡ing5 小时前
过程设计工具深度解析-软件工程之详细设计(补充篇)
大数据·数据结构·算法·apache·软件工程·软件构建·设计语言
运维行者_6 小时前
使用Applications Manager进行 Apache Solr 监控
运维·网络·数据库·网络安全·云计算·apache·solr
会说法语的猪8 小时前
使用nginx反向代理kkfile
运维·nginx
夜影风9 小时前
Nginx反向代理与缓存实现
运维·nginx·缓存
我不是立达刘宁宇9 小时前
php危险函数,二.assert()[现版本已弃用]
开发语言·php
forestsea11 小时前
Nginx蜘蛛请求智能分流:精准识别爬虫并转发SEO渲染服务
运维·爬虫·nginx