PEAR Problem

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

PEAR Problem

Postby mvkoriden » 12. June 2004 08:38

Ich habe, nachdem ich PHP5-RC3 installiert und wieder deinstalliert hatte, ein Problem mit PEAR.

Über die die Konsole/Eingabeaufforderung klappt alles bestens, und ein

"pear config-show" weist auch alle Pfade als korrekt aus. Es wird auch die entsperchende php.ini aus c:\xampp\apache\bin verwendet.

Nur wenn ich das Testskript zu pear starten will

Code: Select all
<?php
require_once("PEAR/Info.php");
$info = new PEAR_Info;
$info->show();
?>


kommt immer eine Fehlermeldung

Warning: Invalid argument supplied for foreach() in c:\XAMPP\php\pear\PEAR\Info.php on line 238

Und die ausgegebenen Verzeichnisse weisen alle auf c:\php4... hin, werden also irgendwie nicht übernommen, obwohl es auf der Eingabeaufforderung und mit infophp() immer wunderbar klappt.

Auch ein Löschen aller Peardateien und eine Neuinstallation über go-pear.org hat nichts gebracht.

Irgendeine Idee?

TIA

M
mvkoriden
 
Posts: 8
Joined: 12. June 2004 08:29

Postby Rolidor » 12. June 2004 13:08

Hallo.
Könnte es am 'include_path' in der php.ini liegen?

Gruß
Rolo
Rolidor
 
Posts: 406
Joined: 20. April 2004 10:17
Location: Dreieich - Hessen

Postby mvkoriden » 12. June 2004 14:41

Hallo Rolo,

dankle für Deinen Input, aber das scheidet aus, denn sonst würde in dem Script der Hinweis erscheinen, dass die Datei "PEAR/Info.php" nicht eingebunden werden kann, und das wird sie aber.

Das Problem ist, dass die pear *Pfade* auf der Konsole richtig sind und auch funktionieren, aber im Web sie aus irgendwelchen Gründen nicht ausgelsen werden können und so mit die default Pfade gemommen werden, also c:\php4 statt c:\xampp\php.

Danke aber trotzdem und ein schönes Wochenende für Dich

M.
mvkoriden
 
Posts: 8
Joined: 12. June 2004 08:29

Postby Wiedmann » 13. June 2004 23:12

Wenn du phpinfo() mit dem Browser aufrufst, und nach "php4" suchst, wird da was gefunden? Wenn ja, was?

Oder genauer:
Gibt es im Bereich "Environment" Variablen die mit "PHP_PEAR_" beginnen? Wenn ja, stimmen da die Pfade?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby mvkoriden » 13. June 2004 23:35

Hallo,

Wiedmann wrote:Wenn du phpinfo() mit dem Browser aufrufst, und nach "php4" suchst, wird da was gefunden? Wenn ja, was?


Nein, da taucht der String gar nicht auf.

Oder genauer:
Gibt es im Bereich "Environment" Variablen die mit "PHP_PEAR_" beginnen? Wenn ja, stimmen da die Pfade?


Nein, die gibt es komischerweise nicht in der Ausgabe von phpinfo() im Browser nicht. Nur dann wenn ich phpinfo() auf der "Konsole" mit phpcli.exe oder php.exe aufrufe kommt der folgende Output:
Code: Select all
_SERVER["PHP_PEAR_BIN_DIR"] => C:\\XAMPP\\php\\pear
_SERVER["PHP_PEAR_DATA_DIR"] => C:\\XAMPP\\php\\pear\\pear\\data
_SERVER["PHP_PEAR_DOC_DIR"] => C:\\XAMPP\\php\\pear\\pear\\docs
_SERVER["PHP_PEAR_INSTALL_DIR"] => C:\\XAMPP\\php\\pear\\pear
_SERVER["PHP_PEAR_PHP_BIN"] => C:\\XAMPP\\php\\php.exe
_SERVER["PHP_PEAR_SYSCONF_DIR"] => C:\\XAMPP\\php\\pear
_SERVER["PHP_PEAR_TEST_DIR"] => C:\\XAMPP\\php\\pear\\pear\\tests

Sieht so aus, also ob das Aufrufen der gleichen Datei einmal im Broswser und einmal im Browser völlig unterschiedliche Resultate hat.

Kann es sein, dass mit daran liegt, dass ich PHP als Apache-Modul laufen lasse?

Hast Du da noch irgendeine Idee?

Ich wäre Dir / Euch wirklich dankbar.

Reto[/quote]
mvkoriden
 
Posts: 8
Joined: 12. June 2004 08:29

Postby Wiedmann » 19. June 2004 18:00

Wie weit bist du denn mit deinem Probelm?

Nein, die gibt es komischerweise nicht in der Ausgabe von phpinfo() im Browser nicht. Nur dann wenn ich phpinfo() auf der "Konsole" mit phpcli.exe oder php.exe aufrufe
...
Sieht so aus, also ob das Aufrufen der gleichen Datei einmal im Broswser und einmal im Browser völlig unterschiedliche Resultate hat.


