Installéiere LEMP (Nginx, PHP, MySQL mat MariaDB Engine a PhpMyAdmin) an Arch Linux


Wéinst sengem Rolling Release Modell, deen d'Schnëttzäit Software ëmfaassen ass Arch Linux net entworf an entwéckelt fir als Server ze lafen fir zouverlässeg Netzwierkservicer ze bidden, well et extra Zäit fir Ënnerhalt erfuerdert, konstante Upgrades a verstänneg Dateikonfiguratiounen.

Awer nach ëmmer, well Arch Linux mat enger CD-Kärinstallatioun mat minimaler Software virinstalléiert ass, kann et e festen Basisstartpunkt duerstellen fir déi meescht populär Netzwierkservicer dës Deeg z'installéieren, dëst och < b>LEMP oder LAMP, Apache Web Server, Nginx, PHP, SQL Datenbanken, Samba, FTP Server, BIND an anerer, vill vun hinnen gi vu Arch geliwwert > Offiziell Linux Repositories an anerer vun AUR.

Dësen Tutorial féiert duerch d'Installatioun an d'Konfiguratioun vum LEMP Stack (Nginx, PHP, MySQL mat MariaDB-Motor a PhpMyAdmin) vun engem Remote SSH, deen e staarke Fundament bitt fir Webserver Uwendungen ze bauen.

Virdrun Arch Linux Installatioun Guide, ausser leschten Deel op Netzwierker mat DHCP.

Schrëtt 1: Assignéiert statesch IP op Network Interface

1. No minimaler Arch Linux Core Installatioun Restart Äre Server, aloggen mat root Kont oder gläichwäerteg administrativ Sudo Kont, an identifizéieren Äre System NICs Apparat Nimm benotzt ip Link Kommando.

# ip link

2. Fir statesch Netzkonfiguratiounen ze ginn, gi mir Netctl Package benotzen fir Netzwierkverbindungen ze verwalten. Nodeems Dir Är Network Interfaces Nimm erfollegräich identifizéiert hutt, kopéiert ethernet-statesch Dateischabloun op de netctl Systemwee an ännert säin Numm an en deskriptiven Nummschema ( probéiert statesch String kombinéiert mam NIC Numm ze benotzen), andeems Dir de folgende Kommando ausgëtt.

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

3. De nächste Schrëtt ass dës nei Schabloundatei z'änneren andeems Dir d'Direktiven vun der Datei ännert an Är tatsächlech Netzwierkastellungen (Interface, IP/Netmask, Gateway, Broadcast, DNS) ubitt wéi am Auszuch hei ënnen.

# 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. De nächste Schrëtt ass fir Är Netzwierkverbindung duerch netctl Systemtool ze starten an Är Systemverbindung z'iwwerpréiwen andeems Dir déi folgend Kommandoen ausginn.

# netctl start static.ens33
# netctl status static.ens33

5. Wann Dir en aktiven gréngen Ausgangsstatus kritt hutt Dir Är Netzwierk Interface erfollegräich konfiguréiert an et ass Zäit fir se automatesch op Systembreet Servicer z'aktivéieren. Test och Äert Netzwierk andeems Dir e ping Kommando géint en Domain Numm ausféiert an och, installéiert net-tools Package (déi bekanntst Feature vun dësem Package ass ifconfig Kommando wéi Arch D'Entwéckler, déi als zimmlech deprecéiert ugesi ginn an et duerch iproute2 ersat hunn).

# netctl enable static.ens33
# pacman -S net-tools

6. Elo kënnt Dir ifconfig Kommando lafen fir Är Netzwierkschnëttplazen Astellungen z'iwwerpréiwen an ze kontrolléieren ob alles richteg ugewise gëtt, da neustart Äre System fir sécher ze sinn. alles ass op der Plaz a richteg konfiguréiert.

# ping linux-console.net

Schrëtt 2: Installéiert LEMP Software

Wéi an dësem Artikel Aféierung uginn LEMP steet fir Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB déi eng vun de verbreetste Webapplikatiounsplattformen haut no LAMP ass (den selwechte Stack mat Apache an der Equatioun).

7. Virun tatsächlech installéieren LEMP Stack musse mir de System aktualiséieren an dann d'Fernbedienung op Arch Linux Server gewannen. Wéi Dir wahrscheinlech wësst ass OpenSSH den Haaptkandidat fir dës Aarbecht, also fuert weider an installéiert et, start SSH Daemon an aktivéiert et systembreet.

$ sudo pacman -Syu
$ sudo pacman –S openssh
$ sudo systemctl start sshd
$ sudo systemctl status sshd
$ sudo systemctl enable sshd

