Zoeken op website

LEMP (Nginx, PHP, MySQL met MariaDB-engine en PhpMyAdmin) installeren in Arch Linux


Vanwege het Rolling Release-model dat moderne software omarmt, is Arch Linux niet ontworpen en ontwikkeld om te draaien als een server om betrouwbare netwerkdiensten te leveren, omdat het extra tijd vergt voor onderhoud, constante upgrades en verstandige bestandsconfiguraties.

Maar toch, omdat Arch Linux wordt geleverd met een cd-kerninstallatie met minimale software vooraf geïnstalleerd, kan het een solide basis vormen voor het opstarten van de meeste populaire netwerkdiensten van vandaag de dag, inclusief < b>LEMP of LAMP, Apache Web Server, Nginx, PHP, SQL-databases, Samba, FTP-servers, BIND en andere, waarvan er vele worden geleverd door Arch Officiële Linux-repository's en andere van AUR.

Deze tutorial begeleidt u bij het installeren en configureren van de LEMP-stack (Nginx, PHP, MySQL met MariaDB-engine en PhpMyAdmin) vanaf een op afstand gebruikte SSH, wat een sterke basis kan bieden voor het bouwen van webserverapplicaties.

Vereisten

Vorige Arch Linux Installatiehandleiding, met uitzondering van het laatste deel over netwerken met DHCP.

Stap 1: Wijs een statisch IP-adres toe aan de netwerkinterface

1. Na een minimale Arch Linux kerninstallatie start u uw server opnieuw op, logt u in met een root-account of een gelijkwaardig beheerderssudo-account en identificeert u de apparaatnamen van uw systeem-NIC's met behulp van ip-link opdracht.

ip link

2. Om statische netwerkconfiguraties toe te wijzen, gaan we het Netctl-pakket gebruiken om netwerkverbindingen te beheren. Nadat u de namen van uw netwerkinterfaces met succes heeft geïdentificeerd, kopieert u de ethernet-static bestandssjabloon naar het netctl systeempad en wijzigt u de naam in een beschrijvend naamgevingsschema ( probeer een “statische”-reeks te gebruiken in combinatie met de naam van de NIC), door de volgende opdracht te geven.

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

3. De volgende stap is het bewerken van dit nieuwe sjabloonbestand door de richtlijnen van het bestand te wijzigen en uw daadwerkelijke netwerkinstellingen op te geven (Interface, IP/Netmask, Gateway, Broadcast, DNS), zoals in het onderstaande fragment.

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 volgende stap is het starten van uw netwerkverbinding via de netctl systeemtool en het verifiëren van uw systeemconnectiviteit door de volgende opdrachten te geven.

netctl start static.ens33
netctl status static.ens33

5. Als u een actieve groene afsluitstatus krijgt, heeft u uw netwerkinterface met succes geconfigureerd en is het tijd om deze automatisch in te schakelen voor systeembrede services. Test ook uw netwerk door een ping-opdracht uit te voeren tegen een domeinnaam en installeer ook het net-tools-pakket (de meest bekende functie van dit pakket is de ifconfig-opdracht die Arch ontwikkelaars beschouwden dit als verouderd en hebben het vervangen door iproute2).

Schakel systeembrede NIC-configuraties in
netctl enable static.ens33
Installeer het net-tools-pakket
pacman -S net-tools

6. Nu kunt u de opdracht ifconfig uitvoeren om uw Netwerkinterfaces-instellingen te verifiëren en te controleren of alles correct wordt weergegeven, en vervolgens opnieuw opstarten b> uw systeem om er zeker van te zijn dat alles aanwezig is en correct is geconfigureerd.

ping linux-console.net

Stap 2: Installeer LEMP-software

Zoals aangegeven in de introductie van dit artikel, staat LEMP voor Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB, wat tegenwoordig een van de meest verspreide webapplicatieplatforms is, na LAMP (de dezelfde stapel met Apache in vergelijking).

7. Voordat we de LEMP-stack daadwerkelijk installeren, moeten we het systeem updaten en vervolgens afstandsbediening krijgen voor de Arch Linux-server. Zoals je waarschijnlijk weet is OpenSSH de belangrijkste kandidaat voor deze taak, dus ga je gang en installeer het, start de SSH-daemon en schakel het systeembreed in.

sudo pacman -Syu
sudo pacman –S openssh

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

