Paketinstallation schlägt fehl

Begonnen von Andi, 19 Juni 2006, 20:18:28

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Andi

Nach der anscheinend erfolgreichen Installation der Bridge über den Paketmanager erhalte ich die Meldung:
ZitatpragmaMx Integration not installed

   [ click here ]

Fatal error: Cannot redeclare is_admin() (previously declared in /srv/www/htdocs/web186/html/includes/nukefunctions.php:32) in /srv/www/htdocs/web186/html/modules/Forum/smf/Sources/Security.php on line 866

die Fehlermeldung bedeutet nichts weiter, als dass die pragmaMx-Bridge nicht installiert ist, bzw. dass die SMF-Dateien während der Installation des Pakets nicht umgeschrieben werden konnten.

In dieser security.php befindet sich eine Funktion is_admin(), die es auch im pragmaMx gibt (in der nukefunctions.php). Die Installation der Bridge muss die security.php ändern und diese Funktion auskommentieren, damit dieser Namenskonflikt gelöst wird. Gelingt dies nicht, dann kommt eben diese Fehlermeldung.

Aber die eigentliche, richtige, gewollte Fehlermeldung steht ja obendrüber:
pragmaMx Integration not installed.




Hier 3 Lösungswege aus dem Betatester Bereich bzw. hier aus dem FAQ Bereich. Im Prinzip 3x das Gleiche, nur jeweils anders beschrieben....

1. FrankySz:
Zitathi @ll,
so ich hab mich mal nen wenig im smf-supportforum rumgetrieben ...

das Problem mit dem packetmanager ist ziemlich weit verbreitet ... es gibt annaehernd 100 threads dazu ...
leider ist noch keine endgueltige loesung vorhanden.
aus den einzelnen Forumthreads rausgepickt und auf meinem rootserver getestet war dann folgendes:

!Lösung fuer rootserver:
nach dem upload der bridge und der forumdateien ueber ssh in den ordner modules der installation gehen und mit
chmod -R 0777 Forum
ALLE Dateien auf 777 setzen, installation und bridgemodifikation ausfuehren funktioniert dann so wie e sein soll.
Danach hab ich nur noch die ordner Forum und smf auf 755 zurueckgesetzt.

Alles funktoniert einwandfrei, auch das downloaden von packages sowie deren installation.

Laut -Unknown- (ist anscheinend einer der Entwickler des smf) stellt es kein sicherheitsrisiko dar die andren dateien auf 777 zu lassen.

greets Frank


2. Andi:
Zitat
So ist das natürlich evtl. etwas "merkwürdig" zu verwirklichen.

Meine Lösung war:

Vor dem einspielen der pragmaMx Bridge über den Paketmanager den Ordner temp anlegen und mit chmod 777 versehen.
Dann im Paketmanager die Bridge installieren. Gleich beim ersten Fenster kommt ja die Liste, der Dateien, die geändert werden sollen. Hier steht normalerweise überall dabei, dass der check ok ist. Das ist aber nicht unbedingt so. Bei dir z.B. macht die FTP-Funktion des SMF nicht das was sie soll, sie ändert die Schreibberechtigungen nicht richtig.
So, diese Liste der geplanten Änderungen geht man durch und verpasst jeder Datei die den Vermerk "Execute Modification" hat, den chmod 666. Bei Dateien, die den Vermerk "Extract File" haben, muss man den Zielordner mit chmod 777 versehen.

Danach funktioniert die Installation über den Paketmanager einwandfrei.

Diese Vorgehensweise kann man bei jedem SMF-Mod anwenden....

3. Jubilee:
Zitat von: jubilee am 18 Juni 2006, 20:59:42
Erstmal sollte das Packages-Verzeichnis sammt Inhalt beschreibbar sein
Welche Dateien zusätzlich beschreibbar sein müssen, verrät die Datei
packages-info.xml
In dieser sind die Modiikationen bzw die Dateien mit den Modifikationen eingetragen.
Anhand der Modifikationslisten müssen dann die entspr. Dateien mit schreibrechten gesetzt werden.
Beispiel aus der packages-info.php
<modification format="boardmod">BoardIndex.php.mod</modification>

Eine Modifikation welche in der Datei BoardIndex.php.mod beschrieben ist.
Weiter dann aus der Datei BoardIndex.php.mod:
Zitat<edit file>
$sourcedir/BoardIndex.php
</edit file>
Es wird also die Datei BoardIndex.php aus dem Verzeichnis modules/Forum/smf/Sources
modifiziert.
Diese Datei muss dann schreibrechte haben.
So muss dann für alle weiteren Modifikationen bzw. Mod-Files verfahren werden.
MfG
schön´s Grüssle, Andi

Andi

#1
Noch eine kleine Erklärung zu der Ursache dieser Fehlermeldung:

ZitatFatal error: Cannot redeclare is_admin()


Wenn das SMF-Forum als Standallone Version einwandfrei funktionert, werden durch die Installation der pragmaMx Bridge Modifikation bestimmte Dateien der SMF-Installation verändert.

Die SMF-Datei /modules/Forum/smf/Sources/Security.php enthält eine Funktion is_admin(). Diese Funktion existiert aber auch in pragmaMx und wenn die SMF-Datei später im pragmaMx "includet" wird, entsteht eben dieser Fehler, weil eine Funktion in einem PHP-Script nur einmal vorkommen darf.

Während der Installation der Bridge, muss diese Funktion im PHP-Quellcode der SMF-Datei Security.php entfernt, bzw. auskommentiert werden. Schlägt dies fehl, dann kommt nach der Installation der Bridge eben diese Fehlermeldung. Wenn diese eine Datei nicht verändert werden konnte, dann ist davon auszugehen, dass alle anderen Dateien, die verändert werden müssen, auch nicht verändert wurden.

Das hat nichts mit der Datenbank, oder sonstwas zu tun. Es liegt definitiv und ausschliesslich an mangelnden Schreibberechtigungen an den Dateien. Hier können die oben aufgeführten Tips Hilfe bringen....
Die Installation der Bridge ist also vollständig fehlgeschlagen.
schön´s Grüssle, Andi