Wyszukiwanie w witrynie

Instalowanie LEMP (Nginx, PHP, MySQL z silnikiem MariaDB i PhpMyAdmin) w Arch Linux


Ze względu na model Rolling Release, obejmujący najnowocześniejsze oprogramowanie, Arch Linux nie został zaprojektowany i opracowany do działania jako serwer zapewniający niezawodne usługi sieciowe, ponieważ wymaga dodatkowego czasu na konserwację, ciągłe aktualizacje i rozsądną konfigurację plików.

Mimo to, ponieważ Arch Linux jest dostarczany z instalacyjną płytą CD z minimalną ilością preinstalowanego oprogramowania, może stanowić solidny punkt startowy do zainstalowania większości popularnych obecnie usług sieciowych, w tym < b>LEMP lub LAMP, Apache Web Server, Nginx, PHP, bazy danych SQL, Samba, serwery FTP, BIND i inne, wiele z nich jest dostarczanych przez Arch Oficjalne repozytoria Linuksa i inne z AUR.

Ten samouczek poprowadzi Cię przez instalację i konfigurację stosu LEMP (Nginx, PHP, MySQL z silnikiem MariaDB i PhpMyAdmin) zdalnie przy użyciu protokołu SSH, co może zapewnić solidną podstawę do tworzenia aplikacji serwera WWW.

Wymagania

Poprzedni Przewodnik instalacji Arch Linux, z wyjątkiem ostatniej części dotyczącej sieci z DHCP.

Krok 1: Przypisz statyczny adres IP do interfejsu sieciowego

1. Po minimalnej instalacji rdzenia Arch Linux, zrestartuj serwer, zaloguj się na konto root lub równoważne konto administracyjne Sudo i zidentyfikuj nazwy urządzeń kart sieciowych systemu za pomocą ip link polecenie.

ip link

2. Do przypisania statycznych konfiguracji sieci wykorzystamy pakiet Netctl do zarządzania połączeniami sieciowymi. Po pomyślnym zidentyfikowaniu nazw interfejsów sieciowych skopiuj szablon pliku ethernet-static do ścieżki systemowej netctl i zmień jego nazwę na opisowy schemat nazewnictwa ( spróbuj użyć ciągu „static” w połączeniu z nazwą karty sieciowej), wydając następujące polecenie.

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

3. Następnym krokiem jest edycja nowego pliku szablonu poprzez zmianę dyrektyw pliku i podanie aktualnych ustawień sieciowych (interfejs, adres IP/maska sieci, brama, transmisja, DNS), jak w poniższym fragmencie.

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. Następnym krokiem jest uruchomienie połączenia sieciowego za pomocą narzędzia systemowego netctl i sprawdzenie łączności systemu za pomocą następujących poleceń.

netctl start static.ens33
netctl status static.ens33

5. Jeśli otrzymasz aktywny zielony status wyjścia, oznacza to, że pomyślnie skonfigurowałeś interfejs sieciowy i nadszedł czas, aby automatycznie włączyć go w usługach ogólnosystemowych. Przetestuj także swoją sieć, uruchamiając polecenie ping względem nazwy domeny, a także zainstaluj pakiet net-tools (najbardziej znaną funkcją tego pakietu jest polecenie ifconfig, które Arch programiści uznali za przestarzałe i zastąpili je iproute2).

Włącz konfiguracje kart sieciowych w całym systemie
netctl enable static.ens33
Zainstaluj pakiet narzędzi sieciowych
pacman -S net-tools

6. Teraz możesz uruchomić polecenie ifconfig, aby sprawdzić ustawienia Interfejsów sieciowych i sprawdzić, czy wszystko jest poprawnie wyświetlane, a następnie uruchom ponownie b> swój system, aby upewnić się, że wszystko jest na swoim miejscu i odpowiednio skonfigurowane.

ping linux-console.net

Krok 2: Zainstaluj oprogramowanie LEMP

Jak wskazano we wstępie tego artykułu, LEMP oznacza Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB, która jest obecnie jedną z najbardziej rozpowszechnionych platform aplikacji internetowych po LAMP ( ten sam stos z Apache w równaniu).

7. Przed faktyczną instalacją stosu LEMP musimy zaktualizować system, a następnie uzyskać zdalną kontrolę nad serwerem Arch Linux. Jak zapewne wiesz, głównym kandydatem do tego zadania jest OpenSSH, więc śmiało go zainstaluj, uruchom demona SSH i włącz go w całym systemie.

sudo pacman -Syu
sudo pacman –S openssh

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

