Thread Verfasser: Hendrik
Thread ID: 1651
Thread Info
Es gibt 5 Beiträge zu diesem Thema, und es wurde 1684 Mal angesehen.
 Thema drucken
Unable to connect ...
Hendrik
Moin moin,

ich habe probleme bei der Installation von PHP-Fusion - Version 9.03.00
unter dem Menüpunkt Database Settings komme ich nicht weiter.
Die Meldung lautet Unable to connect with MySQL database.

Ich kenne mich jetzt nicht sonderlich aus,
habe aber schon so ein paar Dinge durchprobiert,
wie bspw. beim Dateienupload den FTP-Transfermodus von Auto auf Binär umgestellen usw.


Im Moment vermute ich:

Wenn ich mir vom fireFox den Seitenquelltext der abgeschickten install.php anzeigen lasse
fallen mir unterschiede in den übergebenen values von db_name und db_user auf,
ich glaube da wird etwas mit str_replace geändert.

Ich habe ein WebPack bei hostEurope wo ich den db_Name und db_Username
bereits mit einem Minuszeichen im Namen versehen vorgegeben bekomme
und daran kann ich leider nichts ändern.

Die values der Textfelder fülle ich also (mit Minuszeichen) etwa wie folgt aus
'dbName-xyz' bzw 'dbUser-abc',
scheinbar übergibt die install.php jedoch (mit Unterstrich)
'dbName_xyz' bzw 'dbUser_abc'.

Wo kann ich was dagegen tun bzw. welche Datei und Funktion ist dafür Verantwortlich?


Gab es dies Thema evtl schon mal? Leider habe ich über Suchfunktion nichts passendes gefunden und bin Ratlos.
Vielleicht sind meine Suchkriterien ja auch nur falsch, ein hinweis oder Link würde mir dann evtl. schon weiterhelfen,
oder liegt der Fehler evtl komplett wo ganz anders?


Vielen dank für eure Unterstützung,
MfG Hendrik
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Krelli
Möglicherweise musst du als Datenbankserver etwas anderes als "localhost" angeben, hierzu am besten deinen Anbieter kontaktieren oder im Webspace-Panel prüfen.
Information:
PHP Version: 8.2.x •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: IPv9-DE-MOD
 
Hendrik
Hallo Systemweb,

danke für Deine Antwort.


die Angabe localhost ist bei meinem Hoster die korrekte Angabe, das hatte im Vorfeld schon geprüft und ausgeschlossen sry.

Aus lauter Frust habe ich zwischenzeitlich sogar ein anderes CMS mit dieser Angabe erfolgreich installiert (und wieder gelöscht).


Okay gut,
gestern nach deiner Antwort habe ich mir mal die Installationsdateien vom PHP-Fusion (Version 9.03) angesehen,
für mich sind das zwar alles alt-Ägyptischen Hieroglyphen aber sei's drum.

im Verzeichnis: PHP-Fusion 9.03.00.zip\files\includes\classes\PHPFusion\Installer\Steps\
in der Datei: DatabaseSetup.inc
die private function: dispatch_tables (ab Zeile: 123)
da heißt es, in einem PHP Kommentar (Zeile 144): Do not allow -
Ausgeschrieben also: Do not allow *Minus*
Übersetzt per Translator: Minus nicht zulassen

Also habe ich in Zeile 147 den Unterstrich zu einem Minus abgewandelt und siehe da die db-Einträge wurden Erstellt,
das Script arbeitet dann zwar nicht weiter und ich finde auch keine config_temp.php - aber ich bin schon mal einen Schritt weitergekommen.


Jetzt im Nachgang scheint mir zwar logischer anstelle der Änderung in der foreach Schleife,
einfach darüber in der IF-Abfrage, den db_user und den db_name zu Klammern,... aber gut (kann man ja immer noch probieren).


Nun ist ja ein weiterer Tag vergangen und ich habe mir mal die PHP-Fusion Version neun punkt duppel-Null herunter geladen und sehe,
die ganze str_replace Geschichte ist dort gar nicht drinne.

Ergo versuche ich morgen mal die 9.0 zu installieren und upgarde dann einfach auf die 9.03


Haben die Progger das da aus irgend welchen Sicherheitsgründen rein ge'scripted?


