Website-Suche

Installation von LEMP (Nginx, PHP, MySQL mit MariaDB-Engine und PhpMyAdmin) in Arch Linux


Aufgrund seines Rolling-Release-Modells, das modernste Software umfasst, wurde Arch Linux nicht für den Betrieb als Server zur Bereitstellung zuverlässiger Netzwerkdienste konzipiert und entwickelt, da es zusätzliche Zeit für Wartung, Konstanten-Upgrades und sinnvolle Dateikonfigurationen erfordert.

Da Arch Linux jedoch mit einer CD-Kerninstallation mit minimaler vorinstallierter Software geliefert wird, kann es dennoch eine solide Basis für die Installation der meisten gängigen Netzwerkdienste dieser Tage darstellen, darunter auch < b>LEMP oder LAMP, Apache Web Server, Nginx, PHP, SQL-Datenbanken, Samba, FTP-Server, BIND und andere, viele davon werden von Arch Offizielle Linux-Repositories und andere von AUR.

Dieses Tutorial führt durch die Installation und Konfiguration des LEMP-Stacks (Nginx, PHP, MySQL mit MariaDB-Engine und PhpMyAdmin) aus der Ferne über SSH, was eine solide Grundlage für die Erstellung von Webserveranwendungen bieten kann.

Anforderungen

Vorheriges Arch Linux-Installationshandbuch, mit Ausnahme des letzten Teils zum Netzwerk mit DHCP.

Schritt 1: Statische IP der Netzwerkschnittstelle zuweisen

1. Starten Sie nach der minimalen Arch Linux-Kerninstallation Ihren Server neu, melden Sie sich mit dem Root-Konto oder einem entsprechenden administrativen Sudo-Konto an und identifizieren Sie die Gerätenamen Ihrer System-NICs mithilfe des IP-Links Befehl.

ip link

2. Um statische Netzwerkkonfigurationen zuzuweisen, verwenden wir das Paket Netctl, um Netzwerkverbindungen zu verwalten. Nachdem Sie die Namen Ihrer Netzwerkschnittstellen erfolgreich identifiziert haben, kopieren Sie die Dateivorlage ethernet-static in den Systempfad netctl und ändern Sie den Namen in ein beschreibendes Benennungsschema ( Versuchen Sie, die Zeichenfolge „statisch“ in Kombination mit dem Namen der Netzwerkkarte zu verwenden), indem Sie den folgenden Befehl ausgeben.

cp /etc/netctl/examples/ethenet-static  /etc/netctl/static.ens33

3. Der nächste Schritt besteht darin, diese neue Vorlagendatei zu bearbeiten, indem Sie die Dateianweisungen ändern und Ihre tatsächlichen Netzwerkeinstellungen (Schnittstelle, IP/Netzmaske, Gateway, Broadcast, DNS) wie im folgenden Auszug angeben.

nano  /etc/netctl/static.ens33

Description='A basic static ethernet connection for ens33'
Interface=ens33
Connection=ethernet
IP=static
Address=('192.168.1.33/24')
Gateway='192.168.1.1'
Brodcast='192.168.1.255'
DNS=('192.168.1.1' '8.8.8.8')

4. Der nächste Schritt besteht darin, Ihre Netzwerkverbindung über das Systemtool netctl zu starten und Ihre Systemkonnektivität zu überprüfen, indem Sie die folgenden Befehle ausführen.

netctl start static.ens33
netctl status static.ens33

5. Wenn Sie einen aktiven grünen Exit-Status erhalten, haben Sie Ihre Netzwerkschnittstelle erfolgreich konfiguriert und es ist Zeit, sie automatisch für systemweite Dienste zu aktivieren. Testen Sie auch Ihr Netzwerk, indem Sie einen ping-Befehl für einen Domänennamen ausführen und außerdem das net-tools-Paket installieren (die bekannteste Funktion dieses Pakets ist der ifconfig-Befehl, der Arch Entwickler betrachteten es als veraltet und ersetzten es durch iproute2).

