GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Installieren Sie Nginx + Php FPM + APC unter CentOS 6.4

LEMP-Server

Ein Lemp-Server führt Nginx aus Webserver zusammen mit Php und Mysql oder MariaDB auf einem Linux System. Nginx wird aufgrund seiner leichten Struktur und seiner Fähigkeit, große Verkehrsmengen optimal zu bewältigen, immer beliebter. Mariadb ist der Ersatz für mysql, weil mysql nicht mehr sehr frei ist. In diesem Tutorial richten wir Nginx mit Php FPM auf CentOS ein. Die Anweisungen zur Installation von MariaDB werden in einem anderen Beitrag behandelt.

CentOS ist ein sehr beliebtes Betriebssystem für Linux-basierte Webserver. CentOS (Community Enterprise Operating System) basiert auf RHEL (RedHat Enterprice Linux) und ist damit 100% binärkompatibel. Für uns bedeutet es einfach, dass es in seiner Funktionsweise und Umgebung ähnlich zu rhel ist und dass wir den praktischen Befehl yum zur Verfügung haben, um Software einfach aus den Repositories zu installieren. In diesem Beispiel arbeiten wir an CentOS 6.4, das zum Zeitpunkt dieses Beitrags eine neuere Version ist.

Installieren Sie Nginx

Der erste Schritt besteht darin, den Nginx-Webserver zu installieren. Nginx ist in den standardmäßigen CentOS-Repositories nicht verfügbar, aber nginx bietet Centos-spezifische Repositories zur einfachen Verwendung.

Fügen Sie das nginx-Repository hinzu

Wir erstellen eine Repository-Datei im Verzeichnis /etc/yum.repos.d

$ nano /etc/yum.repos.d/nginx.repo

Öffnen Sie nun die Datei und fügen Sie die folgenden Zeilen hinzu. Diese Anweisungen werden direkt von Nginx bereitgestellt.

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

Speichern und schließen. Jetzt kann nginx installiert werden.

$ yum install nginx

Das Obige lädt den nginx-Webserver herunter, installiert ihn und macht ihn einsatzbereit.
Nach Abschluss der Installation ist es an der Zeit, eine Überprüfung vorzunehmen. Verwenden Sie zuerst den Dienstbefehl, um den Status von nginx zu überprüfen.

[[email protected] ~]# service nginx status
nginx is stopped

Das Obige zeigt, dass der Nginx-Dienst vorhanden ist, aber gestoppt wird. Überprüfen Sie als Nächstes die Konfiguration mit der Option t mit dem Befehl nginx.

[[email protected] ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Der obige Befehl zeigt an, dass die Konfiguration in Ordnung ist und alles zur Ausführung bereit ist. Und am wichtigsten ist, dass es auch den Speicherort der nginx-Konfigurationsdatei angibt. Zum Erstellen virtueller Hosts/mehrerer Domänen ist es wichtig, separate Konfigurationsdateien für jeden Host zu erstellen. Die Konfigurationen der virtuellen Hosts befinden sich unter /etc/nginx/conf.d/

OK, jetzt können wir den Nginx-Server starten.

[[email protected] conf.d]# service nginx start
Starting nginx:                                            [  OK  ]

Jetzt ist nginx einsatzbereit. Finden Sie die IP-Adresse des Nginx-Servers mit ifconfig heraus und stellen Sie von einem Browser aus eine Verbindung zu dieser IP her, um es zu testen.

http://192.168.1.4/

Möglicherweise müssen Sie Port 80 auf dem Centos-Server öffnen, falls er noch nicht geöffnet ist. In diesem Tutorial erfahren Sie, wie Sie den HTTP-Port auf Centos öffnen. Sobald es geöffnet ist, sollte die IP-Adresse des Nginx-Servers die Seite mit Inhalten wie diesem laden

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

Erstellen eines virtuellen Hosts

Virtuelle Hosts oder "Serverblöcke", wie Nginx sie nennt, ermöglichen es Nginx, mehrere Hosts basierend auf einem Namen zu bedienen. Beispielsweise kann es abc.com und cde.com gemeinsam hosten. Alles, was es braucht, ist eine Konfigurationsdatei für jeden Host, die die hostspezifischen Einstellungen wie Root-Verzeichnis usw. enthält.

Das Verzeichnis /etc/nginx/conf.d/ enthält eine default.conf-Konfigurationsdatei, die die Einstellungen für einen virtuellen Host enthält, der über http://localhost/

funktioniert

Überprüfen Sie die Datei und es wird der Speicherort der Webdateien angezeigt, der als Root bezeichnet wird.

location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

Unsere Webdatei (.html, .php und alles) sollte also in /usr/share/nginx/html abgelegt werden Verzeichnis.

Um weitere virtuelle Hosts zu erstellen, kopieren Sie einfach die Datei default.conf und bearbeiten Sie die Einstellungen für den Stammpfad und den Servernamen so, dass sie mit denen Ihrer Domäne/Ihres Hosts übereinstimmen.

$ cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/mysite.conf

Bearbeiten Sie nun mysite.conf und konfigurieren Sie Einstellungen wie Stammverzeichnis und Servername.
Testen Sie dann Ihre nginx-Konfiguration und starten Sie den Server neu. Das sollte den neuen virtuellen Host erstellen.

Dateiberechtigungen

Beim Einrichten des Root-Verzeichnisses für die Webdateien muss darauf geachtet werden, dass die Dateien und alle übergeordneten Verzeichnisse von „group“ und „others“ auf dem System lesbar sind. Zum Beispiel eine Berechtigung von 0755. Nginx könnte die Dateien nicht lesen, wenn die übergeordneten Verzeichnisse nicht lesbar sind.

Zum Beispiel, wenn Sie Ihre Webdateien im folgenden Verzeichnis ablegen

/home/joe/public_html

Stellen Sie dann sicher, dass sowohl das Home- als auch das Joe-Verzeichnis von der Gruppe und anderen gelesen werden können. Andernfalls, selbst wenn die Webdateien für andere lesbar sind, aber nicht das übergeordnete Verzeichnis joe, wäre nginx nicht in der Lage, die Dateien zu lesen, und das Fehlerprotokoll würde Meldungen wie diese enthalten

open() "/home/joe/public_html/index.html" failed (13: Permission denied)

Installieren Sie PHP und FPM

Nachdem der nginx-Server nun eingerichtet ist und läuft, besteht die nächste Aufgabe darin, den PHP-Interpreter zu installieren, damit .php-Dateien von nginx verarbeitet werden können.

Da php-fpm bereits Teil des CentOS-Repositorys ist, müssen wir keinen weiteren Repo-Eintrag wie den für das nginx-Paket erstellen. Um also php-fpm zu installieren, können wir einfach den Befehl yum verwenden.

$ yum install php-fpm

Möglicherweise möchten Sie die Option "-C" verwenden, wenn Sie nicht möchten, dass yum die Repository-Daten aktualisiert, bevor die Pakete installiert werden.

Überprüfen Sie nun den Status des php-fpm-Dienstes

# service php-fpm status
php-fpm is stopped

Dann starte es

# service php-fpm start
Starting php-fpm:                                          [  OK  ]
[[email protected] ~]#

Jetzt ist es an der Zeit, ein PHP-Skript zu erstellen und es zu testen. Das Verzeichnis der Webdateien ist /usr/share/nginx/html
Erstellen Sie also eine Datei in diesem Verzeichnis.

# nano /usr/share/nginx/html/phpinfo.php

Danach fügen wir diesen Inhalt hinzu.

<?php 
phpinfo();

Jetzt ist es an der Zeit, die Datei über unseren Browser zu öffnen.

http://192.168.1.4/phpinfo.php

NEIN, es wird noch nicht funktionieren, da wir nginx nicht für die Ausführung von PHP-Skripten konfiguriert haben.

Konfiguriere Nginx für die Ausführung von PHP

Nginx wird bereits mit einer Standardkonfiguration zur Verwendung von php fpm geliefert. Öffnen Sie die Datei /etc/nginx/conf.d/default.conf und kommentieren Sie die folgenden Zeilen aus.

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
	root           /usr/share/nginx/html;
	fastcgi_pass   127.0.0.1:9000;
	fastcgi_index  index.php;
	fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
	include        fastcgi_params;
}