MfG
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Krelli
Vergiss meinen ersten Beitrag, der hatte mit deinem Problem gar nichts zu tun. Weiß auch nicht, wo ich da gerade meine Gedanken hatte...

Das Minuszeichen kann in mehreren Fällen insbesondere auf Linux-Servern zu Problemen führen.
Wenn ich beispielsweise Dateioperationen ausführen möchte und die Datei enthält ein Minus, wird alles was dahinter steht als Befehlsparameter interpretiert.
Ein Befehl für eine Dateioperation wäre:
rm irgendein-Ordner (Löschen eines Ordners bzw. einer Datei)
Hier wird aber -Ordner als Parameter erkannt, den dieser Befehl gar nicht kennt. Der Befehl rm unterstützt zum Beispiel den Parameter -r, welcher dafür sorgt dass der zu löschende Ordner rekursiv gelöscht wird. Also soll er inkl. darin enthaltener Dateien gelöscht werden. Aus solchen Gründen sollten vorsorglich niemals Dateien ein Minuszeichen enthalten. Das ist der Grund, warum man so oft Dateinamen mit Unterstrichen sieht, wo Minus vielleicht schöner aussehen würde. Programmierer und echte Webmaster wissen das, darum verwenden sie niemals ein Minus in Datei- und Ordnernamen.
In diesem Fall kann man nur erfolgreich löschen, wenn man den Ordner- bzw. Dateiname in "" schreibt:
rm "irgendein-Ordner" (somit wird -Ordner nicht mehr als Parameter interpretiert)

Nun denke ich mal, die Entwickler hatten genau das im Hinterkopf, als sie das Minuszeichen zensiert haben. An dieser Stelle finde ich es zwar halbherzig umgesetzt, denn offenbar werden alle Angaben zur Datenbankverbindung gleichermaßen zensiert, also auch Benutzername und das Passwort. Enthalten diese ein Minus, wird es einfach unbemerkt in Unterstrich gewandelt und du bekommst niemals heraus, warum du keine Verbindung zur Datenbank herstellen kannst (außer du prüfst den Inhalt der config_temp.php wenn vorhanden).

Nun hast du eine Datenbank, die dummerweise ein Minuszeichen enthält. Solche Datenbanknamen sollte es eigentlich überhaupt nicht geben, denn auch Datenbanken werden als Dateien abgelegt. Ich weiß nicht warum HE so einen Unfug treibt und dir solche Daten liefert. Möglicherweise befindet sich deine Datenbank auf einem Windows-Server oder da war ein Spaßvogel unter den Technikern. Ich hatte HE von früher als professioneller in Erinnerung, aber das ist lange her.
Information:
PHP Version: 8.2.x •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: IPv9-DE-MOD
 
Hendrik
Vielen Dank für Deine auführliche und verständliche Antwort.

Die config_temp.php kann ich natürlich nicht einsehen (sie wird ja nicht geschrieben).


Bei HE habe ich dass mit dem Minus-Zeichen im DB-Namen (nach Deinem Post) auch mal per Chat hinterfragt und einen pfiffigen Verkäufer dran gehabt,

die Sinngemäße Aussage war "das Minus-Zeichen im DB-Namen abzuändern ist bei deren webHosting nicht möglich. Aber wenn ich zu deren serverPakten wechseln würde... kann ich mir das ja selber einrichten wie ich will".

die Person (oder der Bot?) war echt gut und am Ende gab's dafür eine entsprechende Bewertung,
aber einen zusätzlichen Text indem ich meinen unmut über dies Manko äußerte konnte ich mir nicht verkneifen.


Nun gut, ich glaube hier kann geschlossen werden denn ich weiß ja nun wo der Fehler liegt,
mei English is auch not so good/ well, also ziehe ich kein Ticket beim Chan.

Am Ende bin ich sogar (nach etwas Recherche) noch zu meinrm eigentliches Ziel "ein laufendes Fusion" gekommen.

Abschließend möchte ich mich explizit noch bei Dir Systemweb persönlich bedanken, das Du die arbeit von Digitanium so weit/weiter geführt hast.


Wir werden mit sicherheit in zukunft von einander ...
MfG
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Springe ins Forum: