SQL 2000 + PHP 4 + Apache (Win)

erdn
Дата: 06.07.2006 19:59:25
Сергей Л
erdn
Ну я использую подобную связку. Задавайте конкретные вопросы. А то вопрос "что нужно настроить" как-то настораживает...


Для начала привожу данные из phpinfo():

Apache/1.3.34 (Win32) PHP/4.3.11

MSSQL Support enabled
Active Persistent Links 0
Active Links 0
Library version 7.0

Directive Local Value Master Value
mssql.allow_persistent On On
mssql.batchsize 0 0
mssql.compatability_mode Off Off
mssql.connect_timeout 5 5
mssql.datetimeconvert On On
mssql.max_links Unlimited Unlimited
mssql.max_persistent Unlimited Unlimited
mssql.max_procs 25 25
mssql.min_error_severity 10 10
mssql.min_message_severity 10 10
mssql.secure_connection Off Off
mssql.textlimit Server default Server default
mssql.textsize Server default Server default
mssql.timeout 60 60

PC1 - windows server 2003 + apache + php
PC2 - windows server 2003 + mssql 2000 standart sp4

При установке библиотеки PHP с php-ешной ntwdblib.dll сервер был не доступен. Я заметил эту DLL-ку своей (версия 2000.80.2039.0), которая шла в составе SQL сервера. Появился доступ к SQL серверу.

Когда я ставил все на одном компьютере, то там было:
windows xp prof + apache + php + MSDE 2000 SP 3 (инсталирована с сетевым доступом)
Про версиюю ntwdblib.dll для этой конфигурации сейчас сказать не могу - перезаписывал, но какой точно версии - не записано.
Почему, когда все поставил на один компьютер, я не смог обратиться к SQL серверу? На что мне нужно обратить внимание?


Я бы сначала протестил работу php с локальными различными базками.
Вообще, настройки php.ini и httpd.conf -- это первое, куда надо лезть...
И поставил постарше версию.

Что касаемо ntwdblib.dll, то я особо с ней не заморачивался и поставил на свою 4.2.3 версию 2000.80.194.0, хотя по-моему, работала и родная 2000.2.8.0.

А из других локальных баз у вас MS SQL нормально виден???
Сергей Л
Дата: 07.07.2006 14:09:07
erdn
А из других локальных баз у вас MS SQL нормально виден???


Да нормально.

автор
Вообще, настройки php.ini и httpd.conf -- это первое, куда надо лезть...


Пересматривал и разбирался с ними - там нечего настраивать для линка с БД. А вот в настройках Client Network Utility (см. cliconfg.exe в папке SYSTEM32) настраивал, по крайней мере для работающей связке на двах компах: отключать NimedPipes и изменять флажки чтобы номарльно работал с кирилицей.

автор
Что касаемо ntwdblib.dll, то я особо с ней не заморачивался и поставил на свою 4.2.3 версию 2000.80.194.0, хотя по-моему, работала и родная 2000.2.8.0.


На сколько я понимаю технологии ODBC и OLE DB, то ntwdblib.dll нужен именно для последней. PHP функции odbc_ работают через драйвер ODBC для MS-SQL. К тому же для ODBC нажно настраивать DSN.

По сравнению с ODBC, OLE DB лучше - он полнее использует возможности SQL-сервера при работе с правами. Я очень давно не работаю с ODBC и не помню, какие еще были ньансы при использовании ODBC с MS-SQL, помоему с какими-то типами данных: varchar длиной более 255 символов. Правда раньше был другой клиент, может затык был в нем. Пока не потестирую ODBC с PHP - не скажу точно.

Когдая тогда тестировал, то почему-то пришел к выводу, что есть особенности и сетевым протоколом - типа может нужно ставить Microsoft адаптер замыкания на себя или из PHP в mssql-библиотеках нельзя подключаться к БД если она localhost.

В общем пока мне ясно, что хоть у кого-то все работает наодной машине, значит я выберу время, настрою какой-нибудь комп и потестирую все еще раз.

А у тебя все работает под Windows Server или под Windows XP?