Instalowanie LEMP (Linux, Nginx, MySQL/MariaDB, PHP/PHP-FPM i PhpMyAdmin) w Gentoo Linux

Instalowanie LEMP (Linux, Nginx, MySQL/MariaDB, PHP/PHP-FPM i PhpMyAdmin) w Gentoo Linux

Gentoo jest jednym z najszybszych dystrybucji Linuksa ze względu na jego budowę z orientacji źródeł i zapewnia jej program zarządzania oprogramowaniem - Przewóz - Niektóre narzędzia potrzebne do zbudowania kompletnej platformy programistów, która działa i działa bardzo szybko, a także mają wysoki stopień dostosowywania.

Zainstaluj Nginx w Gentoo Linux

Ten temat przeprowadzi Cię przez krok po kroku proces instalacji w celu zbudowania kompletnej platformy środowiska internetowego z LEMP (Linux Nginx, MySQL/MariaDB, PHP-FPM/PhpMyAdmin) i przy pomocy Użyj flag Dostarczone przez Portage Pakiet Management, który oferuje zestaw funkcjonalności pakietów w procesie kompilacji - moduły lub ustawienia potrzebne dla platformy internetowej, znacznie poprawi konfiguracje serwera.

Wymagania

  1. Instalacja gentoo z zahartowanym profilem dla serwera skierowanego do Internetu - przewodnik instalacji gentoo.
  2. Sieć skonfigurowana ze statycznym adresem IP.

Krok 1: Zainstaluj serwer WWW Nginx

1. Przed próbą kontynuowania instalacji NGINX upewnij się, że NIC został skonfigurowany ze statycznym adresem IP i upewnij się, że źródła portu i system jest aktualny.

$ sudo su - # emerge - -sync # Emerge - -update - -deep - -with -bdeps = y @world
Zaktualizuj Gentoo Linux

2. Po zakończeniu procesu aktualizacji kontynuuj instalację Nginx, wybierając preferowane ustawienia i moduły, echem Nginx Użyj flag do Portage robić.conf plik. Pierwsza lista domyślnych modułów instalacji nginx, uruchamiając następujące polecenie.

# Emerge -pv nginx

Aby uzyskać szczegółowe informacje o modułach (użyj flag do pakietów) equery Komenda.

# equery używa nginx
Wymień wszystkie moduły flagi

Następnie zainstaluj Nginx z następującym poleceniem.

# Emerge -Zakochaj nginx
Zainstaluj serwer WWW Nginx

Jeśli potrzebujesz dodatkowych modułów (WebDAV, FancyIndex, GeoIP itp.) Oprócz domyślnych, z których Nginx będzie się skompilować, dołącz je wszystkie na jednym wierszu na Portage robić.conf plik z Nginx_modules_http Dyrektywa, następnie ponownie skompiluj Nginx z nowymi modułami.

# echo 'nginx_modules_http = "Dav Auth_pam FancyIndex Geoip Fastcgi Uwsgi Gzip Rewrite"' >>/etc/portage/make/make.Conf # Emerge -Zakasz Nginx
Skompiluj nginx dla nowych modułów

3. Po zakończeniu Portage Nginx uruchom demona HTTP i zweryfikuj go, kierując przeglądarkę do http: // localhost.

Sprawdź serwer WWW Nginx

Krok 2: Zainstaluj PHP

4. Aby użyć PHP Dynamic Programming Language z serwerem Nginx, zainstaluj Menedżer procesów PHP-FASTCGI (FPM) przez dołączenie FPM oraz inne ważne rozszerzenia PHP w Portage Użyj flag i upewnij się, że usuwasz rozszerzenie Apache.

# Emerge -pv PHP
Zainstaluj PHP w Gentoo
# equery używa php
Wybór rozszerzenia PHP
# echo "dev -lang/php fpm cGI curl gd Imap Mysql Mysqli PDO Zip JSON XCACHE APC Zlib Zip TrueType -Apache2" >>/etc/Portage/Pakiet.Użyj # Emerge -Zakasz PHP

