Kürzere Antwort.
Keine Panik! Wenn Sie sich Gedanken darüber machen, welche PHP-Version Ihr Apache-Server verwendet, phpinfo()
sollten Sie immer auf die Ausgabe von achten. Das Apache PHP-Modul und die PHP-Befehlszeilen-Binärdatei sind zwei verschiedene Dinge, die sich nicht gegenseitig stören.
Tatsächlich können Sie verschiedene PHP-Versionen kompilieren und laden, die Sie mit Apache verwenden möchten, solange Sie Apache so anpassen, dass es ordnungsgemäß geladen wird. Die PHP-Befehlszeilenschnittstelle wird beim Parsen von PHP-Seiten durch Apache niemals ins Spiel kommen.
Die Befehlszeilenversion von PHP ist einfach für befehlszeilenspezifische Aufgaben verfügbar und das PHP-Modul für Apache wird diese niemals berühren, verwenden oder benötigen.
Längere Antwort.
Du sagst das:
Ich wollte wissen, welche php
Version ich verwende, also schrieb ich das Standard-Skript:
phpinfo();
Das gibt mir PHP Version 5.6.10 - die richtige PHP-Version, die für meine Anwendung benötigt wird. Als ich es im Terminal versuchte:
php -i or php -v
Es zeigt mir PHP Version 5.3.2, die ich nicht brauche.
Die über die Befehlszeile verfügbare PHP-Version hat zu 100% nichts mit der als Modul geladenen PHP-Version zu tun. Dies sind völlig getrennte Dinge.
Wenn Sie sich also Gedanken darüber machen, welche PHP-Version Ihre Webanwendung verwendet, phpinfo()
wird Version 5.6.10 angezeigt, und genau das, was Sie wollen / brauchen, ist zu 100% in Ordnung.
Die Kommandozeilenversion von PHP ist ein völlig eigenständiges Systemelement. Das einzige, was zählt, ist die Ausgabe von phpinfo()
.
Wenn Sie aus irgendeinem Grund eine andere PHP-Version mit Apache verwenden möchten, müssen Sie nur das kompilierte Apache-PHP-Modul irgendwo installieren und diese Zeile in der Apache-Konfiguration Ihres Systems hinzufügen oder anpassen:
LoadModule php5_module /path/to/php/and/the/module/for/apache2/libphp5.so
Passen Sie einfach den Pfad an den Pfad an, den libphp5.so
Apache zum Parsen von PHP verwendet. Starten Sie dann Apache neu und Sie sind im Geschäft.
Zum Beispiel musste ich einmal PHP 5.1.6 aus dem Quellcode kompilieren (mit Unterstützung für die GD-Bibliothek), um es auf einem Ubuntu 12.04-Computer mit PHP 5.3.5 zu verwenden. In der PHP-Modul-Ladedatei des Servers hier:
/etc/apache2/mods-available/php5.load
Ich hatte Zeilen wie diese:
# LoadModule php5_module /usr/lib/apache2/modules/libphp535.so
LoadModule php5_module /usr/lib/apache2/modules/libphp516-gd.so
Beachten Sie, wie eine Zeile libphp535.so
für libphp516-gd.so
auskommentiert und die andere für nicht kommentiert ist? Ich habe das standardmäßige PHP 5.3.5 libphp5.so
Apache-Modul in libphp535.so
mit der Versionsnummer im Namen umbenannt, damit ich es als Referenz dort haben kann, und dann das PHP 5.1.6-Modul (mit Unterstützung für GD-Bibliotheken) benannt, libphp516-gd.so
damit ich weiß, was das ist ist auch. Auf diese Weise stehen mir beide nebeneinander auf dem System zur Verfügung.
Und - wie eingangs gesagt - die in der Kommandozeile verwendete PHP-Version hat mit dem Apache-PHP-Modul überhaupt nichts zu tun. Sie können also eine beliebige Anzahl verschiedener Versionen von Apache-PHP-Modulen auf dem System bereitstellen. Passen Sie einfach eine Konfiguration an und starten Sie Apache neu. Sie sollten alle im Geschäft sein, um die PHP-Version zu verwenden, die Sie für Apache angegeben haben.