本帖最后由 颠三倒四 于 2023-9-17 18:52 编辑
面板、插件版本:CentOS 7.9.2009(2核8G)+宝塔8.0.2 +Apache 2.4.53+PHP-8.2.4/PHP-7.4.30 系统版本:CentOS 7.9.2009(2核8G) 问题描述:使用PHP连接Mssql出错,提示503 Service Unavailable。
1、已经根据教程,正常安装了msodbcsql18,mssql-tools18,unixODBC-devel
- msodbcsql18-18.3.1.1-1.x86_64
- unixODBC-2.3.11-1.rh.x86_64
- mssql-tools18-18.2.1.1-1.x86_64
- unixODBC-devel-2.3.11-1.rh.x86_64
复制代码
2、已经根据相应的PHP版本7.4/8.2,下载了相应的插件包,并在php.ini启用了插件:
- php_pdo_sqlsrv_74_nts.so
- php_sqlsrv_74_nts.so
- php_pdo_sqlsrv_82_nts.so
- php_sqlsrv_82_nts.so
复制代码
3、phpinfo()显示已经正常启用sqlsrv及pdo_sqlsrv
4、已经重启apache及php-fpm
5、使用mssql-cli工具正常连接了远程的mssql数据库,证明网络通畅,帐户密码正确。
6、使用PHP代码来访问mssql:
- <?php
- $server = "IP"; //服务器名称
- $uid = "user"; //数据库用户名
- $pwd = "password"; //数据库密码
- $db = "database"; // 数据库名
- $connectionInfo=array("UID"=>$uid,"PWD"=>$pwd,"Database"=>$db);
- $conn =sqlsrv_connect($server,$connectionInfo);
- if( $conn == false) {
- echo "连接失败!";
- die( var_dump( sqlsrv_errors(), true));
- }else{
- echo "成功连接";
- }
复制代码
7、页面不显示具体错误,显示的是503 Service Unavailable:
- Service Unavailable
- The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
复制代码
8、排查了apache的配置,mod_proxy和mod_proxy_fcgi正常加载
- LoadModule proxy_module modules/mod_proxy.so
- LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
复制代码
9、排查了apache日志,php-fpm日志:
10、现在不知道问题出在哪了,使用了PHP7.4和8.2分别做了测试,sqlsrv用了ts和nts版本来测试,情况是一样的。
|
|