5. Przed uruchomieniem PHP-FPM należy zastosować pewne zmiany w pliku konfiguracji usługi. otwarty PHP-FPM plik konfiguracyjny i dokonaj następujących zmian.

# nano/etc/php/fpm-php5.5/PHP-FPM.conf

Znajdź i pocukaj następujące dyrektywy, aby wyglądać tak.

error_log =/var/log/php-fpm.Log Listen = 127.0.0.1: 9000 ##.start_servers = 20

6. Po pliku konfiguracyjnym PHP-FPM jest edytowany, zmień uprawnienia pliku dziennika PHP-FPM i uruchom usługę.

# chmod 755/var/log/php-fpm.log # /etc /init.D/php-fpm start

Nawet jeśli usługa PHP-FPM zostanie uruchomiona, Nginx nie może komunikować się z bramą PHP, więc należy wykonać pewne zmiany w plikach konfiguracyjnych Nginx.

Krok 3: Edytuj konfiguracje Nginx

7. Nginx domyślny plik konfiguracyjny szablonu zapewnia tylko podstawowe gniazdo HTTP tylko dla LocalHost. Aby zmienić to zachowanie i włączyć wirtualne hosty, otwórz nginx.conf plik znajdujący się na /etc/nginx/ Ścieżka i wykonaj następujące konfiguracje.

# nano/etc/nginx/nginx.conf

Znajdź pierwszy serwer blok, który odpowiada lokalizacji i słucha 127.0.0.1 Adres IP i pochwalaj wszystkie jego stwierdzenia, jak wyglądać na zrzucie ekranu poniżej.

Wyłącz podstawową konfigurację HTTP

Nie zamykaj jeszcze pliku i nie przesuwaj się na sam na dole „”.

