GNU/Linux >> LINUX-Kenntnisse >  >> OpenSuse

So installieren Sie Nginx, PHP und MySQL (LEMP Stack) unter OpenSUSE Leap 42.1

LEMP oder Linux, Engine-x, MySQL und PHP ist eine Sammlung von Software, die auf dem Linux-Betriebssystem installiert ist, um Ihre PHP-basierten Webanwendungen auf dem schnellen Nginx-Webserver zum Laufen zu bringen. Der LEMP-Stack bietet eine schnelle und zuverlässige Basis für das Hosting von Webanwendungen. LEMP ist eine Sammlung von Open-Source-Software mit einem vollständigen Dokumentationssatz, sodass Sie ganz einfach mehr über die verschiedenen Anwendungen und deren Zusammengehörigkeit erfahren können.

In diesem Tutorial zeige ich Ihnen, wie Sie Nginx, MariaDB und PHP-FPM auf openSUSE jump 42.1 installieren. Dann werde ich die OpenSUSE-Firewall mit SuSEfirewall2 konfigurieren, um den Zugriff auf den Nginx-Webserver zuzulassen, und Ihnen zeigen, wie Sie eine neue virtuelle Hostkonfiguration auf dem Nginx-Webserver hinzufügen können.

Schließlich installieren wir phpMyAdmin als einfach zu verwendendes Datenbankverwaltungstool und sichern es, indem wir das Webverzeichnis ändern und die HTTP-Authentifizierung für das phpMyAdmin-Verzeichnis aktivieren.

Voraussetzung

  • OpenSUSE Leap 42.1.
  • Root-Rechte.
  • Zypper-Befehl verstehen.

Schritt 1 - SuSEfirewall2 installieren und konfigurieren

SuSEfirewall2 ist ein Skript, das iptables-Regeln basierend auf der Konfigurationsdatei "/etc/sysconfig/SuSEfirewall2" generiert. Wir werden es installieren und konfigurieren, um Netzwerkangriffe auf den Serverport zu verhindern.

Installieren Sie SuSEfirewall2 mit Zypper:

zypper in SuSEfirewall2

Wenn die Installation abgeschlossen ist, müssen wir einige Ports für die Webanwendungen und SSH öffnen. Wir werden Port 22 für den ssh-Dienst und Port 80 und 443 für http und https öffnen. Gehen Sie in das Verzeichnis "/etc/sysconfig/" und bearbeiten Sie die Datei "SuSEfirewall2":

cd /etc/sysconfig/
vim SuSEfirewall2

Fügen Sie in Zeile 253 die Portnummern der Dienste hinzu, getrennt durch ein Leerzeichen:

FW_SERVICES_EXT_TCP="22 80 443"

Speichern Sie die Datei und beenden Sie sie.

Starten Sie die SuSEfirewall2 und den SSH-Dienst neu und testen Sie dann die Portkonfiguration, indem Sie sich mit Telnet mit dem Server verbinden.

SuSEfirewall2 und SSH-Dienst neu starten:

/sbin/rcSuSEfirewall2 restart
systemctl restart sshd

SSH-Verbindung mit Telnet auf Port 22 testen:

telnet 192.168.1.101 22

Schritt 2 – Nginx installieren und konfigurieren

Nginx oder Engine x ist ein leistungsstarker HTTP- und Proxy-Server mit geringem Speicherverbrauch. Es wird von großen Websites wie Netflix, Pinterest, CloudFlare, Github usw. verwendet. Nginx hat eine leicht zu erlernende Konfigurationssyntax und kann auch als Load Balancer mit Zustandsprüfungen und Reverse-Proxy mit Caching-Funktionen fungieren.

In diesem Schritt installieren wir nginx und fügen es hinzu, um es beim Booten zu starten. Installieren Sie es mit dem "zypper in"-Befehl:

zypper in nginx

Starten Sie nginx und aktivieren Sie es so, dass es beim Booten gestartet wird:

systemctl start nginx
systemctl enable nginx