Nu is het tijd om verder te gaan met de installatie van LEMP. Omdat deze tutorial bedoeld is als een uitgebreide handleiding, zal ik de LEMP-stackinstallatie stap voor stap in kleine stukjes verdelen.

8. Installeer eerst Nginx Web Server, start het vervolgens en verifieer de status door de volgende opdrachten te geven.

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

9. De volgende service die moet worden geïnstalleerd is de MySQL database. Geef de volgende opdracht om de MySQL-databaseserver te installeren en kies de MariaDB-engine, start vervolgens en verifieer de status van de daemon.

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

10. De volgende stap is het bieden van een zeer veilige omgeving voor MySQL-databases door een wachtwoord op te geven voor het MySQL-rootaccount, het anonieme gebruikersaccount te verwijderen, de testdatabase en root-accounts te verwijderen die toegankelijk zijn van buiten localhost. Voer de volgende opdracht uit om de MySQL-beveiliging te verbeteren, druk op [Enter] voor het huidige root-accountwachtwoord en antwoord vervolgens Ja op alle vragen (stel ook uw root-accountwachtwoord in).

sudo mysql_secure_installation

Opmerking: Verwar in geen geval het MySQL-rootaccount met het Linux-systeemrootaccount – het zijn twee verschillende dingen – niet zo verschillend, maar ze draaien op verschillende niveaus.

Om de MySQL-beveiliging te verifiëren, logt u in op de database met de opdrachtsyntaxis mysql -u root -p, geeft u uw rootwachtwoord op en verlaat u de database met de opdracht exit;.

mysql -u root -p

11. Nu is het tijd om PHP scripttaal op de server te installeren, zodat je complexe dynamische webapplicaties kunt ontwikkelen en uitvoeren, en niet alleen HTML/CSS kunt leveren b> code.

Omdat we Nginx als webserver gebruiken, moeten we een door PHP-FPM ondersteunde module installeren om te communiceren via Fast Common Gateway en de gegenereerde dynamische inhoud te wijzigen door PHP-scripts.

Voer de volgende opdrachtregel uit om de PHP-FPM-service te installeren, start vervolgens de daemon en verifieer de status.

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

Om alle beschikbare PHP-modules weer te geven, voert u de volgende opdrachten uit.

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

12. Een van de laatste stappen is het installeren van PhpMyAdmin Web Interface voor de MySQL-database. Voer de volgende opdracht uit om PhpMyAdmin te installeren samen met de benodigde PHP-module en maak vervolgens een symbolische link voor het PhpMyaAdmin-systeempad naar het standaard rootpad van Nginx.

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

13. Configureer vervolgens het bestand php.ini zo dat het de noodzakelijke extensies bevat die nodig zijn voor de PhpMyAdmin-applicatie.

sudo nano /etc/php/php.ini

Zoek met de toetsen [CTRL+W] en verwijder de commentaartekens (verwijder ; aan het begin van de regel) voor de volgende regels.

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

Zoek en bewerk in hetzelfde bestand de richtlijn open_basedir zodat deze lijkt op de volgende opgenomen mappen.

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

14. De volgende stap is het inschakelen van PHP-FPM FastCGI op de localhost Nginx-richtlijn. Geef de volgende opdracht om een back-up te maken van de nginx.conf webserverbestandsconfiguratie en vervang deze vervolgens door de volgende inhoud.

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

Voeg de hele volgende inhoud toe 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. Nadat alle bestandsconfiguraties zijn uitgevoerd, hoeft u alleen maar de Nginx- en PHP-FPM-services opnieuw te starten en uw browser naar http://localhost/phpmyadmin URL van lokaal knooppunt of http://arch_IP/phpmyadmin van een andere computer.

sudo systemctl restart php-fpm
sudo systemctl restart nginx

16. Als alles werkt zoals bedoeld, is de laatste stap het inschakelen van LEMP voor het hele systeem met de volgende opdrachten.

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

Gefeliciteerd! U heeft LEMP geïnstalleerd en geconfigureerd op Arch Linux en nu beschikt u over een volledig dynamische interface om webapplicaties te starten en te ontwikkelen.

Hoewel Arch Linux niet het meest geschikte systeem is om op productieservers te draaien vanwege het gemeenschapsgerichte rolling release-model, kan het een zeer snelle en betrouwbare bron zijn voor kleine, niet-kritieke productieomgevingen.