Instaliranje LEMP-a (Nginx, PHP, MySQL sa MariaDB motorom i PhpMyAdmin) u Arch Linux


Zbog svog modela Rolling Release koji obuhvata najnoviji softver Arch Linux nije dizajniran i razvijen da radi kao server za pružanje pouzdanih mrežnih usluga jer zahtijeva dodatno vrijeme za održavanje, konstantne nadogradnje i razumne konfiguracije datoteka.

Ali, ipak, budući da Arch Linux dolazi s instalacijom jezgre CD-a s minimalnim unaprijed instaliranim softverom, može predstavljati solidnu početnu tačku za instaliranje većine popularnih mrežnih usluga ovih dana, uključujući < b>LEMP ili LAMP, Apache Web Server, Nginx, PHP, SQL baze podataka, Samba, FTP serveri, BIND i drugi, mnogi od njih su dostupni sa Arch Linux službena spremišta i ostalo iz AUR.

Ovaj vodič će voditi kroz instalaciju i konfigurisanje LEMP steka (Nginx, PHP, MySQL sa MariaDB motorom i PhpMyAdmin) sa daljinskog korišćenja SSH-a, što može pružiti jaku osnovu za izgradnju Web serverskih aplikacija.

Zahtjevi

Prethodni Arch Linux vodič za instalaciju, osim posljednjeg dijela o umrežavanju s DHCP-om.

Korak 1: Dodijelite statičku IP na mrežnom sučelju

1. Nakon minimalne instalacije jezgre Arch Linux, ponovo pokrenite server, prijavite se s root računom ili ekvivalentnim administrativnim sudo računom i identifikujte nazive uređaja vašeg sistemskog NIC-a koristeći ip link komanda.

ip link

2. Za dodjelu statičkih mrežnih konfiguracija koristit ćemo Netctl paket za upravljanje mrežnim vezama. Nakon što ste uspješno identificirali svoje mrežne interfejse imena, kopirajte ethernet-static predložak datoteke na netctl sistemsku putanju i promijenite njegovo ime u opisnu šemu imenovanja ( pokušajte koristiti “static” string u kombinaciji sa imenom NIC-a), izdavanjem sljedeće naredbe.

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

3. Sljedeći korak je uređivanje ovog novog predloška datoteke promjenom direktiva datoteke i pružanjem vaših stvarnih mrežnih postavki (Interfejs, IP/mrežna maska, Gateway, Broadcast, DNS) kao u donjem izvodu.

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. Sljedeći korak je da pokrenete vašu mrežnu vezu putem netctl sistemskog alata i provjerite povezanost vašeg sistema izdavanjem sljedećih naredbi.

netctl start static.ens33
netctl status static.ens33

5. Ako dobijete status aktivnog zelenog izlaza, uspješno ste konfigurirali svoj mrežni interfejs i vrijeme je da ga automatski omogućite na uslugama širom sistema. Također testirajte svoju mrežu pokretanjem naredbe ping protiv imena domene i također instalirajte paket net-tools (najpoznatija karakteristika ovog paketa je ifconfig komanda koju Arch programeri koji se smatraju zastarjelim i zamijenili su ga sa iproute2).

Omogućite konfiguracije NIC-a širom sistema
netctl enable static.ens33
Instalirajte paket net-tools
pacman -S net-tools

6. Sada možete pokrenuti naredbu ifconfig da provjerite postavke mrežnih interfejsa i provjerite da li je sve ispravno prikazano, a zatim ponovo pokrenite b> vaš sistem kako biste bili sigurni da je sve na svom mjestu i ispravno konfigurirano.

ping linux-console.net

Korak 2: Instalirajte LEMP softver

Kao što je istaknuto u ovom članku uvod LEMP je skraćenica za Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB koja je danas jedna od najrasprostranjenijih platformi za web aplikacije nakon LAMP ( isti stog sa Apacheom u jednadžbi).

7. Prije nego što stvarno instaliramo LEMP stack, moramo ažurirati sistem i zatim dobiti daljinsku kontrolu na Arch Linux serveru. Kao što vjerovatno znate, OpenSSH je glavni kandidat za ovaj posao pa ga nastavite i instalirajte, pokrenite SSH demon i omogućite ga širom sistema.

sudo pacman -Syu
sudo pacman –S openssh

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