Nginx ist jetzt gestartet, aber wenn Sie versuchen, über den Webbrowser darauf zuzugreifen, erhalten Sie einen 403-Fehler. Dieser Fehler tritt auf, weil im Webstammordner kein Standardindexdokument vorhanden ist. Um dieses Problem zu lösen, erstellen Sie eine neue Index-HTML im Root-Webverzeichnis „/srv/www/htdocs“. Gehen Sie in das Verzeichnis und erstellen Sie die Datei index.html:

cd /srv/www/htdocs/
echo "<h1>This is Nginx OpenSUSE Leap 42.1</h1>" > index.html

Öffnen Sie Ihren Webbrowser und geben Sie Ihre Server-IP ein und Sie erhalten die Indexseite:

http://192.168.1.101/

Schritt 3 – MariaDB installieren und konfigurieren

MariaDB ist ein Open-Source-RDBMS (Relational Database Management System), das von MySQL unter der GNU GPL-Lizenz abgezweigt wurde. In diesem Tutorial installieren wir MariaDB und konfigurieren das Root-Passwort für die MariaDB-Shell.

Installieren Sie MariaDB mit dem zypper-Befehl:

zypper in mariadb mariadb-client

Starten Sie MariaDB/MySQL und fügen Sie es mit dem folgenden systemctl-Befehl zum Boot-Start hinzu:

systemctl start mysql
systemctl enable mysql

Als nächstes konfigurieren Sie das Admin-Passwort für MariaDBb/MySQL mit dem mysqladmin-Befehl. Eine weitere Option, die Sie zu diesem Zweck verwenden können, ist die „mysql_secure_installation“. In diesem Schritt verwende ich mysqladmin:

/usr/bin/mysqladmin -u root password 'aqwe123'

Hinweis:

„aqwe123“ ist das neue Passwort für MariaDB/MySQL.

Melden Sie sich dann mit dem Benutzer root und dem Passwort aqwe123:

bei der MySQL-Shell an
mysql -u root -p
TYPE PASSWORD 'aqwe123'

Jetzt ist MariaDB/MySQL installiert und mit unserem neuen Passwort konfiguriert.

Schritt 4 – PHP-FPM installieren und konfigurieren

PHP-FPM oder FastCGI Process Manager ist eine Alternative für das ältere PHP FastCGI mit zusätzlichen Funktionen und Geschwindigkeitsverbesserungen. PHP-FPM eignet sich gut für kleine und große Websites, die auf der Programmiersprache PHP basieren.

In diesem Schritt installieren wir php5-fpm mit einigen zusätzlichen Erweiterungen, die von phpMyAdmin benötigt werden. Installieren Sie php5-fom und die Erweiterungen mit zypper:

zypper in php5 php5-mysql php5-fpm php5-gd php5-mbstring

Wenn die Installation abgeschlossen ist, gehen Sie in das Verzeichnis php5-fpm und kopieren Sie die Konfigurationsdatei:

cd /etc/php5/fpm/
cp php-fpm.conf.default php-fpm.conf

Bearbeiten Sie die Konfiguration mit dem vim-Befehl:

vim php-fpm.conf

Kommentieren Sie die Zeile 32 aus, um das php-fpm-Protokoll zu aktivieren. Das Standardpräfix ist /var. Wenn Sie Probleme mit php5-fpm haben, können Sie die Protokolldatei "/var/log/php-fpm.log" überprüfen.

error_log = log/php-fpm.log

In Zeile 148 konfigurieren wir den Eigentümer des Nginx-Prozesses für den Nginx-Benutzer. Ändern Sie den Benutzer und die Gruppe des Prozesses in nginx:

user = nginx
group = nginx

Zeile 159:Konfigurieren Sie php-fpm so, dass es unter einer Socket-Datei ausgeführt wird, nicht unter dem Port. Ändern Sie diese Zeile wie folgt:

listen = /var/run/php-fpm.sock

Und ändern Sie in Zeile 170 die Berechtigungen für den Unix-Socket auf den nginx-Benutzer und die Gruppe mit dem Modus 0660.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Speichern Sie die Datei und verlassen Sie den Editor.

Gehen Sie als Nächstes in das PHP-CLI-Verzeichnis und bearbeiten Sie die Datei php.ini mit vim:

