• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

500 Serverfehler - IIS7 und MSSQL

soulxheart

Mitglied
Guten Tag!

Ich habe einen Windows Server 2008 mit IIS7 und einer MSSQL Datenbank. Diese würde ich gerne mit PHP auslesen und auf einer Webseite anzeigen lassen.

Dazu verwende ich folgenden Code:
Code:
    <?php
        $server = "mssql.servername.xx.ch";
        $user = "username";
        $pass = "passwort";
        
        $conn = mssql_connect($server, $user, $pass);
        if ($conn) {
            $select = mssql_select_db("datenbankname", $conn);
        }
        else {
            print "connection failed.";
        }
        
        $strSQL = "SELECT * FROM tbl_Aktiven";

        $rs = mssql_query($strSQL);
    
        while($row = mssql_fetch_array($rs)) {

            echo $row['Kontoname'] . "<br />";
        }

        mssql_close($conn);
    ?>

Wenn ich die Seite nun aufrufen will, kommt eine Fehlermeldung (Bild ist angehängt!).

Wie kann ich da vorgehen? Ich kenne mich mit Webservern so gut wie nicht aus, arbeite das erste Mal mit einem Server.



Grüsse
 

Anhänge

  • 500Error.jpg
    500Error.jpg
    5,3 KB · Aufrufe: 12
Werbung:
Funktioniert PHP überhaupt? Teste das mal mit diesem Script:
PHP:
<?php
   phpinfo();
?>
Ist die MS-SQL-Extension installiert?
Warum läuft dein Script weiter, wenn der Connect fehl schlägt?
Schreibe an den Anfang des Scriptes diese Zeilen:
PHP:
error_reporting(E_ALL);
ini_set("display_errors", true);
 
Hallo bdt600!

Ja, PHP funktioniert, Bild ist im Anhang.
PHPinfo.jpg
Wo kann ich das mit der Extension nachschauen?

Ich habe deine 2 Zeilen eingefügt und es kommt wieder der 500er Serverfehler...
 
Werbung:
Suche mal in der Ausgabe von phpinfo nach MS-SQL oder so ähnlich. Ich kann das bei mir nicht genau nachsehen, da ich MySQL benutze.
Und schreibe das
PHP:
        $conn = mssql_connect($server, $user, $pass);
        
        if ($conn) {
            $select = mssql_select_db("datenbankname", $conn);
        }
        else {
            print "connection failed.";
        }
um in
PHP:
        $conn = mssql_connect($server, $user, $pass)
           or die ("Connection failed");
           
        $select = mssql_select_db("datenbankname", $conn)
          or die ("Database not found");
 
Da ist nur mysql, mysqli und mysqlnd. Nur ganz oben im ersten Block bei Configure Command steht u.a. "--without-mssql" "--without-pdo-mssql" drin.

(Übrigens: Wenn ich mein Kontaktformular teste, klappt dies auch nicht. Sprich: die Mail wird nicht versendet.)

Es erscheint nun der Titel und folgende Meldung:

Fatal error: Call to undefined function mssql_connect() in C:\inetpub\wwwroot\dbconnect_Aktiven.php on line 23


Line 23 ist: $conn = mssql_connect($server, $user, $pass)
 
Tja, die MS-SQL-Extension ist nicht installiert. Du musst in der php.ini das Semikolon vor
Code:
;extension=php_mssql.dll
entfernen und danach den IIS neu starten. Welche php.ini gezogen wird, kannst du in der Ausgabe von phpinfo entnehmen, suche nach
Loaded Configuration File
Steht ziemlich am Anfang
 
Werbung:
Es befindet sich lediglich "extension=php_pdo_mssql.dll" in der php.ini und vor dem war das Semikolon bereits weg.

Bei Loaded Configuration File steht C:\PHP5\php.ini als Pfad.
 
Sieh' mal nach, ob du die php_mssql.dll im Extension-Verzeichnis von PHP finden kannst. Wenn ja, dann trage die Zeile einfach ein.
 
Werbung:
Oh, okay. Dann werde ich mir die Datenbank mit MySQL anlegen müssen. Da muss ich einfach MySQL auf dem Windows Server 2008 installieren? Geht das mit IIS oder braucht's da Apache?

@bdt600: Die php_mssql.dll-Extension ist dort nicht vorhanden. Nur die php_mysql.dll.
 
Du kannst problemlos MySQL auf dem Server installieren. Wenn du Windows Server 2008 x64 hast, solltest du dann auch die 64 Bit-Version von MySQL nehmen.

Was mich etwas wundert, dass die MS-SQL-Extsion nicht bei deiner PHP-Version dabei ist. Dachte, die wird automatisch bei PHP mitgeliefert.

Nachtrag:
Habe gerade gelesen, dass die php_mssql.dll nur bis Version 5.3.1 mitgeliefert wurde. Du könntest diese Version besorgen und daraus die Dll kopieren. Soll funktionieren, aber ohne Gewähr.
 
Zuletzt bearbeitet von einem Moderator:
Werde nun MySQL installieren - hoffentlich bekomme ich das hin. ;)

Muss ich da vorher MSSQL deinstallieren oder kann ich das drauflassen? Kann ich die MSSQL-Datenbank dann irgendwie in eine MySQL umwandeln oder kann ich alle Daten nochmals manuell einlesen?

Nachtrag: phpinfo(); zeigt mir Version 5.3.13 an.
 
Werbung:
MySQL zu installieren ist nicht wirklich schwer. Entweder nimmst du die Installer-Version, die regelt fast alles von alleine. Oder du nimmst die gezippte Version und passt selber an. Ich nehme immer die gezippte Version, so bleiben mir die ganzen Registry-Einträge erspart. Man muss MySQL nur händisch als Dienst einrichten.

Ob es bei MS-SQL eine Export-Funktion gibt oder nicht, kann ich dir nicht sagen. Ansonsten gibt es meines Wissens nach Converter.
 
Werbung:
Guten Tag

Entschuldigt, dass ich mich nicht gemeldet habe, aber ich war krank und konnte nicht arbeiten gehen.

Ich wollte nun MySQL installieren, da kommt folgende Meldung:

"The remote server returned an error: (407) Proxy Authentication Required".

Soll ich das ignorieren und weiterfahren oder muss ich da was machen?



Grüsse
 
Zurück
Oben