Sada je vrijeme da nastavite sa LEMP instalacijom. Budući da je ovaj vodič zamišljen kao sveobuhvatan vodič, podijelit ću instalaciju steka LEMP na male dijelove, korak po korak.

8. Prvo instalirajte Nginx Web Server, zatim ga pokrenite i provjerite njegov status izdavanjem sljedećih naredbi.

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

9. Sljedeća usluga koju treba instalirati je MySQL baza podataka. Izdajte sljedeću naredbu da instalirate MySQL server baze podataka i odaberite MariaDB motor, zatim pokrenite i provjerite status demona.

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

10. Sljedeći korak je obezbjeđivanje visoko bezbednog okruženja za MySQL baze podataka davanjem lozinke za MySQL root nalog, uklanjanjem anonimnog korisničkog naloga, uklanjanjem test baze podataka i root naloga koji su dostupni izvan lokalnog hosta. Pokrenite sljedeću naredbu da poboljšate MySQL sigurnost, pritisnite [Enter] za trenutnu lozinku root naloga, a zatim odgovorite na Da na sva pitanja (također postavite lozinku svog root naloga).

sudo mysql_secure_installation

Napomena: Ni na koji način nemojte brkati MySQL root nalog sa root nalogom Linux sistema – to su dve različite stvari – ne toliko različite, ali rade na različitim nivoima.

Da biste potvrdili MySQL sigurnosnu prijavu na bazu podataka koristeći sintaksu naredbe mysql -u root -p, unesite svoju root lozinku, a zatim napustite bazu podataka pomoću naredbe exit;.

mysql -u root -p

11. Sada je vrijeme da instalirate PHP skriptni jezik na strani servera kako biste mogli razvijati i pokretati složene dinamičke web aplikacije, a ne samo služiti HTML/CSS kod.

Budući da koristimo Nginx kao web server moramo instalirati PHP-FPM modul za komunikaciju preko Fast Common Gatewaya i mijenjati generirani dinamički sadržaj pomoću PHP skripti.

Izdajte sljedeću komandnu liniju da instalirate PHP-FPM uslugu, zatim pokrenite demon i provjerite status.

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

Za popis svih dostupnih PHP modula izdajte sljedeće naredbe.

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

12. Jedan od posljednjih koraka je instaliranje PhpMyAdmin Web Interface za MySQL bazu podataka. Izdajte sljedeću naredbu da instalirate PhpMyAdmin zajedno sa njegovim PHP potrebnim modulom, a zatim kreirajte simboličku vezu za PhpMyaAdmin sistemsku putanju do Nginx default root putanje.

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

13. Zatim konfigurirajte datoteku php.ini da uključuje neophodne ekstenzije potrebne aplikaciji PhpMyAdmin.

sudo nano /etc/php/php.ini

Pronađite tipke [CTRL+W] i dekomentirajte (uklonite ; na početku reda) sljedeće redove.

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

Na istoj datoteci locirajte i uredite open_basedir direktivu da liči na sljedeće uključene direktorije.

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

14. Sljedeći korak je da omogućite PHP-FPM FastCGI na lokalnom hostu Nginx direktive. Izdajte sljedeću naredbu za sigurnosnu kopiju konfiguracije datoteke web servera nginx.conf, a zatim je zamijenite sljedećim sadržajem.

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

Dodajte cijeli sljedeći sadržaj na 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. Nakon što su napravljene sve konfiguracije fajlova, sve što treba da uradite je da ponovo pokrenete Nginx i PHP-FPM usluge i usmerite pretraživač na http://localhost/phpmyadmin URL sa lokalnog čvora ili http://arch_IP/phpmyadmin sa drugog računara.

sudo systemctl restart php-fpm
sudo systemctl restart nginx

16. Ako sve radi kako je predviđeno, posljednji korak je omogućavanje LEMP cijelog sistema pomoću sljedećih naredbi.

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

Čestitamo! Instalirali ste i konfigurirali LEMP na Arch Linux i sada imate potpuno dinamičko sučelje za početak i razvoj web aplikacija.

Iako Arch Linux nije najpogodniji sistem za rad na produkcijskim serverima zbog svog modela koji je orijentiran na zajednicu, on može biti vrlo brz i pouzdan izvor za mala nekritična proizvodna okruženja.