Ich wollte Sie nach den bekannten PHP / Apache-Konfigurationsmethoden und deren Vor- und Nachteilen fragen. Ich werde mich selbst beginnen:
---------------- PHP als Apache-Modul ----------------
Vorteile : Gute Geschwindigkeit, da Sie nicht jedes Mal exe starten müssen, insbesondere im MPM-Worker- Modus. In diesem Modus können Sie auch verschiedene PHP-Beschleuniger wie APC oder eAccelerator verwenden.
Nachteile : Wenn Sie Apache im MPM-Worker-Modus ausführen, können Stabilitätsprobleme auftreten, da jeder Fehler in einem PHP-Skript zu einer Instabilität des gesamten Thread-Pools dieses Apache-Prozesses führt. Auch in diesem Modus werden alle Skripte im Auftrag des Apache-Benutzers ausgeführt. Das ist schlecht für die Sicherheit. Für die Konfiguration von mpm-worker muss PHP im thread-sicheren Modus kompiliert werden. Zumindest die Standard-Repositorys von CentOS und RedHat verfügen nicht über eine thread-sichere PHP-Version. Unter diesen Betriebssystemen müssen Sie mindestens PHP selbst kompilieren (es gibt eine Möglichkeit, Worker-MPM unter Apache zu aktivieren). Die Verwendung von thread-sicheren PHP-Binärdateien wird als experimentell und instabil angesehen. Außerdem unterstützen viele PHP-Erweiterungen den thread-sicheren Modus nicht oder wurden im thread-sicheren Modus nicht gut getestet.
---------------- PHP als CGI ----------------
Dies scheint die langsamste Standardkonfiguration zu sein, die selbst ein "Betrug" zu sein scheint;)
---------------- PHP als CGI über mod_suphp ----------------
Pros : suphp können Sie PHP - Scripte im Namen der Skriptdatei Besitzer auszuführen. Auf diese Weise können Sie verschiedene Standorte auf demselben Computer sicher trennen. Außerdem ermöglicht suphp die Verwendung unterschiedlicher php.ini-Dateien pro virtuellem Host.
Nachteile : PHP im CGI-Modus bedeutet weniger Leistung. In diesem Modus können Sie keine PHP-Beschleuniger wie APC verwenden, da jedes Mal, wenn ein neuer Prozess erzeugt wird, das Skript den Cache des vorherigen Prozesses unbrauchbar macht. Übrigens, kennen Sie die Möglichkeit, einen Beschleuniger in dieser Konfiguration anzuwenden? Ich habe etwas über die Verwendung von shm für den PHP-Bytecode-Cache gehört. In diesem Modus können Sie PHP auch nicht über .htaccess-Dateien konfigurieren. Sie müssen dafür den P ECL htscanner installieren, wenn Sie verschiedene Optionen pro Skript über .htaccess (Direktiven php_value / php_flag) festlegen müssen.
---------------- PHP als CGI über suexec ----------------
Diese Konfiguration sieht genauso aus wie bei suphp, aber ich habe gehört, dass sie langsamer und weniger sicher ist. Es gelten fast die gleichen Vor- und Nachteile.
---------------- PHP als FastCGI ----------------
Vorteile : Der FastCGI-Standard ermöglicht es einem einzelnen PHP-Prozess, mehrere Skripte zu verarbeiten, bevor der PHP-Prozess beendet wird. Auf diese Weise erhalten Sie Leistung, da Sie nicht für jedes Skript einen neuen PHP-Prozess starten müssen. Sie können in dieser Konfiguration auch PHP-Beschleuniger verwenden (Kommentar siehe Abschnitt "Nachteile"). FCGI ermöglicht fast wie suphp auch die Ausführung von PHP-Prozessen für einige Benutzer. mod_fcgid scheint die umfassendste fcgi-Unterstützung und Flexibilität für Apache zu haben.
Nachteile : Die Verwendung des PHP-Beschleunigers im FastCGI-Modus führt zu einem hohen Speicherverbrauch, da jeder PHP-Prozess seinen eigenen Bytecode-Cache hat (es sei denn, es gibt einen Beschleuniger, der gemeinsam genutzten Speicher für den Bytecode-Cache verwenden kann. Gibt es einen solchen?). FastCGI ist auch etwas komplex zu konfigurieren. Sie müssen verschiedene Konfigurationsdateien erstellen und einige Konfigurationsänderungen vornehmen.
Es scheint, dass fastcgi die stabilste, sicherste, schnellste und flexibelste PHP-Konfiguration ist, jedoch etwas schwierig zu konfigurieren ist. Aber vielleicht habe ich etwas verpasst?
Kommentare sind willkommen!