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

相关推荐
木木子226 小时前
[特殊字符] 音乐播放器——状态驱动的多媒体控制
android·开发语言·华为·php·harmonyos
酷酷的身影7 小时前
Drivers/LedManager.cs
开发语言·php
donoot7 小时前
一次 Nginx 502 问题的深度排查:从 SELinux 到容器网络
nginx·docker·selinux·反向代理·502 bad gateway
可靠的仙人掌7 小时前
SAC(Soft Actor-Critic)算法底座
开发语言·算法·php
qq_422152579 小时前
PDF内容复用的几种实用方法:转PPT、转图片、转长图
pdf·php·powerpoint
SelectDB技术团队11 小时前
Agent 场景动态 JSON 性能拆解:Apache Doris 比 ClickHouse 快 7 倍、比 Elasticsearch 快 2 倍
数据库·clickhouse·elasticsearch·json·apache·日志分析·apache doris
難釋懷12 小时前
Nginx浏览器强制缓存
运维·nginx·缓存
DolphinScheduler社区13 小时前
Apache DolphinScheduler 6 月治理优化,补齐调度运维全链路细节
大数据·运维·云原生·apache·海豚调度
SelectDB技术团队13 小时前
AB 实验指标计算场景:Apache Doris / SelectDB 的技术能力、选型对比与实践
大数据·数据库·数据分析·apache·用户运营·apache doris·selectdb
ITKEY_1 天前
macOS brew 安装的nginx 文件在哪里?
运维·nginx·macos