Ask a Question related to PHP Bugs, Design and Development.
-
aren at cambre dot biz #1
#38965 [NEW]: mssql_connect doesn't use TCP 1433 for external SQL Server
From: aren at cambre dot biz
Operating system: Windows 2003 (for both servers)
PHP version: 4.4.4
PHP Bug Type: MSSQL related
Bug description: mssql_connect doesn't use TCP 1433 for external SQL Server
Description:
------------
When using mssql_connect to connect to a SQL Server database on a remote
server, PHP attemtps to connect using named pipes. This is a terribly
outdated behavior; SQL Server connections these days are almost always
done with TCP 1433.
I figured this out with a difficult phpBB installation and using Wireshark
(formerly Ethereal) to watch network traffic. There is a registry hack that
can force the SQL Server Client program to use TCP 1433, but this hack's
effects on other software is unknown.
For more info, see
[url]http://people.smu.edu/acambre/blog/2006/09/22/Buggy+PHP.aspx[/url] and
[url]http://www.phpbb.com/phpBB/viewtopic.php?t=446662&postdays=0&postorder=asc&st art=0[/url]
Reproduce code:
---------------
Just use mssql_connect to connect to an external database.
Expected result:
----------------
The database should open just as if the database is on localhost.
Actual result:
--------------
Usually a cannot connect error.
--
Edit bug report at [url]http://bugs.php.net/?id=38965&edit=1[/url]
--
Try a CVS snapshot (PHP 4.4): [url]http://bugs.php.net/fix.php?id=38965&r=trysnapshot44[/url]
Try a CVS snapshot (PHP 5.2): [url]http://bugs.php.net/fix.php?id=38965&r=trysnapshot52[/url]
Try a CVS snapshot (PHP 6.0): [url]http://bugs.php.net/fix.php?id=38965&r=trysnapshot60[/url]
Fixed in CVS: [url]http://bugs.php.net/fix.php?id=38965&r=fixedcvs[/url]
Fixed in release: [url]http://bugs.php.net/fix.php?id=38965&r=alreadyfixed[/url]
Need backtrace: [url]http://bugs.php.net/fix.php?id=38965&r=needtrace[/url]
Need Reproduce Script: [url]http://bugs.php.net/fix.php?id=38965&r=needscript[/url]
Try newer version: [url]http://bugs.php.net/fix.php?id=38965&r=oldversion[/url]
Not developer issue: [url]http://bugs.php.net/fix.php?id=38965&r=support[/url]
Expected behavior: [url]http://bugs.php.net/fix.php?id=38965&r=notwrong[/url]
Not enough info: [url]http://bugs.php.net/fix.php?id=38965&r=notenoughinfo[/url]
Submitted twice: [url]http://bugs.php.net/fix.php?id=38965&r=submittedtwice[/url]
register_globals: [url]http://bugs.php.net/fix.php?id=38965&r=globals[/url]
PHP 3 support discontinued: [url]http://bugs.php.net/fix.php?id=38965&r=php3[/url]
Daylight Savings: [url]http://bugs.php.net/fix.php?id=38965&r=dst[/url]
IIS Stability: [url]http://bugs.php.net/fix.php?id=38965&r=isapi[/url]
Install GNU Sed: [url]http://bugs.php.net/fix.php?id=38965&r=gnused[/url]
Floating point limitations: [url]http://bugs.php.net/fix.php?id=38965&r=float[/url]
No Zend Extensions: [url]http://bugs.php.net/fix.php?id=38965&r=nozend[/url]
MySQL Configuration Error: [url]http://bugs.php.net/fix.php?id=38965&r=mysqlcfg[/url]
aren at cambre dot biz Guest
-
#40034 [NEW]: mssql_connect(): Unable to connect to server
From: chris dot clos at lmcu dot org Operating system: Windows Server 2003 PHP version: 5.2.0 PHP Bug Type: MSSQL related... -
mssql_connect
does anyone know what i have to do to be able to call the function mssql_connect in php? right now, it says: <b>Fatal error</b>: Call to... -
#25920 [NEW]: mssql_connect bad behaviour
From: morphy at 6deex dot net Operating system: win2k svr PHP version: Irrelevant PHP Bug Type: Feature/Change Request Bug... -
[PHP - MSSQL]: Problem with mssql_connect
Please help!... I have to use 'apache+php' connect to MSSQL Server 2000 in Windows Server 2003, but there are problem. Computer A: Windows... -
[PHP] ANY ONE CAN TELL ME WHAT PORT mssql_connect uses?
On Tuesday, July 15, 2003, 11:00:27 AM, Nabil wrote: N> I have an Linux server running Apache/PHP/MySQL. N> and I need to connect to another... -
tony2001@php.net #2
#38965 [Opn->Asn]: mssql_connect doesn't use TCP 1433 for external SQL Server
ID: 38965
Updated by: [email]tony2001@php.net[/email]
Reported By: aren at cambre dot biz
-Status: Open
+Status: Assigned
Bug Type: MSSQL related
Operating System: Windows 2003 (for both servers)
PHP Version: 4.4.4
-Assigned To:
+Assigned To: fmk
New Comment:
Frank, is this really a PHP problem?
Previous Comments:
------------------------------------------------------------------------
[2006-09-26 17:16:54] aren at cambre dot biz
Description:
------------
When using mssql_connect to connect to a SQL Server database on a
remote server, PHP attemtps to connect using named pipes. This is a
terribly outdated behavior; SQL Server connections these days are
almost always done with TCP 1433.
I figured this out with a difficult phpBB installation and using
Wireshark (formerly Ethereal) to watch network traffic. There is a
registry hack that can force the SQL Server Client program to use TCP
1433, but this hack's effects on other software is unknown.
For more info, see
[url]http://people.smu.edu/acambre/blog/2006/09/22/Buggy+PHP.aspx[/url] and
[url]http://www.phpbb.com/phpBB/viewtopic.php?t=446662&postdays=0&postorder=asc&st art=0[/url]
Reproduce code:
---------------
Just use mssql_connect to connect to an external database.
Expected result:
----------------
The database should open just as if the database is on localhost.
Actual result:
--------------
Usually a cannot connect error.
------------------------------------------------------------------------
--
Edit this bug report at [url]http://bugs.php.net/?id=38965&edit=1[/url]
tony2001@php.net Guest
-
fmk@php.net #3
#38965 [Asn->Bgs]: mssql_connect doesn't use TCP 1433 for external SQL Server
ID: 38965
Updated by: [email]fmk@php.net[/email]
Reported By: aren at cambre dot biz
-Status: Assigned
+Status: Bogus
Bug Type: MSSQL related
Operating System: Windows 2003 (for both servers)
PHP Version: 4.4.4
Assigned To: fmk
New Comment:
No PHP uses ntwdblib and if you install the Client tools from MSSQL
server you can define the default protocol. Older versions of ntwdblib
(or combinations of other MS tools installed) uses named pipes as the
default.
The best way is to install the Client Tools and us the Clinet Network
utility to set default protocol as well as create aliases for different
servers. Each alias can be defined with the prefered protocol.
Previous Comments:
------------------------------------------------------------------------
[2006-09-26 17:25:21] [email]tony2001@php.net[/email]
Frank, is this really a PHP problem?
------------------------------------------------------------------------
[2006-09-26 17:16:54] aren at cambre dot biz
Description:
------------
When using mssql_connect to connect to a SQL Server database on a
remote server, PHP attemtps to connect using named pipes. This is a
terribly outdated behavior; SQL Server connections these days are
almost always done with TCP 1433.
I figured this out with a difficult phpBB installation and using
Wireshark (formerly Ethereal) to watch network traffic. There is a
registry hack that can force the SQL Server Client program to use TCP
1433, but this hack's effects on other software is unknown.
For more info, see
[url]http://people.smu.edu/acambre/blog/2006/09/22/Buggy+PHP.aspx[/url] and
[url]http://www.phpbb.com/phpBB/viewtopic.php?t=446662&postdays=0&postorder=asc&st art=0[/url]
Reproduce code:
---------------
Just use mssql_connect to connect to an external database.
Expected result:
----------------
The database should open just as if the database is on localhost.
Actual result:
--------------
Usually a cannot connect error.
------------------------------------------------------------------------
--
Edit this bug report at [url]http://bugs.php.net/?id=38965&edit=1[/url]
fmk@php.net Guest
-
aren at cambre dot biz #4
#38965 [Bgs]: mssql_connect doesn't use TCP 1433 for external SQL Server
ID: 38965
User updated by: aren at cambre dot biz
Reported By: aren at cambre dot biz
Status: Bogus
Bug Type: MSSQL related
Operating System: Windows 2003 (for both servers)
PHP Version: 4.4.4
Assigned To: fmk
New Comment:
This ntwdblib was on a default installation of Windows Server 2003.
Previous Comments:
------------------------------------------------------------------------
[2006-09-26 17:35:43] [email]fmk@php.net[/email]
No PHP uses ntwdblib and if you install the Client tools from MSSQL
server you can define the default protocol. Older versions of ntwdblib
(or combinations of other MS tools installed) uses named pipes as the
default.
The best way is to install the Client Tools and us the Clinet Network
utility to set default protocol as well as create aliases for different
servers. Each alias can be defined with the prefered protocol.
------------------------------------------------------------------------
[2006-09-26 17:25:21] [email]tony2001@php.net[/email]
Frank, is this really a PHP problem?
------------------------------------------------------------------------
[2006-09-26 17:16:54] aren at cambre dot biz
Description:
------------
When using mssql_connect to connect to a SQL Server database on a
remote server, PHP attemtps to connect using named pipes. This is a
terribly outdated behavior; SQL Server connections these days are
almost always done with TCP 1433.
I figured this out with a difficult phpBB installation and using
Wireshark (formerly Ethereal) to watch network traffic. There is a
registry hack that can force the SQL Server Client program to use TCP
1433, but this hack's effects on other software is unknown.
For more info, see
[url]http://people.smu.edu/acambre/blog/2006/09/22/Buggy+PHP.aspx[/url] and
[url]http://www.phpbb.com/phpBB/viewtopic.php?t=446662&postdays=0&postorder=asc&st art=0[/url]
Reproduce code:
---------------
Just use mssql_connect to connect to an external database.
Expected result:
----------------
The database should open just as if the database is on localhost.
Actual result:
--------------
Usually a cannot connect error.
------------------------------------------------------------------------
--
Edit this bug report at [url]http://bugs.php.net/?id=38965&edit=1[/url]
aren at cambre dot biz Guest
-
aren at cambre dot biz #5
#38965 [Bgs->Opn]: mssql_connect doesn't use TCP 1433 for external SQL Server
ID: 38965
User updated by: aren at cambre dot biz
Reported By: aren at cambre dot biz
-Status: Bogus
+Status: Open
Bug Type: MSSQL related
Operating System: Windows 2003 (for both servers)
PHP Version: 4.4.4
Assigned To: fmk
New Comment:
Lemme add some more info:
The IIS (web) server is a really vanilla Windows Server 2003 box. All
that is installed, per Add or Remove Programs, is McAfee VirusScan
Enterprise, Microsoft .NET Framework 2.0, PHP 4.4.4, and WMware Tools
(it's virtual). I also installed Wireshark 0.99.3 and WinPcap 3.1, but
they were installed afte the fact and did not affect the issue.
If PHP's SQL Server connect script doesn't work right on a vanilla box,
I can't believe this is "bogus". SQL Server or SQL Server Client Tools
has never been installed on this box.
Programs should adhere to industry standard behaviors on vanilla
Windows boxes, and industry standard for talking to SQL Server is TCP
1433. If PHP is not doing it, it needs to be fixed or properly
documented.
It may be as simply as classifying this as a documentation bug and
adding documentation that addresses the issue, if that is the proper
solution.
Previous Comments:
------------------------------------------------------------------------
[2006-09-26 18:23:45] aren at cambre dot biz
This ntwdblib was on a default installation of Windows Server 2003.
------------------------------------------------------------------------
[2006-09-26 17:35:43] [email]fmk@php.net[/email]
No PHP uses ntwdblib and if you install the Client tools from MSSQL
server you can define the default protocol. Older versions of ntwdblib
(or combinations of other MS tools installed) uses named pipes as the
default.
The best way is to install the Client Tools and us the Clinet Network
utility to set default protocol as well as create aliases for different
servers. Each alias can be defined with the prefered protocol.
------------------------------------------------------------------------
[2006-09-26 17:25:21] [email]tony2001@php.net[/email]
Frank, is this really a PHP problem?
------------------------------------------------------------------------
[2006-09-26 17:16:54] aren at cambre dot biz
Description:
------------
When using mssql_connect to connect to a SQL Server database on a
remote server, PHP attemtps to connect using named pipes. This is a
terribly outdated behavior; SQL Server connections these days are
almost always done with TCP 1433.
I figured this out with a difficult phpBB installation and using
Wireshark (formerly Ethereal) to watch network traffic. There is a
registry hack that can force the SQL Server Client program to use TCP
1433, but this hack's effects on other software is unknown.
For more info, see
[url]http://people.smu.edu/acambre/blog/2006/09/22/Buggy+PHP.aspx[/url] and
[url]http://www.phpbb.com/phpBB/viewtopic.php?t=446662&postdays=0&postorder=asc&st art=0[/url]
Reproduce code:
---------------
Just use mssql_connect to connect to an external database.
Expected result:
----------------
The database should open just as if the database is on localhost.
Actual result:
--------------
Usually a cannot connect error.
------------------------------------------------------------------------
--
Edit this bug report at [url]http://bugs.php.net/?id=38965&edit=1[/url]
aren at cambre dot biz Guest
-
fmk@php.net #6
#38965 [Opn->Bgs]: mssql_connect doesn't use TCP 1433 for external SQL Server
ID: 38965
Updated by: [email]fmk@php.net[/email]
Reported By: aren at cambre dot biz
-Status: Open
+Status: Bogus
Bug Type: MSSQL related
Operating System: Windows 2003 (for both servers)
PHP Version: 4.4.4
Assigned To: fmk
New Comment:
The MSSQL Extension for PHP uses ntwdblib as the library to connect to
teh server. The configuration of this library is done with MS SQL
Server Client Tools. These tools are installed from the CD and can be
installed without the rest of the server to allow remote connections to
the server.
If ntwdblib.dll is copied to the server one way or the other, there is
no way (except for registry hacks) to configure the library. PHP is not
responsible for installation of a Microsoft tool or any other 3rd party
libraries, but we expect them to be installed correct.
There is no bugs in PHP here.
Previous Comments:
------------------------------------------------------------------------
[2006-09-26 19:15:13] aren at cambre dot biz
Lemme add some more info:
The IIS (web) server is a really vanilla Windows Server 2003 box. All
that is installed, per Add or Remove Programs, is McAfee VirusScan
Enterprise, Microsoft .NET Framework 2.0, PHP 4.4.4, and WMware Tools
(it's virtual). I also installed Wireshark 0.99.3 and WinPcap 3.1, but
they were installed afte the fact and did not affect the issue.
If PHP's SQL Server connect script doesn't work right on a vanilla box,
I can't believe this is "bogus". SQL Server or SQL Server Client Tools
has never been installed on this box.
Programs should adhere to industry standard behaviors on vanilla
Windows boxes, and industry standard for talking to SQL Server is TCP
1433. If PHP is not doing it, it needs to be fixed or properly
documented.
It may be as simply as classifying this as a documentation bug and
adding documentation that addresses the issue, if that is the proper
solution.
------------------------------------------------------------------------
[2006-09-26 18:23:45] aren at cambre dot biz
This ntwdblib was on a default installation of Windows Server 2003.
------------------------------------------------------------------------
[2006-09-26 17:35:43] [email]fmk@php.net[/email]
No PHP uses ntwdblib and if you install the Client tools from MSSQL
server you can define the default protocol. Older versions of ntwdblib
(or combinations of other MS tools installed) uses named pipes as the
default.
The best way is to install the Client Tools and us the Clinet Network
utility to set default protocol as well as create aliases for different
servers. Each alias can be defined with the prefered protocol.
------------------------------------------------------------------------
[2006-09-26 17:25:21] [email]tony2001@php.net[/email]
Frank, is this really a PHP problem?
------------------------------------------------------------------------
[2006-09-26 17:16:54] aren at cambre dot biz
Description:
------------
When using mssql_connect to connect to a SQL Server database on a
remote server, PHP attemtps to connect using named pipes. This is a
terribly outdated behavior; SQL Server connections these days are
almost always done with TCP 1433.
I figured this out with a difficult phpBB installation and using
Wireshark (formerly Ethereal) to watch network traffic. There is a
registry hack that can force the SQL Server Client program to use TCP
1433, but this hack's effects on other software is unknown.
For more info, see
[url]http://people.smu.edu/acambre/blog/2006/09/22/Buggy+PHP.aspx[/url] and
[url]http://www.phpbb.com/phpBB/viewtopic.php?t=446662&postdays=0&postorder=asc&st art=0[/url]
Reproduce code:
---------------
Just use mssql_connect to connect to an external database.
Expected result:
----------------
The database should open just as if the database is on localhost.
Actual result:
--------------
Usually a cannot connect error.
------------------------------------------------------------------------
--
Edit this bug report at [url]http://bugs.php.net/?id=38965&edit=1[/url]
fmk@php.net Guest
-
aren at cambre dot biz #7
#38965 [Bgs->Opn]: mssql_connect doesn't use TCP 1433 for external SQL Server
ID: 38965
User updated by: aren at cambre dot biz
Reported By: aren at cambre dot biz
-Status: Bogus
+Status: Open
Bug Type: MSSQL related
Operating System: Windows 2003 (for both servers)
PHP Version: 4.4.4
Assigned To: fmk
New Comment:
There is a clear documentation error. From
[url]http://us3.php.net/manual/en/ref.mssql.php:[/url] "The Client Tools can be
installed ... by copying ntwdblib.dll from \winnt\system32 on the
server to \winnt\system32 on the PHP box. Copying ntwdblib.dll will
only provide access. Configuration of the client will require
installation of all the tools."
The method suggested by the manual, simply copying the ntwdblib.dll,
will force PHP to use named pipes. This needs to be documented. Until
then, you have a documentation bug because PHP will be unable to talk
to SQL Server in its industry standard configuration (i.e., TCP 1433,
not named pipes) if you simply copy the DLL on a machine that does not
have the SQL Server Client Tools installed.
Previous Comments:
------------------------------------------------------------------------
[2006-09-27 21:23:56] [email]fmk@php.net[/email]
The MSSQL Extension for PHP uses ntwdblib as the library to connect to
teh server. The configuration of this library is done with MS SQL
Server Client Tools. These tools are installed from the CD and can be
installed without the rest of the server to allow remote connections to
the server.
If ntwdblib.dll is copied to the server one way or the other, there is
no way (except for registry hacks) to configure the library. PHP is not
responsible for installation of a Microsoft tool or any other 3rd party
libraries, but we expect them to be installed correct.
There is no bugs in PHP here.
------------------------------------------------------------------------
[2006-09-26 19:15:13] aren at cambre dot biz
Lemme add some more info:
The IIS (web) server is a really vanilla Windows Server 2003 box. All
that is installed, per Add or Remove Programs, is McAfee VirusScan
Enterprise, Microsoft .NET Framework 2.0, PHP 4.4.4, and WMware Tools
(it's virtual). I also installed Wireshark 0.99.3 and WinPcap 3.1, but
they were installed afte the fact and did not affect the issue.
If PHP's SQL Server connect script doesn't work right on a vanilla box,
I can't believe this is "bogus". SQL Server or SQL Server Client Tools
has never been installed on this box.
Programs should adhere to industry standard behaviors on vanilla
Windows boxes, and industry standard for talking to SQL Server is TCP
1433. If PHP is not doing it, it needs to be fixed or properly
documented.
It may be as simply as classifying this as a documentation bug and
adding documentation that addresses the issue, if that is the proper
solution.
------------------------------------------------------------------------
[2006-09-26 18:23:45] aren at cambre dot biz
This ntwdblib was on a default installation of Windows Server 2003.
------------------------------------------------------------------------
[2006-09-26 17:35:43] [email]fmk@php.net[/email]
No PHP uses ntwdblib and if you install the Client tools from MSSQL
server you can define the default protocol. Older versions of ntwdblib
(or combinations of other MS tools installed) uses named pipes as the
default.
The best way is to install the Client Tools and us the Clinet Network
utility to set default protocol as well as create aliases for different
servers. Each alias can be defined with the prefered protocol.
------------------------------------------------------------------------
[2006-09-26 17:25:21] [email]tony2001@php.net[/email]
Frank, is this really a PHP problem?
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
[url]http://bugs.php.net/38965[/url]
--
Edit this bug report at [url]http://bugs.php.net/?id=38965&edit=1[/url]
aren at cambre dot biz Guest
-
mds135 at yahoo dot co dot uk #8
#38965 [Com]: mssql_connect doesn't use TCP 1433 for external SQL Server
ID: 38965
Comment by: mds135 at yahoo dot co dot uk
Reported By: aren at cambre dot biz
Status: Open
Bug Type: MSSQL related
Operating System: Windows 2003 (for both servers)
PHP Version: 4.4.4
Assigned To: fmk
New Comment:
We have the same problem, where we get the message "mssql_Connect() not
a defined function.
We are using version 4.4.5 of PHP on Windows Server 2003.
We have found out from forums that we should use an older version of
the ntwdblib.dll, but we are unable to find an older version.
We use HTMLkit as an editor, and connection works fine when we display
the page in the editor's preview. The problem occurs when we use the
browser, MS Explorer 6 with SP1.
This is extremly important to us.
Previous Comments:
------------------------------------------------------------------------
[2006-09-28 03:18:55] aren at cambre dot biz
There is a clear documentation error. From
[url]http://us3.php.net/manual/en/ref.mssql.php:[/url] "The Client Tools can be
installed ... by copying ntwdblib.dll from \winnt\system32 on the
server to \winnt\system32 on the PHP box. Copying ntwdblib.dll will
only provide access. Configuration of the client will require
installation of all the tools."
The method suggested by the manual, simply copying the ntwdblib.dll,
will force PHP to use named pipes. This needs to be documented. Until
then, you have a documentation bug because PHP will be unable to talk
to SQL Server in its industry standard configuration (i.e., TCP 1433,
not named pipes) if you simply copy the DLL on a machine that does not
have the SQL Server Client Tools installed.
------------------------------------------------------------------------
[2006-09-27 21:23:56] [email]fmk@php.net[/email]
The MSSQL Extension for PHP uses ntwdblib as the library to connect to
teh server. The configuration of this library is done with MS SQL
Server Client Tools. These tools are installed from the CD and can be
installed without the rest of the server to allow remote connections to
the server.
If ntwdblib.dll is copied to the server one way or the other, there is
no way (except for registry hacks) to configure the library. PHP is not
responsible for installation of a Microsoft tool or any other 3rd party
libraries, but we expect them to be installed correct.
There is no bugs in PHP here.
------------------------------------------------------------------------
[2006-09-26 19:15:13] aren at cambre dot biz
Lemme add some more info:
The IIS (web) server is a really vanilla Windows Server 2003 box. All
that is installed, per Add or Remove Programs, is McAfee VirusScan
Enterprise, Microsoft .NET Framework 2.0, PHP 4.4.4, and WMware Tools
(it's virtual). I also installed Wireshark 0.99.3 and WinPcap 3.1, but
they were installed afte the fact and did not affect the issue.
If PHP's SQL Server connect script doesn't work right on a vanilla box,
I can't believe this is "bogus". SQL Server or SQL Server Client Tools
has never been installed on this box.
Programs should adhere to industry standard behaviors on vanilla
Windows boxes, and industry standard for talking to SQL Server is TCP
1433. If PHP is not doing it, it needs to be fixed or properly
documented.
It may be as simply as classifying this as a documentation bug and
adding documentation that addresses the issue, if that is the proper
solution.
------------------------------------------------------------------------
[2006-09-26 18:23:45] aren at cambre dot biz
This ntwdblib was on a default installation of Windows Server 2003.
------------------------------------------------------------------------
[2006-09-26 17:35:43] [email]fmk@php.net[/email]
No PHP uses ntwdblib and if you install the Client tools from MSSQL
server you can define the default protocol. Older versions of ntwdblib
(or combinations of other MS tools installed) uses named pipes as the
default.
The best way is to install the Client Tools and us the Clinet Network
utility to set default protocol as well as create aliases for different
servers. Each alias can be defined with the prefered protocol.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
[url]http://bugs.php.net/38965[/url]
--
Edit this bug report at [url]http://bugs.php.net/?id=38965&edit=1[/url]
mds135 at yahoo dot co dot uk Guest



Reply With Quote