Es kann natürlich an verschiedenen ini-Dateien liegen. Das Apache Modul benutzt "C:\XAMPP\apache\bin\php.ini".
Die php-cli.exe normal "C:\XAMPP\php\php.ini".. Oder eine im Windows Verzeichnis. Diese wird auch bei der PEAR-Installation angepasst.

Tatsächlich werden diese Variablen im System oder in der pear.bat / pear.conf definiert.

Nach Änderung solcher Variablen sollte der Apache/Windows neu gestartet werden.

Die Variablen im System kannst du in der Eingabeaufforderung mit "set" überprüfen.

Oder du löscht mal das PEAR Verzeichnis, pear.bat/pear.conf. Schaust das keine PHP_PEAR_ Variablen mehr installiert sind, und installierst PEAR mit go-pear.bat neu.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby mvkoriden » 19. June 2004 20:57

Hallo,

leider noch nicht weiter... Ich fange mich langsam damit an zu trösten, dass ich bald wieder unter Linux arbeiten kann, da habe ich mein System wenigstens im Griff...

Ich glaube nicht, dass es an einer falschen php.ini liegt, denn egal welche .exe ich ausführe mit phpinfo(), da sind alle Pfade richtig gesetzt und es wird auch nur eine richtige php.ini gelesen.

Die Idee mit den Systemvariablen ist gut, aber hier stehen auch die richtigen Werte drin.

Ich kenne mich mit Windows leider nicht so gut aus wie mit Linux, aber es gibt doch diese Registry, kann es daran liegen? Nach welchen Werten müsste ich denn suchen? Eine Suche nach c:\php4 oder c:php5 ist ergebnislos...

go-pear.bat sogar direkt über http://go-pear.org/ habe ich schon gemacht, aber ohne Ergebnis... Wie löscht man denn PHP_PEAR-Variablen aus dem System?

Wenn ich dieses benannte Script ausführe scheint er gar nicht auf eine bestehende Konfiguration zuzugreifen, sondern nimmt default Werte. Habe es zwischenzeitlich mal mit PHP5 und dem darin enthaltenen PEAR versucht, aber hier beginnen die Pfade alle mit c:\php5...

Any ideas?

TIA

M.
mvkoriden
 
Posts: 8
Joined: 12. June 2004 08:29

Postby Wiedmann » 19. June 2004 21:20

sondern nimmt default Werte.

Das spricht dafür, dass keine php.ini benutzt wird. Nur wenn er auch wirklich eine php.ini liest, werden die default-Werte überschrieben.

IMHO werden beim XAMPP auch auf jeden Fall zwei verschiedene php.ini benutzt. Eine für das Modul (in apache/bin) und eine für cgi/cli (in /php).

aber es gibt doch diese Registry, kann es daran liegen?

Registry dürfte für deinen Fall uninteressant sein.

Wie löscht man denn PHP_PEAR-Variablen aus dem System?

Systemeigenschaften --> Erweitert --> Umgebungsvariablen --> Systemvariablen

BTW, wenn du PHP5 wirklich korrekt und komplett deinstalliert hast, und wieder php4 drauf hast, darf es keine Verweise auf php5 mehr geben.