Der SCRIPT_FILENAME ist sehr wichtig und muss auf den richtigen Ort verweisen, sonst würden Sie immer wieder "Datei nicht gefunden" erhalten. Fehler.

Speichern Sie die Datei und schließen Sie sie. Testen Sie jetzt Ihre neue nginx-Konfiguration.

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[[email protected] ~]#

Konfiguration ist in Ordnung. Starten Sie jetzt nginx neu, damit die neue Konfiguration wirksam wird.

# service nginx restart
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]
[[email protected] ~]#

Fertig. Öffnen Sie nun das PHP-Skript in Ihrem Browser und es sollte sofort funktionieren.

http://192.168.1.4/phpinfo.php

APC installieren

APC ist der alternative PHP-Cache, der es PHP ermöglicht, sowohl Benutzerdaten als auch Opcode zwischenzuspeichern. Dadurch wird die PHP-Ausführung schneller als gewöhnlich. Das Paket für APC ist im Basis-Repository selbst verfügbar, sodass wir keine zusätzlichen Repositories konfigurieren müssen.

Installieren Sie es sofort mit yum.

# yum install php-pecl-apc

Starten Sie nun php-fpm neu, damit apc aktiviert wird

# service php-fpm restart
Stopping php-fpm:                                          [  OK  ]
Starting php-fpm:                                          [  OK  ]
[[email protected] php.d]#

Die Konfigurationsdatei für apc befindet sich unter folgendem Pfad.

/etc/php.d/apc.ini

Derselbe Pfad wird auch in der Ausgabe der phpinfo()-Funktion erwähnt, wenn Sie dies überprüfen möchten.
Der Konfigurationsabschnitt der phpinfo.php-Seite sollte einen Abschnitt für apc haben, der die Werte verschiedener apc-Anweisungen zeigt. All diese Direktiven können in der apc.ini-Datei konfiguriert werden.

Notizen

1. Beim Konfigurieren virtueller Hosts schlägt der nginx-Konfigurationstest möglicherweise mit einem Fehler wie diesem fehl

# nginx -t
nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32
nginx: configuration file /etc/nginx/nginx.conf test failed

Um diesen Fehler zu beheben, öffnen Sie die Hauptkonfigurationsdatei von nginx unter /etc/nginx/nginx.conf und fügen Sie die folgende Zeile in den http-Block ein.

server_names_hash_bucket_size 64;

Dadurch wird die Hash-Bucket-Größe erhöht und der Fehler behoben.


Cent OS
  1. So installieren oder aktualisieren Sie auf PHP 7 auf CentOS 7 Linux Server

  2. So installieren Sie PHP 5.5 auf CentOS

  3. So installieren Sie PHP 5.6 unter CentOS 7

  4. So installieren Sie PHP 8 unter CentOS 7

  5. Installieren Sie PHP Server Monitor auf einem CentOS 7 Linux VPS

Installieren Sie Nginx unter CentOS 7 / RHEL 7

So installieren Sie Nginx unter CentOS

So installieren Sie LEMP auf CentOS 7

So installieren Sie Nginx unter CentOS 6

So installieren Sie den LEMP-Server unter CentOS 8

So installieren Sie Nginx unter CentOS 7