Ich bin relativ neu in der Welt der Verwaltung / Administration von Unix-Kommandozeilen-Webservern.
Bei vielen Hosts mit Verwaltungsoptionen für das Control Panel können Sie die Ausführung von PHP mit einer einfachen Option ändern.
Die häufigsten Optionen sind:
- Apache-Modul
- CGI-Anwendung
- FastCGI-Anwendung
Meine Frage ist einfach, wie ändert man das über die Kommandozeile? Ich weiß, dass es viele Konfigurationsdateien für Apache gibt.
Das Nächste, was ich gefunden habe, ist diese Frage , aber die Verzeichnisstruktur scheint für mein Betriebssystem (Ubuntu 12.04) nicht zu passen.
Ich bin ziemlich verwirrt darüber, dass es keinen klaren Leitfaden zu geben scheint, dass ich Einzelheiten dieses Prozesses für etwas finden kann, das so häufig zu sein scheint. Verzeihen Sie mir, wenn dies der Fall ist. Wenn ja, weisen Sie mich bitte in die richtige Richtung.
quelle
Antworten:
Vielen Dank für die vorherigen Antworten, aber um die Dinge zum Laufen zu bringen, musste ich Anweisungen von einigen Stellen aus kombinieren, sodass ich dachte, ich würde einen vollständigen Satz von Befehlen schreiben.
Zu Ihrer Information: Ich verwende Ubuntu 14.04, Apache 2.4 und habe auch standardmäßig Modphp ausgeführt. Die vorherigen Anweisungen haben auch die Notwendigkeit ausgelassen, Modphp zu deaktivieren.
Ich fand auch http://blog.starcklin.com/2013/08/install-mod-fastcgi-and-php5-fpm-on-ubuntu/ sehr informativ und unkompliziert.
Führen Sie einfach die folgenden Befehle nacheinander in einem Terminal aus.
Installieren Sie zuerst die erforderlichen Pakete (ich lasse php5 aus, da dies voraussetzt, dass es bereits installiert ist, und füge es bei der Erstinstallation wieder hinzu). Beachten Sie auch, dass Sie ab Apache 2.4 die event-mpm anstelle von worker verwenden können (siehe http://www.vps.net/blog/2013/04/08/apache-mpms-prefork-worker-and-event/) . Mein Beispiel zeigt worker, aber ersetze einfach das Wort worker durch event, wenn du das lieber verwenden möchtest.
Aktivieren Sie nun die Mods, die Sie benötigen, und deaktivieren Sie die Mods, die Sie nicht benötigen.
Erstellen Sie die Datei php5.fcgi und erteilen Sie dem Webserver die Berechtigung, diese zu verwenden.
Erstelle eine globale Konfiguration für php5-fpm
Füge folgendes ein (wir verwenden einen Socket anstelle der IP-Adresse)
Aktiviere die php5-fpm conf
Starten Sie Apache und Fpm neu
Fügen Sie gemäß den anderen Anweisungen Folgendes in eine neue durchsuchbare PHP-Datei auf Ihrem Webserver ein.
Öffnen Sie die soeben bearbeitete Datei in einem Webbrowser. Wenn neben der Server-API "FPM / FastCGI" angezeigt wird, bedienen Sie PHP jetzt mit FastCGI!
quelle
Ich habe endlich ein nettes Tutorial gefunden, das genau darauf ausgelegt ist. Ich werde die Schritte skizzieren, die ich unternommen habe, da ich meinen LAMP-Stack bereits installiert habe, aber das vollständige Tutorial finden Sie hier .
Hinweis für den neuen:
Im Tutorial beginnt der Wechsel zum Root-Benutzer mit:
In meinem Fall habe ich diesen Befehlen lediglich ein Präfix vorangestellt,
sudo
anstatt die Benutzer zu wechseln, sodass ich meine Schritte auf diese Weise dokumentiere.Start
Schritt eins: Installieren Sie das Apache Worker MPM (Multi-Procesing Modules)
Dies ersetzt den von mir installierten Prefork, der der Standard bei der Installation von Apache ist.
Schritt 2: Installieren Sie PHP5 und die erforderlichen Module
An dieser Stelle kann ein Fehler bei der Installation von 'libapache2-mod-fastcgi' auftreten:
Dieser Teil ist nicht im obigen Tutorial enthalten
Um dies
multiverse
abzustimmen, muss das Repository den apt-Quellen hinzugefügt werden.Um dies zu tun:
Daran habe ich folgende Zeilen angehängt:
precise
in diesem Fall bezieht sich auf meine Version von Ubuntu " Precise Pangolin ".Speichern Sie nun die Änderungen und kehren Sie zum Terminal zurück:
und wieder:
was wird (sollte) jetzt funktionieren.
Aktivieren Sie nun diese Apache-Module:
starte Apache neu
Schritt 3: Apache-Konfiguration
Damit Apache mit PHP-FPM funktioniert, benötigen wir die folgende Konfiguration:
Sie können es in die globale Apache-Konfiguration einfügen (damit es für alle vhosts aktiviert ist), z. B. in
/etc/apache2/conf.d/php5-fpm.conf
(diese Datei ist nicht vorhanden, Sie müssen sie also erstellen), oder Sie können es in jeden vhost einfügen, der PHP-FPM verwenden soll.Ich entscheide mich für den globalen Weg, also:
Fügen Sie den obigen Codeblock ein, und speichern Sie den Vorgang. Beenden Sie den Vorgang. Diese neue Datei wird automatisch von der Standardkonfiguration von Apache geladen, die alle Dateien im
/etc/apache2/conf.d/
Verzeichnis lädt .starte Apache neu:
Erstellen Sie nun die folgende PHP-Datei im Dokumentenstamm
/var/www
:Hinzufügen:
sicherer Ausgang.
Jetzt rufen wir diese Datei in einem Browser auf (zB
http://your-server-ip/info.php
)Unter Server API sollten Sie oben sehen
FPM/FastCGI
.Erfolg!
Weitere Informationen, wie Sie PHP-FPM so ändern, dass anstelle des Standard-TCP-Ports ein Unix-Socket verwendet wird, oder wie Sie dies für einzelne virtuelle Hosts anstatt für alle konfigurieren, finden Sie im oben verlinkten Quellentutorial.
quelle
Require all granted
Ding erst seit Apache 2.4 benötigt wird. Wenn ich es mit Apache 2.2 in die Konfigurationsdatei stecke, schlägt es fehl.Bearbeiten Sie in Ubuntu 14.04 nach den Schritten der akzeptierten Antwort /etc/apache2/conf-available/php5-fpm.conf
Dann ausführen
quelle
Falls jemand dies unter Ubuntu 16.04 tut und von PHP 7 auf PHP 5.6 (Ondrej) heruntergestuft hat, müssen Sie einige Zeilen ersetzen (basierend auf der Antwort von JDawgg):
sudo apt-get installiere libapache2-mod-fastcgi php5-fpm um:
sudo a2dismod php5 mpm_prefork um:
sudo nano /etc/apache2/conf-available/php5-fpm.conf an:
Der Installationsprozess von php5.6-fpm hat die Datei bereits erstellt, es ist also nicht erforderlich, eine zu erstellen. Ich habe jedoch den gesamten vorhandenen Text in dieser Datei entfernt, da er für mod_php5 bestimmt war.
Ich habe den Pfad von /var/run/php5-fpm.sock zu /var/run/php/php5.6-fpm.sock geändert, da sich die Datei dort befand.
sudo a2enconf php5-fpm an:
sudo service apache2 restart && sudo service php5-fpm restart nach:
Ich hoffe das hilft anderen Neulingen wie mir :)
quelle