5 Stimmen

Problem verschiedener PHP-Versionen gemeldet

Ich habe auf einer Entwicklungs-Maschine (Windows 7) auf PHP 5.3 aktualisiert.

php-v zeigt

PHP 5.3.3 (cli) (built: Jul 21 2010 20:36:55)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

Allerdings zeigt phpinfo.php, dass die Version auf der Maschine 5.2.14 lautet, wie hier angezeigt dump from phpinfo page

Die geladene Konfigurationsdatei lädt korrekterweise die richtige php.ini-Datei für 5.3. Der Pfad zur Konfigurationsdatei (php.ini) zeigt fälschlicherweise an: C:\Windows - Ich habe PHP jedoch nicht in diesem Pfad installiert. Ich habe jedoch eine rekursive Suche nach PHP-Ordnern und -Dateien durchgeführt, aber die Suche ergab nichts.

Die Anwendungen scheinen die Einstellungen zu verwenden, die von phpinfo und nicht von php -v oder php -m oder php -i (oder ähnlichem) gemeldet werden.

Außer dem Löschen des PHP-Ordners und dem Neustart (was ich bereits getan habe) und der Sicherstellung, dass Apache auf das richtige PHP-Verzeichnis zeigt, indem PHPINIDir verwendet wird, was könnte ich tun, um dieses Problem zu lösen? Vielen Dank.

6voto

soju Punkte 24713

Hallo

Sie sollten auch das Apache PHP Modul aktualisieren


@soju - das hat es behoben, danke, aber ich dachte, ich mache es für andere ein wenig klarer.

Apache benötigt das PHP-Modul, um PHP-Dateien bereitzustellen. Auf Windows kommt es als .dll-Datei. Dies würde php5apache2_2.dll genannt werden - befindet sich in Ihrem PHP-Ordner. Seltsamerweise kann es jedoch beim Aktualisieren des PHP-Ordners mit einer neueren Version vorkommen, dass Apache immer noch die alte PHP-Moduldatei verwendet. Obwohl php -v die neue Version korrekt meldet, schaut Apache immer noch auf das alte PHP-Modul (wie von phpinfo gemeldet). Um herauszufinden, welche Modulversion Sie haben, könnten Sie: mit der rechten Maustaste auf die .dll-Datei klicken > Eigenschaften auswählen -> den Tab Details anzeigen. Oder einfach über die Datei fahren.

Detailsansicht der php5apache.dll-Datei

Wenn diese Version nicht Ihren Vorstellungen entspricht, möchten Sie vielleicht nach einer neueren Version suchen und sie ersetzen. Gute Idee, zuerst eine Sicherungskopie zu machen. Außerdem funktioniert die Datei php5apache.dll mit und erfordert die Datei: php5ts.dll - stellen Sie also sicher, dass diese Dateien die gleichen Versionen sind.

Mit Ihrer httpd.conf-Datei mit der Direktive:

LoadModule php5_module "\Pfad zu\php5apache2_2.dll"

Sie können Apache neu starten und lächeln!

0 Stimmen

Sehen Sie die Zeile, die wie "LoadModule php5_module C:\Pfad\zu\php.dll" in Ihrer httpd.conf aussieht.

0 Stimmen

Vielen Dank, wenn mit dem Aktualisieren des Apache PHP-Moduls gemeint ist, was @rik gesagt hat, lautet die Zeile: LoadModule php5_module "C:/applications/php/php5apache2_2.dll" - und zeigt genau auf die dll-Datei.

0 Stimmen

Oh ja, Apache wurde mehrmals neu gestartet, aber phpinfo meldet immer noch die falschen Einstellungen. Ideen bitte?

1voto

powtac Punkte 39079

Ihr Command-Line (CLI) PHP ist eine andere Version als die, die für Apache verwendet wird. Stellen Sie auch sicher, dass beide die gleiche php.ini verwenden. Wenn Sie auf Ihrer Windows-Maschine eingeben

c:\path\to\php\php.exe -v 

oder

c:\path\to\php\php-win.exe -v 

und

c:\path\to\php\php-cli.exe -v 

können alle verschiedene Versionen zurückgeben. Oft passiert dies beim Upgrade auf eine neue WAMP-Version und man vergisst, die alten Versionen zu löschen. Ich bin sicher, dass Sie die ausführbare PHP-Binärdatei finden werden, die zur gleichen Version passt. Es ist auch sicher, stattdessen php.exe oder php-win.exe anstelle von php-cli.exe unter Windows zu verwenden.

0 Stimmen

Vielen Dank Powtac, aber tatsächlich handelt es sich um meine Befehlszeilen- (CLI) PHP, die die neuere Version ist. Ich habe zuvor die php -v Befehle ausgeführt, um das zu zeigen. Ich habe es jedoch erneut ausgeführt, sowie die php-win und php-cli Alternativen. Alle geben die Version als 5.3.3 zurück - was wiederum die richtige ist. Offensichtlich tritt das Problem auf, wenn Apache ins Spiel kommt, um Seiten bereitzustellen. Es scheint, dass er anderswo nach PHP-Einstellungen sucht.

0 Stimmen

Dann müssen Sie das Apache-Modul aufrüsten, wie Soju gesagt hat. Sie können das Modul nicht ändern, indem Sie etwas in der Konfiguration ändern. Sie müssen das Apache PHP-Modul physisch aufrüsten.

0 Stimmen

Du meinst vielleicht WAMP (SERVER) anstatt von WINAMP ;)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X