Aktivieren Sie systemweite NIC-Konfigurationen
netctl enable static.ens33
Installieren Sie das Net-Tools-Paket
pacman -S net-tools

6. Jetzt können Sie den Befehl ifconfig ausführen, um Ihre Netzwerkschnittstellen-Einstellungen zu überprüfen und zu prüfen, ob alles korrekt angezeigt wird, und dann neu starten Ihr System, um sicherzustellen, dass alles vorhanden und richtig konfiguriert ist.

ping linux-console.net

Schritt 2: Installieren Sie die LEMP-Software

Wie in dieser Artikeleinleitung erwähnt, steht LEMP für Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB, eine der heute am weitesten verbreiteten Webanwendungsplattformen nach LAMP (die gleicher Stack mit Apache in Gleichung).

7. Bevor wir den LEMP-Stack tatsächlich installieren, müssen wir das System aktualisieren und dann die Fernsteuerung für den Arch Linux-Server erlangen. Wie Sie wahrscheinlich wissen, ist OpenSSH der Hauptkandidat für diesen Job. Installieren Sie es also, starten Sie den SSH-Daemon und aktivieren Sie ihn systemweit.

sudo pacman -Syu
sudo pacman –S openssh

sudo systemctl start sshd
sudo systemctl status sshd
sudo systemctl enable sshd

Jetzt ist es an der Zeit, mit der Installation von LEMP fortzufahren. Da dieses Tutorial als umfassender Leitfaden gedacht ist, werde ich die LEMP-Stack-Installation Schritt für Schritt in kleine Teile unterteilen.

8. Installieren Sie zuerst Nginx Web Server, starten Sie ihn dann und überprüfen Sie seinen Status, indem Sie die folgenden Befehle ausgeben.

sudo pacman -S nginx
sudo systemctl start nginx
sudo systemctl status nginx

9. Der nächste zu installierende Dienst ist die MySQL-Datenbank. Geben Sie den folgenden Befehl aus, um den MySQL-Datenbankserver zu installieren, und wählen Sie die MariaDB-Engine aus. Starten Sie dann den Daemon-Status und überprüfen Sie ihn.

sudo pacman -S mysql
sudo systemctl start mysqld
sudo systemctl status mysqld

10. Der nächste Schritt besteht darin, eine hochsichere Umgebung für MySQL-Datenbanken bereitzustellen, indem Sie ein Passwort für das MySQL-Root-Konto bereitstellen, anonyme Benutzerkonten entfernen, Testdatenbank- und Root-Konten entfernen, auf die von außerhalb von localhost zugegriffen werden kann. Führen Sie den folgenden Befehl aus, um die MySQL-Sicherheit zu verbessern, drücken Sie die [Eingabetaste] für das aktuelle Root-Konto-Passwort und beantworten Sie dann alle Fragen mit Ja (richten Sie außerdem Ihr Root-Konto-Passwort ein).

sudo mysql_secure_installation

Hinweis: Verwechseln Sie das MySQL-Root-Konto auf keinen Fall mit dem Linux-System-Root-Konto – es sind zwei verschiedene Dinge – nicht so unterschiedlich, aber sie laufen auf unterschiedlichen Ebenen.

Um die MySQL-Sicherheitsanmeldung bei der Datenbank mithilfe der Befehlssyntax mysql -u root -p zu überprüfen, geben Sie Ihr Root-Passwort ein und verlassen Sie die Datenbank dann mit dem Befehl exit;.

mysql -u root -p

11. Jetzt ist es an der Zeit, die serverseitige Skriptsprache PHP zu installieren, um komplexe dynamische Webanwendungen entwickeln und ausführen zu können und nicht nur HTML/CSS Code.

Da wir Nginx als Webserver verwenden, müssen wir das von PHP-FPM unterstützte Modul installieren, um über Fast Common Gateway zu kommunizieren und generierte dynamische Inhalte zu ändern durch PHP-Skripte.

