Hallo Phillip, vielen Dank.
Ich kenn die Verzeichnisse mittlerweile auswendig libmysql.dll ist im php verzeichnis drin. Ich hab jetzt versucht mit apache 2.0.63 statt mit 2.2.x weil irgendwo in den foren stand, dass apache 2.2.x nicht so gut mit MySQL 5.xx kann. aber es hat auch nichts geholfen. Jetzt hab ich die regedit von mssql einträgen bereinigt in der hoffung, dass das etwas bringt.
Nein es hat nichts gebracht. Anstelle von MySQL wir immer nun MSSQL erkannt. Auch eine erneute Neuinstallation von php 5.2.6. und Apache 2.2.3 hat nichts gebracht.
Hallo Philipp
sieht so aus, dass ich das Problem einkreisen konnte. In der Tat war deine Vermutung richtig und es liegt offenbar darn, dass php die php_mysql.dll und die php_mysqli.dll nicht läd. Die Einstellungen in der php.ini sind aber korrekt, da ich probeweise die PHP Installation so geändert habe, dass ich die Extensions von MSSQL SERVER 2000+ ; Oracle; PostgreSQL und SQLite mitinstalliert habe. Das Ergebnis der "Installation-Kompatibilität" hat sich nun Gott sei Dank geändert. Das seltsame war nun aber, dass nur MSSQL SERVER 2000+ und SQLite als verfügbar angezeigt wurden (zusätzlich zum bestehenden MSSQL Server 2000+ über ODBC natürlich). Somit müssen grundsätzlich alle Einstellungen in php.ini und httpd.conf richtig sein, da es ja funktioniert. Allerdings nicht für MySQL, MySQLi sowie auch nicht für Oracle und Postgre (Die Firebird-dll hab ich nicht installiert, da ich in der Auswahlliste wärend der Installation keine "sprechende" Bezeichnung dazu finden konnte). Irgendwas scheint somit an den Extension DLL's in der PHP 5.2.6 Distibution faul zu sein...einige funktionieren andere aber nicht. Eventuell doch ein x64 Problem?
Kein Support per PN! Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler) Meine Mods
z.z. nur quasi die hw, der 1und1 virtual server. ist eine amd x64 maschine, os: windows 2003. sämtliche sw (MySQL, PHP, Apache), läuft als 32bit anwendung.
Dann sollte das eigentlich kein Problem sein.
Ich bin jetzt mit Apache nicht wirklich fit. Prüf doch mal, ob da iregendeine Log-Datei existiert. Das die Zeile auskommentiert ist, bedeutet nicht, dass die DLL auch erfolgreich geladen werden kann. Der IIS würde da beim Start eine Fehlermeldung auswerfen.
Gruß, Philipp
Kein Support per PN! Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler) Meine Mods
Hallo Philipp, genau richtig deine Vermutung. In der error.log von Apache gibt's Folgendes zu lesen:
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\Program Files (x86)\\PHP\\ext\\php_mysqli.dll' - The specified procedure could not be found.\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\Program Files (x86)\\PHP\\ext\\php_mysql.dll' - The specified procedure could not be found.\r\n in Unknown on line 0
Ich hab, um nochmals die Pfad-Konfiguration für die Extensions zu prüfen, erneut die MSSQL Extension mit reininstalliert. In der php.ini sind jetzt drei Extensions gelistet (mssql, mysql, mysqli). MSSQL wird tadellos als verfügbar angezeigt. Die log-datei zeigt hier auch keinen Fehler. Die anderen beiden werden, wie oben schon zu sehen, angemeckert.
Eine andere Möglichkeit wäre aber auch, dass die libmysql.dll im php-Verzeichnis nicht richtig gelesen wird. Das php-Verzeichnis ist aber richtig in der httpd.conf eingerichtet, da Apache sonst erst garnicht php-Seiten richtig anzeigen würde - sondern nur reinen php-Code.
Ich hab jetzt alle dll's (php_mysql.dll; php_mysqli.dll im ext-Verzeichnis und libmysql.dll im php-Verzeichnis) mit den Dateien aus der Parallel-Installation ausgetauscht - die, die ich zum Vergleich installiert habe und die auch funktioniert. Keine Veränderungen. Der Fehler s.o. kommt erneut. Es scheint, dass die Dateien in Ordnung sind - nur das Environment der beiden Installationen ist natürlich anders: Ein normaler Windows 32bit Rechner, hier funktioniert die Verfügbarkeits-Abfrage und ein als virtuell gehosteter x64 Server bei 1&1, wo's eben Probleme mit der MySQL Erkennung gibt.
Den gleichen Austausch habe ich jetzt mit der php.ini- und der httpd.conf-Datei gemacht. Die verifizierten Dateien aus der lauffähigen Installation mit denen in der fehlerhafte Installation getauscht. (Pfadangaben natürlich entsprechend angepasst. Statt Program Files - Program Files (x86) ergänzt.) Neustart von Apache lief prima. Fehler s.o. bleibt aber.
Meine Vermutung ist, dass die dll's doch irgendwie für x64 nicht geeignet sein könnten.
Also liegt die Schlussfolgerung nahe, dass auf 1&1 virtual Servern - Windows 2003 Standard x64 Edition auf Dual-Core AMD Opterion 2216 HE - PHP 5.2.6 in Kombination mit Apache 2.2.3 nicht läuft. Ursache bleibt aber unklar.
Die ODBC - SQLSRV32.dll für MSSQL steckt irgenwie im System drin. Hab die SQLSRV32.dll in "system 32" und "WOW64" umbenannt damit das System sie nicht sieht sowie die regedit von allen ODBC Treiber Einträgen befreit. In der ODBC-Treiber Verwaltung war dann auch alles verschwunden. Trotzdem wird der MSSQL ODBC Treiber bei der InstallationsPrüfung angezeigt. In der Tat. Sehr seltsam.