Vyhledávání na webu

Instalace LEMP (Nginx, PHP, MySQL s enginem MariaDB a PhpMyAdmin) v Arch Linuxu


Vzhledem ke svému modelu Rolling Release, který zahrnuje nejnovější software Arch Linux, nebyl navržen a vyvinut pro provoz jako server poskytující spolehlivé síťové služby, protože vyžaduje více času na údržbu, neustálé upgrady a rozumné konfigurace souborů.

Ale přesto, protože Arch Linux přichází s instalací jádra CD s minimálním předinstalovaným softwarem, může představovat solidní výchozí bod pro instalaci většiny dnes populárních síťových služeb, včetně < b>LEMP nebo LAMP, webový server Apache, Nginx, PHP, databáze SQL, Samba, FTP servery, BIND a další, mnohé z nich jsou poskytovány od Arch Oficiální repozitáře Linuxu a další z AUR.

Tento tutoriál vás provede instalací a konfigurací LEMP stacku (Nginx, PHP, MySQL s enginem MariaDB a PhpMyAdmin) vzdáleně pomocí SSH, což může poskytnout pevný základ pro vytváření aplikací webového serveru.

Požadavky

Předchozí průvodce instalací Arch Linuxu, s výjimkou poslední části o síťovém připojení s DHCP.

Krok 1: Přiřaďte statickou IP na síťovém rozhraní

1. Po minimální instalaci jádra Arch Linux restartujte svůj server, přihlaste se pomocí účtu root nebo ekvivalentního účtu správce sudo a identifikujte názvy svých systémových síťových karet pomocí odkazu IP příkaz.

ip link

2. Pro přiřazení statických konfigurací sítě použijeme balíček Netctl pro správu síťových připojení. Po úspěšné identifikaci názvů síťových rozhraní zkopírujte šablonu souboru ethernet-static do systémové cesty netctl a změňte její název na popisné schéma pojmenování ( zkuste použít řetězec „statický“ kombinovaný s názvem NIC) zadáním následujícího příkazu.

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

3. Dalším krokem je upravit tento nový soubor šablony změnou direktiv souboru a poskytnutím vašich aktuálních síťových nastavení (rozhraní, IP/síťová maska, brána, vysílání, DNS), jako v níže uvedeném úryvku.

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. Dalším krokem je spuštění připojení k síti pomocí systémového nástroje netctl a ověření připojení k systému vydáním následujících příkazů.

netctl start static.ens33
netctl status static.ens33

5. Pokud se zobrazí aktivní zelený stav ukončení, úspěšně jste nakonfigurovali své síťové rozhraní a je čas jej automaticky povolit ve službách celého systému. Také otestujte svou síť spuštěním příkazu ping proti názvu domény a také nainstalujte balíček net-tools (nejznámější funkcí tohoto balíčku je příkaz ifconfig, který Arch vývojáři považováni za poněkud zastaralé a nahradili jej iproute2).

Povolit systémové konfigurace síťové karty
netctl enable static.ens33
Nainstalujte balíček net-tools
pacman -S net-tools

6. Nyní můžete spustit příkaz ifconfig k ověření nastavení Síťových rozhraní a zkontrolovat, zda je vše správně zobrazeno, poté restartovat b> váš systém, abyste se ujistili, že je vše na svém místě a správně nakonfigurováno.

ping linux-console.net

Krok 2: Nainstalujte software LEMP

Jak je uvedeno v úvodu tohoto článku LEMP znamená Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB, což je dnes jedna z nejrozšířenějších platforem webových aplikací po LAMP (tzv. stejný zásobník s Apache v rovnici).

7. Před skutečnou instalací zásobníku LEMP musíme aktualizovat systém a poté získat vzdálené ovládání serveru Arch Linux. Jak pravděpodobně víte, OpenSSH je hlavním kandidátem na tuto práci, takže pokračujte a nainstalujte jej, spusťte démona SSH a povolte jej v celém systému.

sudo pacman -Syu
sudo pacman –S openssh

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