Nadszedł czas na instalację LEMP. Ponieważ ten samouczek ma pełnić funkcję wszechstronnego przewodnika, krok po kroku podzielę instalację stosu LEMP na małe elementy.

8. Najpierw zainstaluj Serwer WWW Nginx, następnie uruchom go i sprawdź jego status, wydając poniższe polecenia.

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

9. Następną instalowaną usługą jest baza danych MySQL. Wydaj poniższe polecenie, aby zainstalować serwer bazy danych MySQL i wybierz silnik MariaDB, a następnie uruchom i sprawdź status demona.

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

10. Następnym krokiem jest zapewnienie wysoce bezpiecznego środowiska dla baz danych MySQL poprzez podanie hasła do konta root MySQL, usunięcie konta użytkownika anonimowego, usunięcie testowej bazy danych i kont root, które są dostępne spoza hosta lokalnego. Uruchom następujące polecenie, aby poprawić bezpieczeństwo MySQL, naciśnij [Enter], aby podać aktualne hasło do konta root, a następnie odpowiedz Tak na wszystkie pytania (skonfiguruj także hasło do konta root).

sudo mysql_secure_installation

Uwaga: W żadnym wypadku nie należy mylić konta root MySQL z kontem root systemu Linux – to dwie różne rzeczy – nie są aż tak różne, ale działają na różnych poziomach.

Aby zweryfikować bezpieczne logowanie MySQL do bazy danych przy użyciu składni polecenia mysql -u root -p, podaj hasło roota, a następnie opuść bazę danych za pomocą polecenia exit;.

mysql -u root -p

11. Teraz nadszedł czas na zainstalowanie języka skryptowego PHP po stronie serwera, aby móc tworzyć i uruchamiać złożone, dynamiczne aplikacje internetowe, a nie tylko obsługiwać HTML/CSS kod.

Ponieważ używamy Nginx jako serwera WWW, musimy zainstalować moduł oparty na PHP-FPM, aby komunikować się przez Fast Common Gateway i zmieniać generowaną dynamiczną treść przez skrypty PHP.

Wydaj następujący wiersz poleceń, aby zainstalować usługę PHP-FPM, a następnie uruchom demona i sprawdź status.

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

Aby wyświetlić listę wszystkich dostępnych modułów PHP, wydaj następujące polecenia.

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

12. Jednym z ostatnich kroków jest instalacja interfejsu sieciowego PhpMyAdmin dla bazy danych MySQL. Wydaj następujące polecenie, aby zainstalować PhpMyAdmin wraz z modułem potrzebnym do PHP, a następnie utwórz dowiązanie symboliczne dla ścieżki systemowej PhpMyaAdmin do domyślnej ścieżki katalogu głównego Nginx.

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

13. Następnie skonfiguruj plik php.ini tak, aby zawierał niezbędne rozszerzenia potrzebne aplikacji PhpMyAdmin.

sudo nano /etc/php/php.ini

Zlokalizuj za pomocą klawiszy [CTRL+W] i odkomentuj (usuń ; na początku linii) następujące linie.

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

W tym samym pliku znajdź i edytuj dyrektywę open_basedir tak, aby przypominała następujące dołączone katalogi.

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

14. Następnym krokiem jest włączenie PHP-FPM FastCGI na dyrektywie Nginx localhost. Wydaj następne polecenie, aby wykonać kopię zapasową konfiguracji pliku serwera WWW nginx.conf, a następnie zastąp go następującą treścią.

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

Dodaj całą następującą zawartość do pliku 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 skonfigurowaniu wszystkich plików wystarczy ponownie uruchomić usługi Nginx i PHP-FPM i wskazać przeglądarce http://localhost/phpmyadmin URL z węzła lokalnego lub http://arch_IP/phpmyadmin z innego komputera.

sudo systemctl restart php-fpm
sudo systemctl restart nginx

16. Jeśli wszystko działa zgodnie z oczekiwaniami, ostatnim krokiem jest włączenie LEMP w całym systemie za pomocą następujących poleceń.

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

Gratulacje! Zainstalowałeś i skonfigurowałeś LEMP w Arch Linux i teraz masz pełny dynamiczny interfejs do uruchamiania i rozwijania aplikacji internetowych.

Chociaż Arch Linux nie jest najlepiej przystosowanym systemem do działania na serwerach produkcyjnych ze względu na zorientowany na społeczność model wydań ciągłych, może być bardzo szybkim i niezawodnym źródłem dla małych, niekrytycznych środowisk produkcyjnych.