Hallo allemaal,
Mijn PHP script krijgt geen verbinding met m'n MS SQL 2005 database en ik heb geen flauw idee waarom niet. Ik heb 2 servers. Een development en een productie server. Beide servers draaien windows 2003. Beide servers draaien ook IIS 6 met PHP 5.2.3. Beide servers verbinden met dezelfde (externe) MS SQL 2005 database.Op beide servers staat dezelfde versie van ntwdblib.dll (2000.2.8.0). Op beide servers draait hetzelfde script. Op de developmentserver werkt het script probleemloos, op de productieserver niet. Het PHP script op de productieserver krijgt geen verbinding met MS SQL Server 2005. Ik heb al geprobeerd om naar IP te verbinden ipv hostname, maar ik kreeg toen hetzelfde probleem. Ik heb nslookup gedraaid op de productieserver, en hij werd ook goed geresolved. Ik heb toen Management Studio geinstalleerd op de productieserver om te kijken of er misschien een firewall probleem was, maar met Management Studio kon ik probleemloos verbinding maken. Het is dus echt een PHP probleem, maar niet in de code verwacht ik. Ik denk dat er ergens nog een file oid niet gevonden kan worden, maar ik heb totaal geen idee meer welke.
De developmentserver staat in het kantoor van m'n werk in Goirle. De productieserver hangt in het rack bij Redbus (Amsterdam dus). De MS SQL database wordt gewoon gehuurd bij een bedrijf. Die server is dus niet van ons en daar hebben we ook alleen maar 1 database. Dat bedrijf is hetzelfde bedrijf als waar de productieserver bij is weggehangen. Als ik tracert draai van de productieserver naar de databaseserver, dan hebben we het over 1 hop
.
Tenslotte nog een klein, ranzig, testscriptje wat perfect werkt op de development server maar niet op de productieserver:
Op de development server krijg ik netjes alle namen te zien. Op de productie server krijg ik alleen maar de tekst die ik zelf in or die() heb getikt. mssql_get_last_message() geeft totaal geen output. De foutmelding van PHP die er in m'n errorlog staat is de volgende (het is een productieserver, dus foutmeldingen komen in een log en niet op het scherm
):
Wie heeft er nog een idee wat er fout kan zijn op de productieserver?
Mijn PHP script krijgt geen verbinding met m'n MS SQL 2005 database en ik heb geen flauw idee waarom niet. Ik heb 2 servers. Een development en een productie server. Beide servers draaien windows 2003. Beide servers draaien ook IIS 6 met PHP 5.2.3. Beide servers verbinden met dezelfde (externe) MS SQL 2005 database.Op beide servers staat dezelfde versie van ntwdblib.dll (2000.2.8.0). Op beide servers draait hetzelfde script. Op de developmentserver werkt het script probleemloos, op de productieserver niet. Het PHP script op de productieserver krijgt geen verbinding met MS SQL Server 2005. Ik heb al geprobeerd om naar IP te verbinden ipv hostname, maar ik kreeg toen hetzelfde probleem. Ik heb nslookup gedraaid op de productieserver, en hij werd ook goed geresolved. Ik heb toen Management Studio geinstalleerd op de productieserver om te kijken of er misschien een firewall probleem was, maar met Management Studio kon ik probleemloos verbinding maken. Het is dus echt een PHP probleem, maar niet in de code verwacht ik. Ik denk dat er ergens nog een file oid niet gevonden kan worden, maar ik heb totaal geen idee meer welke.
De developmentserver staat in het kantoor van m'n werk in Goirle. De productieserver hangt in het rack bij Redbus (Amsterdam dus). De MS SQL database wordt gewoon gehuurd bij een bedrijf. Die server is dus niet van ons en daar hebben we ook alleen maar 1 database. Dat bedrijf is hetzelfde bedrijf als waar de productieserver bij is weggehangen. Als ik tracert draai van de productieserver naar de databaseserver, dan hebben we het over 1 hop
Tenslotte nog een klein, ranzig, testscriptje wat perfect werkt op de development server maar niet op de productieserver:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| <html> <head> <title>Een lijst met alle films in de database</title> </head> <body> <?php mssql_connect('hostname,1433', 'user', 'pass') or die('Geen verbinding. MSSQL retouneerde: '.mssql_get_last_message()); mssql_select_db('database') or die('Kon geen database selecteren. MSSQL retouneerde: '.mssql_get_last_message()); $result = mssql_query('SELECT naam FROM tabel') or die('Query klopt niet. MSSQL retouneerde: '.mssql_get_last_message()); while($rij = mssql_fetch_assoc($result)) { echo $rij['naam']."<br>\n"; } ?> </body> </html> |
Op de development server krijg ik netjes alle namen te zien. Op de productie server krijg ik alleen maar de tekst die ik zelf in or die() heb getikt. mssql_get_last_message() geeft totaal geen output. De foutmelding van PHP die er in m'n errorlog staat is de volgende (het is een productieserver, dus foutmeldingen komen in een log en niet op het scherm
code:
1
| [16-Jul-2007 15:54:14] PHP Warning: mssql_connect() [<a href='function.mssql-connect'>function.mssql-connect</a>]: Unable to connect to server: hostname,1433 in C:\Inetpub\test\test.php on line 7 |
Wie heeft er nog een idee wat er fout kan zijn op de productieserver?