Geben Sie die folgende Befehlszeile ein, um den PHP-FPM-Dienst zu installieren, starten Sie dann den Daemon und überprüfen Sie den Status.

sudo pacman –S php php-fpm
sudo systemctl start php-fpm
sudo systemctl status php-fpm

Um alle verfügbaren PHP-Module aufzulisten, geben Sie die folgenden Befehle ein.

sudo pacman –S php[TAB]
sudo pacman –Ss | grep php

12. Einer der letzten Schritte ist die Installation der PhpMyAdmin-Weboberfläche für die MySQL-Datenbank. Geben Sie den folgenden Befehl aus, um PhpMyAdmin zusammen mit dem für PHP benötigten Modul zu installieren, und erstellen Sie dann einen symbolischen Link für den PhpMyaAdmin-Systempfad zum Nginx-Standard-Root-Pfad.

pacman -S phpmyadmin php-mcrypt
sudo ln -s /usr/share/webapps/phpMyAdmin   /usr/share/nginx/html

13. Konfigurieren Sie dann die Datei php.ini so, dass sie die erforderlichen Erweiterungen enthält, die von der PHPMyAdmin-Anwendung benötigt werden.

sudo nano /etc/php/php.ini

Suchen Sie mit den Tasten [STRG+W] und kommentieren Sie die folgenden Zeilen aus (entfernen Sie ; am Zeilenanfang).

extension=mysqli.so
extension=mysql.so
extension=mcrypt.so
mysqli.allow_local_infile = On

Suchen Sie in derselben Datei und bearbeiten Sie die Anweisung open_basedir so, dass sie den folgenden enthaltenen Verzeichnissen ähnelt.

open_basedir= /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/

14. Der nächste Schritt besteht darin, PHP-FPM FastCGI in der Localhost-Nginx-Direktive zu aktivieren. Geben Sie den nächsten Befehl aus, um die Dateikonfiguration des Webservers nginx.conf zu sichern, und ersetzen Sie sie dann durch den folgenden Inhalt.

sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
sudo nano /etc/nginx/nginx.conf

Fügen Sie den gesamten folgenden Inhalt zu nginx.conf hinzu.

#user html;
worker_processes  2;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    gzip  on;

    server {
        listen       80;
        server_name  localhost;
            root   /usr/share/nginx/html;
        charset koi8-r;
        location / {
        index  index.php index.html index.htm;
                                autoindex on;
                                autoindex_exact_size off;
                                autoindex_localtime on;
        }

                                location /phpmyadmin {
        rewrite ^/* /phpMyAdmin last;
    }

 error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }

        location ~ /\.ht {
            deny  all;
        }
    }         
}

15. Nachdem alle Dateikonfigurationen vorgenommen wurden, müssen Sie nur noch die Dienste Nginx und PHP-FPM neu starten und Ihren Browser darauf verweisen http://localhost/phpmyadmin URL vom lokalen Knoten oder http://arch_IP/phpmyadmin von einem anderen Computer.

sudo systemctl restart php-fpm
sudo systemctl restart nginx

16. Wenn alles wie vorgesehen läuft, besteht der letzte Schritt darin, LEMP systemweit mit den folgenden Befehlen zu aktivieren.

sudo systemctl enable php-fpm
sudo systemctl enable nginx
sudo systemctl enable mysqld

Herzlichen Glückwunsch! Sie haben LEMP auf Arch Linux installiert und konfiguriert und verfügen nun über eine vollständig dynamische Schnittstelle zum Starten und Entwickeln von Webanwendungen.

Obwohl Arch Linux aufgrund seines Community-orientierten Rolling-Release-Modells nicht das am besten geeignete System für die Ausführung auf Produktionsservern ist, kann es eine sehr schnelle und zuverlässige Quelle für kleine, nicht kritische Produktionsumgebungen sein.