cd /etc/php5/cli/
vim php.ini

Ändern Sie den Wert von cgi.fix_pathinfo aus Sicherheitsgründen auf Null. Zeile 178:

cgi.fix_pathinfo=0

speichern und beenden.

Kopieren Sie die php.ini in das Verzeichnis conf.d:

cp php.ini /etc/php5/conf.d/

Die PHP-FPM-Konfiguration ist zu diesem Zeitpunkt abgeschlossen, aber wir müssen Nginx noch konfigurieren. Wir müssen Nginx so einrichten, dass es mit php-fpm funktioniert.

Gehen Sie in das nginx-Konfigurationsverzeichnis und erstellen Sie mit dem cp-Befehl eine Sicherungskopie der Konfigurationsdatei:

cd /etc/nginx/
cp nginx.conf nginx.conf.backup

Bearbeiten Sie nginx.conf mit vim:

vim nginx.conf

Fügen Sie index.php in Zeile 48 hinzu:

index index.php index.html index.htm;

Fügen Sie den neuen PHP-Konfigurationsabschnitt in Zeile 68 hinzu, dies ist die Konfiguration für die Bearbeitung von .php-Dateianfragen.

       location ~ \.php$ {
                root /srv/www/htdocs;
                try_files $uri =404;
                include /etc/nginx/fastcgi_params;
                fastcgi_pass unix:/var/run/php-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       }

Speichern Sie die Datei und beenden Sie sie.

Testen Sie als Nächstes die Syntax der nginx-Konfigurationsdatei, um sicherzustellen, dass keine Fehler vorliegen. Starten Sie dann den php-fpm-Daemon und starten Sie Nginx neu:

nginx -t
systemctl start php-fpm
systemctl restart nginx

Um sicherzustellen, dass php-fpm und nginx ordnungsgemäß funktionieren, werden wir eine neue php-Testdatei hinzufügen. Gehen Sie in das DocumentRoot-Verzeichnis und erstellen Sie eine phpinfo-Datei mit dem Namen info.php:

cd /srv/www/htdocs/
echo "<?php phpinfo(); ?>" > info.php

Öffnen Sie Ihren Webbrowser und geben Sie Ihre Server-IP-Adresse ein:

http://192.168.1.101/info.php

Nginx und php-fpm funktionieren jetzt.

Schritt 5 – Konfigurieren Sie einen virtuellen Nginx-Host

In diesem Schritt zeige ich Ihnen, wie Sie eine virtuelle Hostkonfiguration für eine Website hinzufügen. Wir konfigurieren eine neue Domain „www.example.com“ und das Webroot-Verzeichnis in „/srv/www/example/“. Bitte ersetzen Sie example und example.com durch Ihren eigenen Domainnamen.

GNginx nginx-Verzeichnis und erstellen Sie ein neues Verzeichnis für die Virtualhost-Konfiguration.

cd /etc/nginx/
mkdir vhosts.d/
cd vhosts.d/

Als nächstes erstellen Sie eine neue Datei example.conf für den Domainnamen „example.com“ virtualhost.

vim example.conf

Fügen Sie die Konfiguration des virtuellen Hosts unten ein:

server {
    server_name example.com;
    return 301 $scheme://www.example.com$request_uri;
}

server {
    listen 80;

    root /srv/www/example;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

          location ~ \.php$ {
                try_files $uri =404;
                include /etc/nginx/fastcgi_params;
                fastcgi_pass unix:/var/run/php-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       }


}

Speichern Sie die Datei und beenden Sie sie.

Erstellen Sie nun das Verzeichnis für die Site „example.com“ im Verzeichnis /srv/www/ und erstellen Sie eine neue Indexdatei.

mkdir -p /srv/www/example/
cd /srv/www/example/
echo "<h1>This is www.example.com site.</h1>" > index.html
echo "<?php phpinfo(); ?>" > info.php

Öffnen Sie nun Ihren Webbrowser und besuchen Sie die Domain:

beispiel.com

Sie werden zur www-Domain umgeleitet und greifen nun auf die PHP-Datei zu:

