在LNMP(Linux+Nginx+MySQL+PHP)环境中更改域名是一个常见操作,但涉及多个组件的配置调整,需谨慎操作以避免服务中断,以下是详细的操作步骤和注意事项,确保更改过程顺利。

备份现有配置文件
在修改任何配置前,务必备份原始文件,以防配置错误导致服务无法启动,主要备份以下文件:
- Nginx配置文件:通常位于
/usr/local/nginx/conf/vhost/目录下,对应域名的配置文件(如old_domain.com.conf)。 - MySQL数据库(可选):如果数据库中存储了旧域名信息,需提前备份数据库。
- 网站根目录文件:通过
cp -r /data/www/old_domain /data/www/backup_old_domain命令备份网站文件。
修改Nginx配置
Nginx的域名配置是核心环节,需更新虚拟主机文件、重定向规则及SSL证书(如使用HTTPS)。
编辑虚拟主机配置文件
进入/usr/local/nginx/conf/vhost/目录,使用vi old_domain.com.conf打开旧域名配置文件,修改以下内容:
- server_name:将旧域名替换为新域名,例如从
old_domain.com改为new_domain.com。 - root目录:确认网站根目录路径是否正确(如
/data/www/new_domain),若新域名的文件结构与旧域名不同,需同步调整。 - 重定向规则:若需将旧域名访问永久跳转至新域名,在配置中添加
return 301 https://new_domain.com$request_uri;(适用于HTTP跳转HTTPS)。
创建新域名配置文件(可选)
若新域名是全新站点,可复制旧配置文件并重命名(如cp old_domain.com.conf new_domain.com.conf),再修改server_name和root路径。
测试并重载Nginx配置
修改完成后,执行以下命令检查配置语法:
/usr/local/nginx/sbin/nginx -t
若显示syntax is ok和test is successful,则输入以下命令重载配置:
/usr/local/nginx/sbin/nginx -s reload
更新PHP相关配置
若网站依赖PHP(如WordPress、Discuz等),需检查PHP-FPM的配置是否涉及旧域名。
检查PHP-FPM配置文件
PHP-FPM的虚拟主机配置通常位于/usr/local/php/etc/php-fpm.conf或/usr/local/php/etc/php-fpm.d/目录下的独立配置文件,若文件中包含旧域名路径(如slowlog = /var/log/php-fpm-old_domain.log),需同步更新为新域名路径。
重启PHP-FPM服务
修改PHP配置后,需重启PHP-FPM使配置生效:

/usr/local/php/sbin/php-fpm restart
修改数据库中的域名信息
若网站数据库中存储了旧域名(如WordPress的wp_options表中的siteurl和home字段),需通过SQL语句更新。
登录MySQL
执行以下命令进入MySQL命令行:
mysql -u root -p
执行更新语句
选择对应数据库(如use new_db;),然后执行:
UPDATE wp_options SET option_value = 'https://new_domain.com' WHERE option_name IN ('siteurl', 'home');
若数据库中其他表(如文章内容、插件配置)包含旧域名,需逐一查找并替换。
验证数据库更新
执行SELECT * FROM wp_options WHERE option_name IN ('siteurl', 'home');确认修改结果。
更新网站文件中的域名引用
部分网站文件可能包含硬编码的旧域名(如配置文件、代码中的链接),需全局搜索并替换。
使用grep搜索旧域名
在网站根目录下执行:
grep -r "old_domain.com" .
批量替换为新域名
通过sed命令替换所有匹配项:
sed -i "s/old_domain.com/new_domain.com/g" `grep -r "old_domain.com" . --files-with-matches`
注意:替换前建议再次备份文件,避免误操作。

配置SSL证书(如使用HTTPS)
若新域名需启用HTTPS,需更新Nginx配置中的SSL证书路径。
上传新证书文件
将新域名的证书(new_domain.com.crt)和私钥(new_domain.com.key)上传至服务器指定目录(如/usr/local/nginx/ssl/)。
修改Nginx配置
在虚拟主机配置中更新以下内容:
listen 443 ssl; ssl_certificate /usr/local/nginx/ssl/new_domain.com.crt; ssl_certificate_key /usr/local/nginx/ssl/new_domain.com.key;
重载Nginx配置
执行nginx -s reload使SSL配置生效。
测试与验证
完成所有配置修改后,需全面测试网站功能:
- 域名解析:通过
ping new_domain.com确认域名是否正确解析到服务器IP。 - 页面访问:浏览器访问新域名,检查首页、内页、登录等功能是否正常。
- 功能测试:提交表单、上传文件、数据库交互等核心功能需逐一验证。
- 日志检查:查看Nginx错误日志(
/usr/local/nginx/logs/error.log)和PHP错误日志,排查潜在问题。
注意事项
- 权限问题:修改配置文件时确保用户权限正确(Nginx配置文件通常为root权限,PHP-FPM配置需与运行用户匹配)。
- 缓存清理:若使用CDN或浏览器缓存,需清理缓存后再测试。
- 搜索引擎优化:若旧域名有SEO权重,建议保留301重定向至少3个月,避免流量流失。
- 多域名配置:若服务器托管多个域名,需确保新域名配置与现有配置不冲突(如端口、root目录)。
通过以上步骤,可顺利完成LNMP环境下的域名更改操作,关键在于细致备份、分步修改和全面测试,确保服务稳定运行。

















