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

相关推荐
Dream of maid4 小时前
Python12(网络编程)
开发语言·网络·php
.柒宇.5 小时前
nginx入门教程
运维·nginx
vortex511 小时前
构建可审计、可分层、可扩展的SSH身份管理体系
网络·ssh·php
大白菜和MySQL11 小时前
apache服务器部署简记
运维·服务器·apache
aq553560013 小时前
编程语言对比:从汇编到PHP的四大层级解析
开发语言·汇编·php
aq553560014 小时前
四大编程语言对比:PHP、Python、Java、易语言
java·python·php
搬砖魁首14 小时前
Fabric系列 - HSM之3 区块链上的结合
区块链·php·fabric·长安链·hsm
qq_2602412315 小时前
将盾CDN:零信任安全架构的演进与落地实践
安全·php·安全架构
如来神掌十八式16 小时前
nginx + spring gateway+spring 服务_nginx 转发到 gateway
nginx·spring·gateway
爱学习的小囧16 小时前
VCF 9 实验室网络部署全攻略:从硬件连接到配置实操
开发语言·网络·php