http://www.example.com/info.php

Schritt 6 – Installieren und konfigurieren Sie phpMyAdmin

PhpMyAdmin ist eine PHP-basierte Anwendung zur Verwaltung von MySQL- oder MariaDB-Datenbanken über einen Webbrowser. In diesem Schritt werde ich phpMyAdmin so konfigurieren, dass es unter php-fpm läuft, und dann PHPMyAdmin sicher machen, indem ich den Zugriff auf die Anmeldeseite von phpMyAdmin einschränke.

Installieren Sie phpMyAdmin mit dem Zypper-Befehl:

zypper in phpMyAdmin

Der Befehl installiert alle Pakete, die von phpMyAdmin benötigt werden, einschließlich apache2-utils, das zum Erstellen der Passwortdatei erforderlich ist.

Jetzt haben wir phpMyAdmin auf dem System installiert. Als Nächstes erstellen wir mit dem htpasswd-Befehl eine neue htpasswd-Datei.

passwortdatei erstellen htpasswd:

htpasswd -c /etc/nginx/htpasswd megumi
TYPE YOUR PASSWORD for user megumi

Als Nächstes müssen wir Nginx so konfigurieren, dass die HTTP-Basisauthentifizierung für das phpmyadmin-Verzeichnis verwendet wird. Wir werden den Zugriff auf die Anmeldeseite von phpMyAdmin mit auth_basic einschränken, und nur Benutzer, die in der Datei „htpasswd“ enthalten sind, können sich bei phpMyAdmin anmelden.

Gehen Sie in das Nginx-Konfigurationsverzeichnis und bearbeiten Sie die Datei nginx.conf:

cd /etc/nginx/
vim nginx.conf

Definieren Sie das Web-Root-Verzeichnis innerhalb des Server-Abschnitts, indem Sie eine neue Zeile unter Zeile 40 hinzufügen (server_name):

        server_name  localhost;
        root /srv/www/htdocs;       #newline config

Fügen Sie dann die phpMyAdmin-Konfiguration für nginx in Zeile 60 hinzu:

    location ~ ^/phpMyAdmin/.*\.php$ {
        auth_basic "Restricted Access";
        auth_basic_user_file  /etc/nginx/htpasswd;
        fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include   fastcgi_params;
    }

Speichern Sie die Datei und verlassen Sie den Editor.

Testen Sie die nginx-Konfiguration und starten Sie nginx neu:

nginx -t
systemctl restart nginx

Öffnen Sie als Nächstes Ihren Webbrowser und besuchen Sie die phpMyAdmin-URL. Sie werden nach einem Benutzernamen und einem Passwort für die Anmeldeseite gefragt.

http://192.168.1.101/phpMyAdmin/

Melden Sie sich dann mit Ihrem MySQL-Benutzernamen und -Passwort an.

phpMyAdmin wurde erfolgreich installiert und nur der Benutzer in der htpasswd kann sich anmelden.


OpenSuse
  1. So installieren Sie Nginx mit PHP-FPM und MySQL unter openSUSE 12.1

  2. So installieren Sie Mysql Server 8 auf OpenSUSE Leap 15.3

  3. So installieren und konfigurieren Sie PHP und Apache (LAMP-Stack) unter OpenSUSE Leap 15.3

  4. So installieren und konfigurieren Sie Nginx als Proxy OpenSUSE Leap 15.3

  5. So installieren und konfigurieren Sie PHP und Nginx (LEMP) unter OpenSUSE Leap 15.3

So installieren Sie den LEMP-Stack unter Ubuntu 20.04

So installieren Sie Nginx, MySQL und PHP (LEMP) unter Ubuntu 20.04

So installieren Sie LEMP Stack (Nginx, MariaDB und PHP) auf AlmaLinux 8

So installieren Sie PHP 8.0 auf openSUSE 15 Leap

So installieren Sie Nginx, MySQL und PHP (LEMP) auf einem Ubuntu 15.04-Server

So installieren Sie Nginx, MySQL, PHP (LEMP) Stack auf einem Debian 8.3 Cloud Server