Elo ass et Zäit fir mat der LEMP Installatioun virzegoen. Well dësen Tutorial soll als ëmfaassend Guide sinn, wäert ech d'LEMP Stack Installatioun a kleng Stécker opdeelen, Schrëtt fir Schrëtt.

8. Installéiert als éischt Nginx Web Server, da fänkt et un a verifizéiere säi Status andeems Dir déi folgend Kommandoen ausginn.

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

9. Den nächsten Service deen installéiert gëtt ass MySQL Datebank. Gitt de folgende Kommando aus fir MySQL-Datebankserver z'installéieren a wielt MariaDB-Motor, start dann den Daemon-Status a verifizéieren.

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

10. De nächste Schrëtt ass fir e ganz séchert Ëmfeld fir MySQL Datenbanken ze bidden andeems Dir e Passwuert fir MySQL Root Kont ubitt, anonyme Benotzerkont ewechhuelen, Testdatenbank a Rootkonten erofhuelen, déi vun ausserhalb lokalhost zougänglech sinn. Fëllt de folgende Kommando aus fir d'MySQL Sécherheet ze verbesseren, dréckt op [Enter] fir dat aktuellt Root Account Passwuert, äntwert dann Jo op all Froen (Konfiguréiert och Äert Root Account Passwuert).

$ sudo mysql_secure_installation

Bemierkung: Op jidde Fall verwiesselt de MySQL Root Account net mam Linux System Root Account - et sinn zwou verschidde Saachen - net sou ënnerschiddlech, awer se lafen op verschiddene Niveauen.

Fir MySQL Sécherheet Login op d'Datebank z'iwwerpréiwen mat der mysql -u root -p Kommando Syntax, gitt Äert Root Passwuert dann verloosst d'Datebank mam Kommando exit;.

# mysql -u root -p

11. Elo ass et Zäit fir PHP Server-Säit Skriptsprooch z'installéieren fir komplex dynamesch Webapplikatiounen z'entwéckelen an ze lafen, net nëmmen HTML/CSS Code ze déngen.

Well mir Nginx als Webserver benotzen, musse mir de PHP-FPM ënnerstëtzte Modul installéieren fir duerch Fast Common Gateway ze kommunizéieren an dynameschen Inhalt generéiert z'änneren vun PHP Scripten.

Gitt déi folgend Kommandozeil aus fir den PHP-FPM Service z'installéieren, da fänkt de Daemon un a verifizéiert de Status.

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

Fir all verfügbar PHP Modul opzemaachen, gitt déi folgend Kommandoen aus.

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

12. Ee vun de leschte Schrëtt ass fir PhpMyAdmin Web Interface fir MySQL Datebank z'installéieren. Gitt de folgende Kommando aus fir PhpMyAdmin zesumme mat sengem PHP néideg Modul z'installéieren, erstellt dann e symbolesche Link fir de PhpMyaAdmin Systemwee op Nginx Standard Root Wee.

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

13. Dann konfiguréieren php.ini Datei fir néideg Extensiounen ze enthalen déi vun der PhpMyAdmin Applikatioun néideg sinn.

$ sudo nano /etc/php/php.ini

Situéiert mat [CTRL+W] Schlësselen an decommentéieren (läscht ; um Ufank vun der Zeil) déi folgend Zeilen.

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

Op derselwechter Datei lokaliséiert an edit open_basedir Direktiv fir mat de folgenden abegraff Verzeichnisser ze gleewen.

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

14. De nächste Schrëtt ass PHP-FPM FastCGI op localhost Nginx Direktiv z'aktivéieren. Gitt de nächste Kommando op d'Backup vun nginx.conf Webserver Dateikonfiguratioun an ersetzt se dann duerch de folgenden Inhalt.

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

Füügt de ganzen folgenden Inhalt op nginx.conf.

#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. Nodeems all Dateiekonfiguratiounen gemaach gi sinn, musst Dir just Nginx an PHP-FPM Servicer nei starten an Äre Browser op http:// localhost/phpmyadmin URL vum lokalen Node oder http://arch_IP/phpmyadmin vun engem anere Computer.

$ sudo systemctl restart php-fpm
$ sudo systemctl restart nginx

16. Wann alles leeft wéi virgesinn ass de leschte Schrëtt fir LEMP System breet mat de folgende Kommandoen z'aktivéieren.

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

Félicitatiounen! Dir hutt LEMP op Arch Linux installéiert a konfiguréiert an elo hutt Dir eng voll dynamesch Interface fir Webapplikatiounen unzefänken an z'entwéckelen.

Och wann Arch Linux net dee ganz gëeegente System ass fir op Produktiounsserver ze lafen wéinst sengem Gemeinschaftsorientéierte Rolling Release Modell, kann et eng ganz séier an zouverlässeg Quell fir kleng net-kritesch Produktiounsëmfeld sinn.