(Hast du bei php5 irgendwelche DLL's kopiert und die vergessen zu löschen?)
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby mvkoriden » 20. June 2004 08:17

Code: Select all
Das spricht dafür, dass keine php.ini benutzt wird. Nur wenn er auch wirklich eine php.ini liest, werden die default-Werte überschrieben.


Auf der anderen Seite wird mit "ext_dir -- c:\XAMPP\php\extensions\" doch ein Wert defintiv aus der php.ini übernommen, nur halt pear-spezifische Pfade.

Ich habe jetzt PEAR sowie PHP5 komplett gelöscht und noch mal das Skript von go-pear.org ausgeführt. Schon bei der Installation meckert er rum, dass etwas an der php.ini nicht stimmen würde. Ich passe dann pear.bat an und setzte dort die Umgebungsvariablen von Hand.

Zwischendrin habe ich XAMPP auch mal komplett gelöscht (inkl. der Dienste etc.) und wieder neu installiert, auch keine Besserung.

Weil Du gesagt hast, die Registry spiele keine Rolle bei PEAR, es gibt ja die Datei PEAR_ENV.reg und die habe ich schon mal registrieren lassen, aber auch keine Veränderung.

Wenn Du (oder ein anderer) noch irgendeine Idee hat, wäre ich dankbar für Hinweise, es gibt einem nicht das beste Gefühl, auf einem System zu entwicklen, das nicht 100%ig rund läuft.

TIA

M.
mvkoriden
 
Posts: 8
Joined: 12. June 2004 08:29

Postby Wiedmann » 20. June 2004 10:14

Auf der anderen Seite wird mit "ext_dir -- c:\XAMPP\php\extensions\" doch ein Wert defintiv aus der php.ini übernommen, nur halt pear-spezifische Pfade.

Dieser Wert dürfte auch in beiden php.ini's korrekt gesetzt sein. Also wird eine gelesen, OK.

Der einzigste PEAR-spezifische Eintrag in der php.ini ist, das der include_path um das PEAR-Verzeichnis erweitert wird.
Der PEAR-Install Script überprüft diesen bei der Installation und setzt ihn gegebenfalls. Aber nur in der einen php.ini im php-Verzeichnis.

Welche php.ini überhaupt benutzt wird, siehst du auch in der Ausgabe von phpinfo().

Ich habe jetzt PEAR sowie PHP5 komplett gelöscht und noch mal das Skript von go-pear.org ausgeführt. Schon bei der Installation meckert er rum, dass etwas an der php.ini nicht stimmen würde. Ich passe dann pear.bat an und setzte dort die Umgebungsvariablen von Hand.

Installiert wird PEAR mit "go-pear.bat". Erst während der Installation wird auch "pear.bat" erstellt.

Was meckert er denn genau rum?

Wenn du eh schon Probleme mit dem Pfaden hast, solltest du vor dem Ausführen von "go-pear.bat" sicherstellen das keine PHP Systemvariablen gesetzt sind. Dann frägt die Batchdatei auf jeden Fall die korrekten Pfade von dir ab. (diese werden dann auch in "pear.bat" eingetragen)

Zwischendrin habe ich XAMPP auch mal komplett gelöscht (inkl. der Dienste etc.) und wieder neu installiert, auch keine Besserung.

Weil Du gesagt hast, die Registry spiele keine Rolle bei PEAR, es gibt ja die Datei PEAR_ENV.reg und die habe ich schon mal registrieren lassen, aber auch keine Veränderung.

Mir der "PEAR_ENV.reg" werden nur die Systemvariablen, wenn gewünscht, gesetzt. Wie man diese überprüft oder löscht hatten wir ja schon.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby mvkoriden » 20. June 2004 10:40

Hallo,

ich habe jetzt eine Lösung gefunden...

Ich habe pear jetzt unter einem anderen User erstellt, den ich ganz selten benutze.

Und siehe da, es funktioniert jetzt, wenn ich o.g. Skript aufrufe, auch mit meinem Standard-User.

Beim dem anderen User waren unter Umgebungsvariablen übrigens keine Einträge in der Form PEAR_...

Die Frage ist nur, wie bekomme ich bei meinem Standarduser, diese Einträge gelöscht, denn pear.bat funktioniert jetzt nicht mehr auf der Konsole, zumindest beim Standarduser nicht. Mit Arbeitsplatz=>Erweitert=>Umgebungsvariablen komme ich nicht weiter, da dort die PEAR-Einträge nicht aufgelistet sind...

Örks, ich mag Windows einfach nicht und finde es wesentlich intransparenter als ein Unix...

Der Thread ist damit schon fast geschlossen, es sei denn, Du hast noch eine Idee, wie ich die userspezifischen Umgebungsvariablen gelöscht bekomme.

Schönen Sonntag noch

M.
mvkoriden
 
Posts: 8
Joined: 12. June 2004 08:29

Postby mvkoriden » 20. June 2004 10:50

Hallo,

ich habe die Umgebungsvariablen von PEAR jetzt händisch entfernt.

Alles OK, nun.

Danke an alle, die sich an der Lösung des Problems beteiligt haben, insbesondere an Dich Wiedmann!

Schöne Zeit

M.
mvkoriden
 
Posts: 8
Joined: 12. June 2004 08:29

Postby Wiedmann » 20. June 2004 11:01

Wenn es wirklich Systemvariablen sind (Ausgabe von set) dann werden sie immer dort "Arbeitsplatz => Eigenschaften => Erweitert => Umgebungsvariablen" eingestellt.

Im oberen Bereich sind die Systemvariablen vom aktuellen Benutzer, und im unteren Bereich die, die für alle Benutzer gültig sind.

Ansonsten werden die PHP-Variaben nur noch durch "pear.bat" gesetzt.

Wenn du bei deinem Standardbenutzer nach dem Anmelden und vor dem starten von Apache diese Variablen in der Eingabeaufforderung angezeigt bekommst dann muß evtl. irgend ein anders Programm (Systemsicherheit/tunig-Tool) oder eine Batchdatei im Autostart diese Variablen wiederherstellen.

Du hast dich auch abgemeldet und nicht nur den Benutzer gewechselt?

BTW. Hatte jetzt die Tage mal zum Testen php5 drauf... Und bis auf PEAR lief alles ohne Probleme. Nur das war bei mir auch nicht zur Mitarbeit zu bewegen *g*
Wieder zurück zu php4..... kein Problem.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 32 guests