You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Laravel部署到Plesk Windows服务器的数据库连接拒绝错误?

解决Laravel 8+部署到Windows Plesk共享主机后的SQL Server连接拒绝问题

针对你遇到的「本地运行正常、部署到Windows Plesk共享主机后SQL Server连接被主动拒绝」的问题,按以下步骤排查解决:

1. 确认数据库服务器的真实连接地址

共享主机的SQL Server几乎不会允许用127.0.0.1或localhost连接——因为Web服务器和数据库服务器大概率是分离的(即使是同一物理机,共享主机也会限制本地访问权限):

  • 登录Plesk面板,找到你的数据库管理页面,复制面板提供的**「服务器名称」**(通常是专属域名或IP,而非localhost)
  • 如果是命名实例,格式应为服务器地址\实例名,比如db.yourdomain.com\MSSQLSERVER2017

2. 修正.env配置

用Plesk提供的真实信息替换.env里的数据库配置:

DB_CONNECTION=sqlsrv
DB_HOST=你的数据库服务器地址(从Plesk获取)
DB_PORT=1433 # 或主机商指定的端口,命名实例可无需填写
DB_DATABASE=serverDbName
DB_USERNAME=serverDbUserName
DB_PASSWORD=serverDbPassword

注意:如果是命名实例,不要同时指定DB_PORT,让Laravel自动解析实例对应的动态端口

3. 检查数据库用户的远程访问权限

  • 在Plesk的数据库设置中,确认你的数据库用户允许从当前Web服务器的IP地址连接(共享主机通常默认限制远程访问,需要手动添加Web服务器IP到允许列表)
  • 联系主机商确认:是否开放了SQL Server端口(1433或对应动态端口)的防火墙规则,确保Web服务器能正常访问数据库服务器

4. 验证服务器上的ODBC驱动版本

报错中提到「ODBC Driver 17 for SQL Server」,需确认Plesk服务器上已安装对应版本驱动:

  • 若驱动未安装,可通过Plesk的「扩展」市场搜索安装,或直接联系主机商协助部署
  • 确保驱动版本和本地开发环境一致,版本不匹配也会导致连接失败

5. 用原生脚本测试连接(排除Laravel配置干扰)

在服务器上创建一个简单的PHP文件(比如test-db.php),用原生sqlsrv函数测试连接,快速定位问题:

<?php
$serverName = "你的数据库服务器地址";
$connectionInfo = [
    "Database" => "serverDbName",
    "UID" => "serverDbUserName",
    "PWD" => "serverDbPassword"
];
$conn = sqlsrv_connect($serverName, $connectionInfo);

if ($conn) {
    echo "数据库连接成功!";
} else {
    echo "连接失败,错误信息:<br>";
    print_r(sqlsrv_errors(), true);
}
?>

访问这个脚本,根据输出的错误信息(比如权限问题、地址错误)进一步调整配置。

内容的提问来源于stack exchange,提问作者Anupam Hayat Shawon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 22:09:53