Nyní je čas pokračovat v instalaci LEMP. Protože tento tutoriál má sloužit jako komplexní průvodce, rozdělím instalaci zásobníku LEMP na malé kousky, krok za krokem.

8. Nejprve nainstalujte Nginx Web Server, poté jej spusťte a ověřte jeho stav zadáním následujících příkazů.

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

9. Další službou k instalaci je databáze MySQL. Vydáním následujícího příkazu nainstalujte databázový server MySQL a vyberte engine MariaDB, poté spusťte a ověřte stav démona.

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

10. Dalším krokem je poskytnutí vysoce bezpečného prostředí pro databáze MySQL poskytnutím hesla pro kořenový účet MySQL, odebráním anonymního uživatelského účtu, odebráním testovací databáze a účtů root, které jsou přístupné zvenčí localhost. Spusťte následující příkaz pro zlepšení zabezpečení MySQL, stiskněte [Enter] pro aktuální heslo účtu root a poté na všechny otázky odpovězte Ano (také nastavte heslo účtu root).

sudo mysql_secure_installation

Poznámka: V žádném případě nezaměňujte kořenový účet MySQL s kořenovým účtem systému Linux – jsou to dvě různé věci – ne tak odlišné, ale fungují na různých úrovních.

Chcete-li ověřit přihlášení zabezpečení MySQL k databázi pomocí syntaxe příkazu mysql -u root -p, zadejte heslo uživatele root a poté opusťte databázi příkazem exit;.

mysql -u root -p

11. Nyní je čas nainstalovat skriptovací jazyk PHP na straně serveru, abyste mohli vyvíjet a spouštět složité dynamické webové aplikace, nejen obsluhovat HTML/CSS kód.

Protože používáme Nginx jako webový server, potřebujeme nainstalovat zálohovaný modul PHP-FPM pro komunikaci přes Fast Common Gateway a změnu generovaného dynamického obsahu pomocí PHP skriptů.

Vydáním následujícího příkazového řádku nainstalujte službu PHP-FPM, poté spusťte démona a ověřte stav.

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

Chcete-li zobrazit seznam všech dostupných modulů PHP, zadejte následující příkazy.

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

12. Jedním z posledních kroků je instalace webového rozhraní PhpMyAdmin pro databázi MySQL. Vydáním následujícího příkazu nainstalujte PhpMyAdmin spolu s jeho potřebným modulem PHP a poté vytvořte symbolický odkaz pro systémovou cestu PhpMyaAdmin na výchozí kořenovou cestu Nginx.

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

13. Poté nakonfigurujte soubor php.ini tak, aby obsahoval nezbytná rozšíření potřebná pro aplikaci PhpMyAdmin.

sudo nano /etc/php/php.ini

Najděte pomocí kláves [CTRL+W] a odkomentujte (odstraňte ; na začátku řádku) následující řádky.

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

Ve stejném souboru vyhledejte a upravte direktivu open_basedir, aby se podobala následujícím zahrnutým adresářům.

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

14. Dalším krokem je povolení PHP-FPM FastCGI na direktivě Nginx localhost. Zadejte další příkaz k zálohování konfigurace souboru webového serveru nginx.conf a poté jej nahraďte následujícím obsahem.

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

Přidejte celý následující obsah 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. Po provedení všech konfigurací souborů vše, co musíte udělat, je restartovat služby Nginx a PHP-FPM a nasměrovat prohlížeč na http://localhost/phpmyadmin URL z místního uzlu nebo http://arch_IP/phpmyadmin z jiného počítače.

sudo systemctl restart php-fpm
sudo systemctl restart nginx

16. Pokud vše běží tak, jak bylo zamýšleno, posledním krokem je aktivace systému LEMP pomocí následujících příkazů.

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

Blahopřejeme! Nainstalovali jste a nakonfigurovali LEMP na Arch Linux a nyní máte plně dynamické rozhraní pro spouštění a vývoj webových aplikací.

Ačkoli Arch Linux není tím nejvhodnějším systémem pro provoz na produkčních serverech kvůli svému komunitně orientovanému modelu průběžného vydávání, může být velmi rychlým a spolehlivým zdrojem pro malá nekritická produkční prostředí.