Uwzględnij/etc/nginx/witryny/*.conf;
Włącz wirtualny host Nginx

8. Następnie utwórz witryny z obsługą I Witryny-dostępne (dla nieużywanych wirtualnych hostów) katalogi Nginx i pliki konfiguracyjne dla LocalHost w protokole HTTP i HTTPS.

# mkdir/etc/nginx/sites-dostępny # mkdir/etc/nginx/witryny z obsługą

Utwórz następującą konfigurację pliku dla LocalHost.

# nano/etc/nginx/witryny-dostępny/localhost.conf

Dodaj następującą zawartość pliku.

serwer Słuchaj 80; Server_name LocalHost; access_log/var/log/nginx/localhost_access_log main; błąd_log/var/log/nginx/localhost_error_log info; root/var/www/localhost/htdocs; lokalizacja / indeks indeksu.Indeks HTML.Indeks HTM.php; autoindex on; autoIndex_Exact_Size Off; autoIndex_Localtime ON;  Lokalizacja ~ \.php $  # test na nieistniejące skrypty lub wyrzuć błąd 404 # .PHP do php-fpm try_files $ uri = 404; obejmują/etc/nginx/fastcgi.conf; fastcgi_pass 127.0.0.1: 9000; ## Upewnij się, że gniazdo odpowiada plikowi PHP-FPM CONF
Utwórz wirtualną konfigurację hosta Nginx

Dla LocalHost z SSL Utwórz następujący plik konfiguracyjny.

# nano/etc/nginx/witryny-dostępna/localhost-ssl.conf

Dodaj następującą zawartość pliku.

serwer Słuchaj 443 SSL; Server_name LocalHost; SSL on; SSL_Certificate/etc/ssl/nginx/nginx.pem; SSL_Certificate_Key/etc/ssl/nginx/nginx.klucz; access_log/var/log/nginx/localhost.ssl_access_log main; error_log/var/log/nginx/localhost.info ssl_error_log; root/var/www/localhost/htdocs; lokalizacja / indeks indeksu.Indeks HTML.Indeks HTM.php; autoindex on; autoIndex_Exact_Size Off; autoIndex_Localtime ON;  Lokalizacja ~ \.php $  # test na nieistniejące skrypty lub wyrzuć błąd 404 # .PHP do php-fpm try_files $ uri = 404; obejmują/etc/nginx/fastcgi.conf; fastcgi_pass 127.0.0.1: 9000; 
Utwórz wirtualny host SSL Nginx

9. Teraz nadszedł czas, aby utworzyć dwa skrypty na ścieżce wykonywalnej systemu (zmienna powłoki $ ścieżka), która działa jako polecenia aktywacji lub wyłączenia wirtualnych hostów Nginx.

Utwórz pierwszy wymieniony skrypt bash n2ensite to umożliwi wirtualne pliki konfiguracyjne hostów, tworząc symboliczny łącze między określonymi hostami z Witryny-dostępne Do witryny z obsługą.

# nano/usr/local/bin/n2eniste

Dodaj następującą zawartość pliku.

#!/bin/bash if test -d/etc/nginx/sites -dostępny && test -d/etc/nginx/sitess -obserwowany; Następnie echo "------------------------------------------- „Else Mkdir/etc/nginx/Sites-dostępny mkdir/etc/nginx/witryny obsługujący Fi =/etc/nginx/witryny-dostępny/1 USD.conf enabled =/etc/nginx/witryny-obserwowany/site = "ls/etc/nginx/witryny-dostępny/" if ["$#" != "1"]; następnie echo "Użyj skryptu: n2EnSite Virtual_Site" Echo -e "\ Navailable Virtual Hosts: \ n $ Site" Exit 0 Else, jeśli test -e $ dostępny; Następnie sudo ln -s $ avalud $ enabled else echo -e "$ dostępny wirtualny host nie istnieje! Utwórz jeden!\ n $ witryna "exit 0 fi Jeśli test -e $ włączony/1 $.conf; Następnie Echo „Sukces!! Teraz ponownie uruchom serwer Nginx: sudo /etc /init.D/ nginx restart „else echo -e” wirtualny host $ dostępny nie istnieje!\ nplease
Utwórz wirtualny hosta Włącz skrypt

10. Następnie utwórz drugi skrypt nazywany n2dissite, które usuną określone aktywne wirtualne hosty z witryny z obsługą Ścieżka nginx z następującą zawartością.

# nano/usr/local/bin/n2dissite

Dodaj następującą zawartość.

#!/bin/bash avalue =/etc/nginx/witryny-obserwator/1 USD.conf włączony =/etc/nginx/witryny Site = "ls/etc/nginx/witryny-dostępny/" if ["$#" != "1"]; następnie echo "Użyj skryptu: n2dissite virtual_site" echo -e "\ Navailable Virtual Hosts: \ n $ Site" Exit 0 exit 0 ext, jeśli test -e $ dostępny; wtedy sudo rm $ avalue else echo -e "$ dostępny wirtualny host nie istnieje! Wyjście!„Wyjdź 0 fi, jeśli test -e $ włączony/1 $.conf; Następnie błąd echo „!! Nie można usunąć $ dostępnego wirtualnego hosta!Sukces „else echo -e”! $ Dostępne zostało usunięte!\ nplease restart nginx: sudo /etc /init.d/nginx restart "exit 0 fi fi
Utwórz wirtualny host Wyłącz skrypt

11. Po zakończeniu edycji skryptów Bash dołącz uprawnienia do wykonania i aktywuj wirtualne hosty LocalHost - Użyj nazwy pliku konfiguracji hosta wirtualnego bez .conf rozszerzenie, a następnie uruchom usługi Nginx i PHP-FPM w celu zastosowania zmian.

# chmod +x/usr/local/bin/n2dissite # chmod +x/usr/local/bin/n2ensite # n2ensite localhost # n2ENSITE LocalHost-ssl # Service Nginx Restart # Service Php-Fpm Restartart
Uruchom ponownie Nginx i PHP-FPM

12. Aby przetestować konfiguracje, utwórz plik informacyjny PHP na domyślnej ścieżce głównej LocalHost dla plików internetowych (/var/www/localhost/htdocs) i przekieruj przeglądarkę https: // localhost/info.php Lub http: // localhost/info.php.

echo ""/var/www/localhost/htdocs/info.php
Sprawdź konfigurację PHP

Korzystanie z LocalHost Virtual Hosts Pliki konfiguracyjne jako szablony i nginx n2enmod I n2dismod Możesz teraz łatwo dodać tyle witryn, ile chcesz, ale upewnij się, że masz prawidłowe wskaźniki DNS dla serwera internetowego skierowanego do Internetu lub używać wpisów lokalnie w pliku hostów systemowych.

Krok 4: Zainstaluj MySQL/Mariadb + phpMyAdmin

Aby zainstalować bazę danych MySQL i interfejs internetowy phpMyAdmin dla MySQL, użyj tej samej procedury prezentowanej na instalacji lampy na gentoo.

13. W zamian, jeśli chcesz użyć Mariadb, zastępowanie MySQL, użyj następujących poleceń, aby uzyskać Użyj flag i zainstaluj to.

# Emerge -pv mariadb # Emerge -Zakasz Mariadb
Zainstaluj bazę danych MariaDB

Jeśli otrzymasz konflikt pakietu z MySQL, dodaj następujące wiersze do Portage pakiet.zaakceptować.słowa kluczowe.

# echo „= dev-db/mariadb-5.5.37-R1 ~ AMD64 ”>>/etc/portage/pakiet.zaakceptować.Słowa kluczowe # echo „= wirtualne/mysql-5.5 ~ AMD64 ”>>/etc/portage/pakiet.zaakceptować.Słowa kluczowe # Emerge -Zakochaj mariadb

14. Po zainstalowaniu bazy danych MySQL Service i zabezpiecz ją za pomocą za pomocą Mysql_Secure_Instalation (Zmień hasło roota, wyłącz login root poza lokalhost, usuń anonimową bazę danych użytkownika/testu).

# usługa mysql start # mysql_secure_instalation

15. Wprowadź bazę danych MySQL za pomocą, mysql -u root -p polecenie, aby przetestować jego funkcjonalność i pozostawić ją Wyjście Komenda.

# mysql -u root -p mariadb> pokaż bazy danych; Mariadb> wyjście;
Sprawdź łączność MySQL

16. Jeśli nie jesteś zbyt dobry z wierszem poleceń MySQL. Zainstaluj frontend internetowy phpMyAdmin, wykonując następujące polecenia.

# emerge -pv dev-db/phpMyAdmin # echo „dev-db/phpMyAdmin konfiguracja vhosts” >>/etc/portage/pakiet.Użyj # Emerge-Zakochaj dev-db/phpmyadmin
Zainstaluj phpMyAdmin

17. Po zakończeniu instalacji phpMyAdmin utwórz plik konfiguracyjny na podstawie przykładowego pliku konfiguracyjnego, zmień Blowfish_secret fraza z losowym ciągiem, a następnie utwórz symboliczny link z /usr/share/webApps/phpMyAdmin/phpMyAdmin_version_number/htdocs/ Aby wirtualne hosty dokumentują ścieżkę główną, aby uzyskać dostęp do interfejsu internetowego phpMyAdmin.

# cd/usr/share/webapps/phpMyAdmin/4.2.2/ htdocs/ # cp Config.próbka.Inc.PHP Config.Inc.PHP # nano Config.Inc.php
Skonfiguruj phpMyAdmin
# ln -s/usr/share/webapps/phpMyAdmin/4.2.2/htdocs//var/www/localhost/htdocs/phpMyAdmin
Utwórz link symboliczny phpmyadmin

18. Aby uzyskać dostęp do bazy danych MySQL za pośrednictwem interfejsu internetowego PhpMyAdmin, otwórz przeglądarkę i użyj następującego adresu URL https: // localhost/phpmyadmin.

Sprawdź logowanie phpMyAdmin

19. Ostatnim krokiem jest włączenie usług w całym systemie, automatycznie rozpoczęcie po ponownym uruchomieniu.

# rc-update Dodaj Nginx domyślnie # rc-update Dodaj php-fpm domyślnie # rc-update Dodaj MySQL Domyślnie
Włącz szeroki system usług

Teraz mamy minimalną konfigurację środowiska dla hostingu, a jeśli używasz tylko stron generowanych przez HTML, JavaScript i PHP i nie potrzebujesz stron SSL, powyższa konfiguracja powinna być dla Ciebie zadowalająca.