Я перехожу по этой ссылке: https://docs.moodle.org/23/en/Installing_MSSQL_for_PHP успешно установить php_dblib.dll (это FreeTDS, скомпилированный для Windows 64bit) в моем PHP 5.5.3 на Windows 64bit. Вывод phpinfo () показывает:
Environment
...
FREETDS d:\portable_sw\php-5.5.30-Win32-VC11-x64\conf
...
mssql
MSSQL Support enabled
Active Persistent Links 0
Active Links 0
Library version FreeTDS
...
Похоже, движок PHP ловит, где находится freetds.conf, и библиотека mssql установлена нормально. В моем freetds.conf я определил имя сервера «mydb» как:
[mydb]
host = 10.18.1.11
port = 1433
client charset = cp950
tds version = 7.0
Но когда я запускаю скрипт PHP со следующим оператором php в браузере:
$conn = mssql_connect('mydb', 'myuid', 'mypwd') or mydie('open mydb failed!');
Он просто висит там некоторое время, а затем браузер отображает:
Cannot connect to the website
Please make sure:
- You have entered the correct URL.
- You are connected to the Internet.
- Your firewall is properly configured.
- The website is not encountering any technical problem at the moment.
Error code 101 (net::ERR_CONNECTION_RESET)
Если я изменю «mydb» на «10 .18.1.11», он подключится нормально. Кажется, настройка в freetds.conf игнорируется. В чем может быть причина и как мне ее решить?
Я отказываюсь от mssql- * и использую sqlsrv- *, это работает хорошо. Поэтому на его вопрос отвечает «Я».
Других решений пока нет …