Какая правильная конфигурация PHP для подключения к MS SQL 2000/2005? - PullRequest
0 голосов
/ 14 апреля 2009

У меня есть несколько серверов, работающих под управлением PHP 5.2.6 (не поточно-ориентированная сборка) в Windows 2003 / IIS6 с использованием FastCGI.

У меня проблемы с подключением к MS SQL 2000/2005 (подключение MySQL работает нормально, сценарии ASP / ASP.NET также могут успешно подключаться к MS SQL). Одно решение предлагает скопировать файл SQL Client Tools ntwdblib.dll в папку расширений PHP или установить все инструменты SQL Client Tools на веб-сервере (что я неохотно делаю).

Другое предлагаемое решение - использовать Драйвер Microsoft SQL Server 2005 для PHP . Это отлично подходит для написания новых приложений, но для таких приложений, как phpBBS или WordPress, это не работает.

Например, следующий скрипт:

<?php 
$host = "mssqlhost"; 
$user = "phpbb2"; 
$password = "phpbb2"; 

$connect_sql_server = mssql_connect($host, $user, $password); 
?>

Сбой с:

Предупреждение PHP: mssql_connect () [function.mssql-connect]: невозможно подключиться к серверу: mssqlhost in E: \ AppsDev.NET_UK_Minds \ phpSqlNC \ WWW \ test.php по линии 6

Цель состоит в том, чтобы позволить сценариям PHP подключаться как к SQL 2000, так и к SQL 2005, которые работают на разных серверах. Я также должен добавить, что в настоящее время обновление до более поздней версии PHP недоступно.

Как правильно настроить PHP в Windows 2003 / IIS6 для подключения к SQL 2000/2005?

Ответы [ 3 ]

5 голосов
/ 14 апреля 2009

После проверки различных «решений» оказывается, что проблема была решена просто путем замены файла ntwdblib.dll в папке исполняемых файлов PHP.

Нет необходимости устанавливать: Собственный клиент SQL , Инструменты клиента SQL или Драйвер Microsoft SQL Server 2005 для PHP , так много тупиков предложил.

Все, что нужно сделать, это убедиться, что ntwdblib.dll версия 2000.80.2039.0 помещена в папку c:\php (или куда бы вы ни установили / распаковали PHP), а затем сбросить IIS. Документы PHP предлагают скопировать ntwdblib.dll в% SYSTEMROOT% \ System32, что не работает, и они также предполагают, что это будет поддерживать только именованные каналы, что также неправильно.

Я не пытался проверить, работает ли более поздняя версия ntwdblib.dll или нет, но у меня работает 2000.80.2039.0.

1 голос
/ 14 октября 2009

Не совсем ответ, но более полезная информация ...

Версия ntwdblib.dll (2000.2.8.0), которая поставляется с последней версией php 5.2.X, прекрасно работает с Apache и MSSQL (2008). У меня есть копия DLL из версий 2000.80.X.X, и она новее, чем в PHP. Я не знаю, если это делает это лучше.

Функции "mssql_" не включены в официальный драйвер msft php mssql . Они изменили их на другое соглашение об именах. ("sqlsrv_") Эта ссылка, которую вы разместили, имеет версию 1.0, но они уже на версии 1.1. Функции "mssql_" требуют наличия файла ntwdblib.dll.

0 голосов
/ 11 февраля 2010

Apache 2.2.14 / PHP 5.2.12 / интеграция MS-SQL 2008

  • Загрузить Apache 2.2.14 для пакета установщика Windows 2008, 32-разрядная версия http DOT apache DOT org / download.cgi -> apache_2.2.14-win32-x86-no_ssl
  • следуйте настройкам по умолчанию при установке Apache
  • остановка службы Apache 2.2

  • Загрузить PHP 5.2.12 Windows Zip пакет для Windows 2008 32 бит; (Требуется версия VC6 Thread Safe для PHP, используемая в качестве модуля Apache).

windows DOT php DOT net / скачать / -> php-5.2.12-Win32-VC6-x86.zip - Распакуйте архив в C: \ PHP - Проверьте правильность установки: C: \ PHP> php -v
- установить переменную окружения PHPRC = C: \ PHP - Переименуйте 'C: \ PHP \ php.ini-рекомендуемый' в 'C: \ PHP \ php.ini' - Изменить C: \ PHP \ php, ini-файл:

modify:     extension_dir = "C:\PHP\ext"
uncomment:  extension=php_mssql.dll
  • Добавьте следующие строки в "C: \ Program Files \ Apache Software Foundation \ Apache2.2 \ conf \ httpd.conf"

    PHPIniDir "C:/PHP/"
    LoadModule php5_module "C:/PHP/php5apache2_2.dll"
    AddHandler application/x-httpd-php .php
    
  • Добавьте следующие строки в "C: \ Program Files \ Apache Software Foundation \ Apache2.2 \ conf \ mime.types"

    application/x-httpd-php php
    application/x-httpd-php-source  phps
    
  • Убедитесь, что файл phpinfo.php с содержимым: находится в папке C: \ Program Files \ Apache Software Foundation \ Apache2.2 \ htdocs

  • Запуск службы Apache 2.2

  • Проверка интеграции Apache / PHP: http://localhost/phpinfo.php -> Появится информация «PHP версии 5.2.12»
  • Проверка загрузки модуля mssql: c: \ php \ php -m

Все работает как шарм ... никаких дополнительных шагов не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...