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

相关推荐
ping某2 天前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
BingoGo2 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack2 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户3074596982073 天前
PHP 扩展——从入门到理解
php
鹏仔先生3 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
云水一下4 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php
xingpanvip4 天前
星盘接口开发文档:本命盘接口指南
android·开发语言·css·php·lua
難釋懷4 天前
Nginx反向代理中的容错机制
运维·nginx
bloglin999994 天前
Nginx高危漏洞CVE-2021-23017及配置样例
运维·nginx
进阶的小名4 天前
Spring Boot SSE + Nginx 配置:解决 EventSource 不实时返回、连接超时、流式响应被缓冲问题
spring boot·后端·nginx