Beim Durchlaufen eines Zend-Tutorials bin ich auf folgende Aussage gestoßen:
Beachten Sie, dass die php_flag-Einstellungen in .htaccess nur funktionieren, wenn Sie mod_php verwenden.
Kann jemand erklären, was das bedeutet?
Beim Durchlaufen eines Zend-Tutorials bin ich auf folgende Aussage gestoßen:
Beachten Sie, dass die php_flag-Einstellungen in .htaccess nur funktionieren, wenn Sie mod_php verwenden.
Kann jemand erklären, was das bedeutet?
Antworten:
mod_phpbedeutet PHP als Apache-Modul .
Grundsätzlich mod_phpermöglicht es Apache beim Laden als Apache-Modul, PHP-Dateien zu interpretieren (diese werden von interpretiert mod_php) .
BEARBEITEN: Bei der Arbeit mit Apache gibt es (mindestens) zwei Möglichkeiten, PHP auszuführen:
mod_php) : Der PHP-Interpreter ist dann irgendwie in den Apache-Prozess "eingebettet": Es gibt keinen externen PHP-Prozess - was bedeutet, dass Apache und PHP besser kommunizieren können .
Und nach dem Kommentar erneut bearbeiten : Verwenden von CGI oder mod_phpliegt bei Ihnen: Es ist nur eine Frage der Konfiguration Ihres Webservers.
Um zu wissen, welcher Weg derzeit auf Ihrem Server verwendet wird, können Sie die Ausgabe von überprüfen phpinfo(): Es sollte etwas geben, das angibt, ob PHP über mod_php (oder mod_php5) oder über CGI ausgeführt wird.
Vielleicht möchten Sie auch einen Blick auf die php_sapi_name()Funktion werfen : Sie gibt den Schnittstellentyp zwischen Webserver und PHP zurück .
Wenn Sie bei der Verwendung die Konfigurationsdateien Ihres Apache einchecken mod_php, sollte eine LoadModuleZeile wie folgt aussehen:
LoadModule php5_module modules/libphp5.so
(Der Dateiname auf der rechten Seite kann unterschiedlich sein - unter Windows sollte es beispielsweise a sein. .dll)
mod_phpist bei weitem die häufigste Konfiguration.
mod_phpist nicht echtes PHP; Es ist nur ein Apache-Addon. Oder besser gesagt, ich denke, Sie sollten die Antwort mit einer Definition von Was genau bedeutet PHP beginnen?
Diese Antwort stammt von TuxRadar :
Wenn Sie PHP über Ihren Webserver ausführen, gibt es zwei verschiedene Optionen: Ausführen mit PHPs CGI SAPI oder Ausführen als Modul für den Webserver. Jeder hat seine eigenen Vorteile, aber insgesamt wird das Modul im Allgemeinen bevorzugt.
Das Ausführen von PHP als CGI bedeutet, dass Sie Ihrem Webserver im Grunde den Speicherort der ausführbaren PHP-Datei mitteilen und der Server diese ausführbare Datei ausführt und ihm bei jedem Besuch einer Seite das von Ihnen aufgerufene Skript gibt. Das bedeutet, dass PHP jedes Mal, wenn Sie eine Seite laden, die php.ini lesen und ihre Einstellungen festlegen muss, alle Erweiterungen laden muss und dann mit dem Parsen des Skripts beginnen muss - es gibt viele wiederholte Arbeiten.
Wenn Sie PHP als Modul ausführen, befindet sich PHP buchstäblich in Ihrem Webserver - es startet nur einmal, lädt seine Einstellungen und Erweiterungen nur einmal und kann auch Informationen über Sitzungen hinweg speichern. Beispielsweise verlassen sich PHP-Beschleuniger darauf, dass PHP zwischengespeicherte Daten über Anforderungen hinweg speichern kann, was mit der CGI-Version nicht möglich ist.
Der offensichtliche Vorteil der Verwendung von PHP als Modul ist die Geschwindigkeit - Sie werden einen großen Geschwindigkeitsschub sehen, wenn Sie von CGI zu einem Modul konvertieren. Viele Leute, insbesondere Windows-Benutzer, erkennen dies nicht und verwenden weiterhin das CGI SAPI php.exe, was eine Schande ist - das Modul ist normalerweise drei- bis fünfmal schneller.
Die Verwendung der CGI-Version bietet jedoch einen entscheidenden Vorteil: PHP liest die Einstellungen jedes Mal, wenn Sie eine Seite laden. Wenn PHP als Modul ausgeführt wird, werden alle Änderungen, die Sie an der Datei php.ini vornehmen, erst nach einem Neustart Ihres Webservers wirksam. Daher ist die CGI-Version vorzuziehen, wenn Sie viele neue Einstellungen testen und sofortige Antworten sehen möchten.
Auf Ihrem Server müssen die PHP-Module installiert sein, damit er PHP-Code analysieren kann.
Wenn Sie auf Ubuntu sind, können Sie dies einfach mit tun
sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install libapache2-mod-php5
sudo /etc/init.d/apache2 restart
Andernfalls können Sie Apache mit PHP kompilieren: http://dan.drydog.com/apache2php.html
Wenn Sie Ihr Server-Betriebssystem angeben, können andere Personen genauer antworten.
Dies bedeutet, dass Sie PHP als Modul in Apache installiert haben müssen, anstatt es als CGI-Skript zu starten.
Nur um diese Antworten hinzuzufügen, ist mod_php die älteste und langsamste Methode, die auf dem HTTPD-Server zur Verwendung von PHP verfügbar ist. Es wird nicht empfohlen, es sei denn, Sie verwenden alte Versionen von Apache HTTPD und PHP. php-fpm und proxy_cgi sind die bevorzugten Methoden.