Ich verwende Apache2 unter Mac OS X (10.5) . Ich habe gerade PHP 5.2.8 kompiliert und endlich pdo-mysql
funktioniert (glaube ich).
Dieser Terminalbefehl:
php --version
zeigt 5.2.8 und ich habe die richtigen Module installiert.
Aber, wenn ich ein tun phpinfo()
, Apache - Dumps aus PHP 5.2.6 (meiner früheren Version, ohne pdo_mysql
).
Wie kann ich Apache mitteilen, welches PHP geladen werden soll? Der httpd.conf
hat die Zeile:
LoadModule php5_module libexec/apache2/libphp5.so
Aber ich weiß nicht, was oder wo das ist.
Muss ich das ändern?
php
apache-2.2
pdo
Sam McAfee
quelle
quelle
Antworten:
Ich denke, all diese Antworten beantworten die Frage nicht wirklich. Die Root-Ebene kann durch Ausführen des Befehls festgelegt werden
httpd -V
. Hier sehen Sie, mit welchen Optionen der Apache-Daemon zur Kompilierungszeit erstellt wurde. Hier wirdhttpd
festgelegt, wo nach der Konfiguration gesucht werden soll. Dateien und .so-Module standardmäßig.Beispielsweise:
Die Schlüsselzeile in dieser Ausgabe ist die
HTTPD_ROOT
. Das legt fest, wo dasROOT
Verzeichnis von Apache/etc/httpd
bei der Suche nach config beginnen soll. Dateien und Module.HINWEIS: Dies
ROOT
ist nicht dasselbe wieDocumentRoot
. DiesROOT
ist spezifisch für die Art und Weise, wie derhttpd
Dämon kompiliert wurde. HierDocumentRoot
wird angegeben, wo derhttpd
Dämon nach tatsächlichen Webinhalten (.html-Dateien usw.) suchen soll.Für meine
httpd.conf
Datei habe ich folgende Ladezeilen:In diesem Fall wäre der vollständige Pfad zu Ihren Modulen zum Beispiel:
Dies ist von einem CentOS 5.x- System, aber die Technik ist immer noch geeignet.
Übrigens kann es etwas verwirrend werden, da die Dateien in CentOS hier physisch organisiert sind:
... und dann
httpd
über diesen Pfad für den Apache-Daemon zugänglich :Der
modules
Link verbindet/etc/httpd
->/usr/lib/httpd/modules
.quelle
Sie können Dateien auf Ihrem System mit dem folgenden
locate
Befehl finden:Es werden die vollständigen Pfade aller Dateien mit diesem Namen gedruckt. Ich habe einen bei
/usr/libexec/apache2/libphp5.so
.quelle
Das übergeordnete Verzeichnis der in httpd.conf geladenen Module (z. B.:)
libexec/apache2/libphp5.so
wird durch dieServerRoot
Direktive definiert, die standardmäßig auf festgelegt ist/usr
. Ich würde nicht empfehlen, dies zu ändern, aber es kann nützlich sein, zu wissen, wo genau dieser Pfad definiert ist.Die Website von Apache sagt Folgendes über ServerRoot aus :
Zusätzlich lauten die Standardkommentare der httpd.conf-Datei:
ServerRoot: Der Anfang der Verzeichnisstruktur, in der die Konfigurations-, Fehler- und Protokolldateien des Servers gespeichert sind.
quelle
Apache sollte nach Modulen in "/ usr / libexec / httpd /" suchen. Dort finden Sie entweder eine Datei oder einen Symlink namens "libphp5.so". Wenn es sich um einen Symlink handelt, müssen Sie erneut auf die neue 5.2.8 libphp5.so verlinken, andernfalls kopieren Sie die 5.2.8 libphp5.so nach "/ usr / libexec / httpd /" und starten Sie Apache mit "sudo apachectl restart" neu. .
quelle
Ich hatte einen Apache und PHP auf einem der Server installiert. Dies wurde vom vorherigen Sys-Administrator installiert. Sowohl der Apache als auch PHP wurden von der Quelle erfüllt. Zusätzlich wurde ein Standard-PHP installiert. So wissen Sie, welches PHP vom Apache verwendet wird. Ich führe den folgenden Befehl aus
Dies gab mir den Weg zu Apache Apxs
Dies gab mir Informationen darüber, welcher Apache von dieser PHP verwendet wird. Die Standard-PHP gab Fehler, als ich tippte
Auf diese Weise konnte ich herausfinden, welches PHP von Apache verwendet wird.
quelle