Intereting Posts
Инициализировать свойство класса анонимной функцией Значения массива в функции дублировать запись для ключа 'idx_client_id_parent_id_alias_language' при ручной вставке базы данных joomla Переключение двух элементов в ассоциативном массиве Множественный загрузчик файлов отправляет только один файл Неустранимая ошибка: вызов функции-функции-члена () для не-объекта в код воспламенитель передачи базы данных session_id в поле зрения Отображать переменную во время создания анонимной функции PHP Вставить строки в базу данных через json не работает PHP-анализ XML из URL-адреса Как я могу отправить опубликованные данные, когда пользователь сначала перенаправляется через Paypal? использовать данные maxmind, такие как statcounter, возможно Получить текстовое поле Текст с помощью ajax при нажатии кнопки Как поделиться формой между двумя веб-сайтами Как я могу вставить javascript в php?

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

У меня есть несколько серверов, на которых работает PHP 5.2.6 (без потоковой сборки) в Windows 2003 / IIS6 с использованием FastCGI.

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

Еще одно решение – использовать драйвер 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 в E: \ AppsDev.NET_UK_Minds \ phpSqlNC \ www \ test.php в строке 6

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

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

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

Нет необходимости устанавливать какие-либо из: собственного клиента SQL , SQL Client Tools или 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 работает для меня.

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

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

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

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

  • Загрузить Apache 2.2.14 для пакета установщика Windows 2008 32-разрядный httpd 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 / download / -> php-5.2.12-Win32-VC6-x86.zip – Извлечь архив в C: \ PHP – Проверить установку: C: \ PHP> php -v
– установить переменную среды PHPRC = C: \ PHP – переименовать 'C: \ PHP \ php.ini-recommended' в '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 Version 5.2.12'
  • Проверка загрузки модуля mssql: c: \ php \ php -m

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