Jak zainstalować Linux, Apache, MySQL, PHP (LAMP) stos na Ubuntu 18.04

wpis w: Articles | 0

poprzednia wersja tego samouczka została napisana przez Brennan Bearnes.

wprowadzenie

stos „LAMP” to grupa oprogramowania open-source, które jest zazwyczaj instalowane razem, aby umożliwić serwerowi hostowanie dynamicznych stron internetowych i aplikacji internetowych. Termin ten jest w rzeczywistości akronimem, który reprezentuje system operacyjny Linux, z serwerem WWW Apache. Dane Witryny są przechowywane w bazie danych MySQL, a dynamiczna zawartość jest przetwarzana przez PHP.

w tym poradniku zainstalujemy stos LAMP na serwerze Ubuntu 18.04.,

wymagania wstępne

aby ukończyć ten samouczek, musisz mieć serwer Ubuntu 18.04 z kontem użytkownika non-rootsudoI podstawową zaporę sieciową. Można to skonfigurować za pomocą naszego początkowego przewodnika konfiguracji serwera dla Ubuntu 18.04.

Krok 1 — instalacja Apache i aktualizacja zapory

serwer WWW Apache należy do najpopularniejszych serwerów WWW na świecie. Jest dobrze udokumentowany i był szeroko stosowany przez większość historii sieci, co czyni go doskonałym domyślnym wyborem dla hostingu strony internetowej.,

zainstaluj Apache używając menedżera pakietów Ubuntu,apt:

  • sudo apt update
  • sudo apt install apache2

ponieważ jest to poleceniesudo, operacje te są wykonywane z uprawnieniami roota. Poprosi Cię o hasło Twojego zwykłego użytkownika, aby zweryfikować Twoje intencje.

Po wprowadzeniu hasłaapt powie Ci, które pakiety planuje zainstalować i ile dodatkowego miejsca na dysku zajmą. Naciśnij Y I naciśnij ENTER, aby kontynuować, a instalacja będzie kontynuowana.,

Dostosuj zaporę tak, aby zezwalała na ruch internetowy

następnie, zakładając, że zastosowałeś się do początkowych instrukcji konfiguracji serwera i włączyłeś zaporę UFW, upewnij się, że zapora obsługuje ruch HTTP i HTTPS.,ld pokazuje, że włącza ruch do portów 80 I 443:

  • sudo ufw app info "Apache Full"
Output
Profile: Apache FullTitle: Web Server (HTTP,HTTPS)Description: Apache v2 is the next generation of the omnipresent Apache webserver.Ports: 80,443/tcp

Zezwalaj na przychodzący ruch HTTP i HTTPS dla tego profilu:

  • sudo ufw allow in "Apache Full"

możesz od razu sprawdzić, czy wszystko poszło zgodnie z planem, odwiedzając publiczny adres IP Twojego serwera w przeglądarce internetowej (zobacz notatkę pod następnym nagłówkiem, aby dowiedzieć się, jaki jest Twój publiczny adres IP, jeśli nie masz jeszcze tych informacji):

You will see the default Ubuntu 18.04 Apache web page, which is there for informational and testing purposes. It should look something like this:

If you see this page, then your web server is now correctly installed and accessible through your firewall.

How To Find your Server’s Public IP Address

If you do not know what your server’s public IP address is, there are a number of ways you can find it. Usually, this is the address you use to connect to your server through SSH.

There are a few different ways to do this from the command line. First, you could use the iproute2 tools to get your IP address by typing this:

  • ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

To da ci dwie lub trzy linie wstecz., Wszystkie są poprawnymi adresami, ale twój komputer może używać tylko jednego z nich, więc możesz wypróbować każdy z nich.

alternatywną metodą jest użycie narzędziacurl do skontaktowania się ze stroną zewnętrzną, aby powiedzieć, jak widzi Twój serwer. Można to zrobić pytając konkretnego serwera jaki jest Twój adres IP:

  • sudo apt install curl
  • curl http://icanhazip.com

niezależnie od metody, której używasz, aby uzyskać adres IP, wpisz go w pasku adresu przeglądarki internetowej, aby wyświetlić domyślną stronę Apache.,

Krok 2 — instalacja MySQL

teraz, gdy masz uruchomiony serwer WWW, nadszedł czas, aby zainstalować MySQL. MySQL to system zarządzania bazami danych. Zasadniczo będzie organizować i zapewniać dostęp do baz danych, w których Twoja witryna może przechowywać informacje.

ponownie użyjaptaby uzyskać i zainstalować to oprogramowanie:

  • sudo apt install mysql-server

Uwaga: w tym przypadku nie musisz uruchamiaćsudo apt update przed wykonaniem polecenia. Dzieje się tak dlatego, że ostatnio uruchomiłeś go w powyższych poleceniach, aby zainstalować Apache., Indeks pakietów na twoim komputerze powinien być już aktualny.

To polecenie również wyświetli listę pakietów, które zostaną zainstalowane, wraz z ilością miejsca na dysku, które zajmą. Wpisz Y aby kontynuować.

Po zakończeniu instalacji uruchom prosty skrypt bezpieczeństwa, który jest preinstalowany z MySQL, który usunie niektóre niebezpieczne ustawienia domyślne i zablokuje dostęp do systemu bazy danych. Uruchom interaktywny skrypt, uruchamiając:

  • sudo mysql_secure_installation

to zapyta, czy chcesz skonfigurować VALIDATE PASSWORD PLUGIN.,

Uwaga: włączenie tej funkcji jest czymś w rodzaju wywołania oceny. Jeśli ta opcja jest włączona, hasła, które nie spełniają podanych kryteriów, zostaną odrzucone przez MySQL z błędem. Spowoduje to problemy, jeśli używasz słabego hasła w połączeniu z oprogramowaniem, które automatycznie konfiguruje poświadczenia użytkownika MySQL, takie jak Pakiety Ubuntu dla phpMyAdmin. Bezpiecznie jest pozostawić walidację wyłączoną, ale zawsze powinieneś używać silnych, unikalnych haseł do poświadczeń bazy danych.

OdpowiedzY na tak, lub cokolwiek innego, aby kontynuować bez włączania.,

VALIDATE PASSWORD PLUGIN can be used to test passwordsand improve security. It checks the strength of passwordand allows the users to set only those passwords which aresecure enough. Would you like to setup VALIDATE PASSWORD plugin?Press y|Y for Yes, any other key for No:

Jeśli odpowiesz „tak”, zostaniesz poproszony o wybranie poziomu walidacji hasła. Należy pamiętać, że jeśli wpisujesz 2 dla najsilniejszego poziomu, pojawią się błędy podczas próby ustawienia hasła, które nie zawiera cyfr, wielkich i małych liter i znaków specjalnych lub które jest oparte na popularnych słownikach.

There are three levels of password validation policy:LOW Length >= 8MEDIUM Length >= 8, numeric, mixed case, and special charactersSTRONG Length >= 8, numeric, mixed case, special characters and dictionary filePlease enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

niezależnie od tego, czy zdecydujesz się skonfigurowaćVALIDATE PASSWORD PLUGIN, Twój serwer poprosi cię Następnie o wybranie i potwierdzenie hasła użytkownika głównego MySQL., Jest to konto administracyjne w MySQL, które ma zwiększone uprawnienia. Pomyśl o tym, że jest podobny do konta root dla samego serwera (chociaż konfigurujesz teraz konto specyficzne dla MySQL). Upewnij się, że jest to silne, unikalne hasło i nie zostawiaj go pustego.

Jeśli włączyłeś weryfikację hasła, zobaczysz siłę hasła dla hasła roota, które właśnie wpisałeś, a twój serwer zapyta, czy chcesz zmienić to hasło., Jeśli Twoje aktualne hasło jest prawidłowe, wprowadź N Dla „Nie” w monicie:

Using existing password for root.Estimated strength of the password: 100Change the password for root ? ((Press y|Y for Yes, any other key for No) : n

dla pozostałych pytań naciśnij Y I naciśnij ENTER klawisz przy każdym monicie. Spowoduje to usunięcie niektórych anonimowych użytkowników i testowej bazy danych, wyłączenie zdalnych loginów roota i załadowanie tych nowych reguł, aby MySQL natychmiast respektował wprowadzone zmiany.

zauważ, że w systemach Ubuntu z systemem MySQL 5.,7 (i nowsze wersje), główny użytkownik MySQL jest ustawiony na uwierzytelnianie przy użyciu wtyczki auth_socket domyślnie, a nie za pomocą hasła. Pozwala to na większe bezpieczeństwo i użyteczność w wielu przypadkach, ale może również skomplikować sprawy, gdy trzeba zezwolić zewnętrznemu programowi (np.

Jeśli wolisz używać hasła podczas łączenia się z MySQL jako root, musisz zmienić jego metodę uwierzytelniania zauth_socketnamysql_native_password., Aby to zrobić, otwórz monit MySQL z terminala:

  • sudo mysql

następnie sprawdź, jakiej metody uwierzytelniania używa każdy z kont użytkowników MySQL za pomocą następującego polecenia:

  • SELECT user,authentication_string,plugin,host FROM mysql.user;

w tym przykładzie możesz zobaczyć, że użytkownik root faktycznie uwierzytelnia się za pomocą auth_socket plugin. Aby skonfigurować konto root do uwierzytelniania za pomocą hasła, uruchom następujące polecenie ALTER USER., Pamiętaj, aby zmienić password na silne hasło, które wybierzesz:

  • ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

następnie uruchom FLUSH PRIVILEGES, które każe serwerowi przeładować tabele dotacji i wprowadzić nowe zmiany:

  • FLUSH PRIVILEGES;

sprawdź ponownie metody uwierzytelniania stosowane przez każdego użytkownika, aby potwierdzić, że root nie uwierzytelnia się za pomocą auth_socket plugin:

  • SELECT user,authentication_string,plugin,host FROM mysql.user;

w tym przykładzie widać, że użytkownik root MySQL uwierzytelnia się za pomocą hasła., Po potwierdzeniu tego na własnym serwerze możesz zamknąć powłokę MySQL:

  • exit

w tym momencie Twój system bazodanowy jest teraz skonfigurowany i możesz przejść do instalacji PHP, końcowego składnika stosu LAMP.

Krok 3 — Instalacja PHP

PHP jest komponentem konfiguracji, który przetwarza kod w celu wyświetlenia dynamicznej zawartości. Może uruchamiać skrypty, łączyć się z bazami danych MySQL, aby uzyskać informacje, i przekazać przetworzoną zawartość do serwera www, aby wyświetlić.

Po raz kolejny użyj systemu apt, aby zainstalować PHP., Ponadto, Dołącz kilka pakietów pomocniczych tym razem, aby kod PHP mógł działać pod serwerem Apache i rozmawiać z bazą danych MySQL:

  • sudo apt install php libapache2-mod-php php-mysql

to powinno zainstalować PHP bez żadnych problemów. Zaraz to przetestujemy.

w większości przypadków będziesz chciał zmodyfikować sposób, w jaki Apache obsługuje pliki, gdy żądany jest katalog. Obecnie, Jeśli użytkownik żąda katalogu z serwera, Apache najpierw szuka pliku o nazwie index.html., Chcemy powiedzieć serwerowi www, aby preferował Pliki PHP nad innymi, więc najpierw spraw, aby Apache szukał pliku index.php.

aby to zrobić, wpisz to polecenie, aby otworzyć plikdir.conf w edytorze tekstu z uprawnieniami roota:

  • sudo nano /etc/apache2/mods-enabled/dir.conf

będzie wyglądał tak:

/etc/apache2/mods-enabled / dir.w związku z tym, że nie jest to możliwe, nie jest to konieczne, ponieważ nie jest to konieczne, ponieważ nie jest to konieczne, ponieważ nie jest to konieczne, ponieważ nie jest to konieczne.,conf
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm</IfModule>

Po zakończeniu zapisz i zamknij plik, naciskającCTRL+X. Potwierdź zapis, wpisując Y, a następnie naciśnij ENTER, aby zweryfikować lokalizację zapisu pliku.

następnie uruchom ponownie serwer WWW Apache, aby zmiany zostały rozpoznane., Zrób to, wpisując to:

  • sudo systemctl restart apache2

Możesz również sprawdzić status usługi apache2 używając systemctl:

  • sudo systemctl status apache2

naciśnij Q aby zakończyć ten stan wyjścia.

aby zwiększyć funkcjonalność PHP, masz możliwość zainstalowania dodatkowych modułów., Aby zobaczyć dostępne opcje dla modułów i bibliotek PHP, prześlij wyniki apt search do less, pagera, który umożliwia przewijanie wyników innych poleceń:

  • apt search php- | less

Użyj klawiszy strzałek, aby przewijać w górę i w dół, i naciśnij Q to quit.

wyniki są opcjonalnymi komponentami, które można zainstalować. Zawiera krótki opis każdego modułu:

bandwidthd-pgsql/bionic 2.0.1+cvs20090917-10ubuntu1 amd64 Tracks usage of TCP/IP and builds html files with graphsbluefish/bionic 2.2.10-1 amd64 advanced Gtk+ text editor for web and software developmentcacti/bionic 1.1.38+ds1-1 all web interface for graphing of monitoring systemsganglia-webfrontend/bionic 3.6.1-3 all cluster monitoring toolkit - web front-endgolang-github-unknwon-cae-dev/bionic 0.0~git20160715.0.c6aac99-4 all PHP-like Compression and Archive Extensions in Gohaserl/bionic 0.9.35-2 amd64 CGI scripting program for embedded environmentskdevelop-php-docs/bionic 5.2.1-1ubuntu2 all transitional package for kdevelop-phpkdevelop-php-docs-l10n/bionic 5.2.1-1ubuntu2 all transitional package for kdevelop-php-l10n…:

aby dowiedzieć się więcej o tym, co robi każdy moduł, możesz przeszukać internet, aby uzyskać więcej informacji na ich temat., Alternatywnie, spójrz na długi Opis pakietu, wpisując:

  • apt show package_name

będzie dużo danych wyjściowych, z jednym polem o nazwie Description, które będzie miało dłuższe Wyjaśnienie funkcjonalności, jaką zapewnia moduł.,

na przykład, aby dowiedzieć się, co robi moduł php-cli, możesz wpisać:

  • apt show php-cli

wraz z dużą ilością innych informacji, znajdziesz coś, co wygląda tak:

Output
…Description: command-line interpreter for the PHP scripting language (default) This package provides the /usr/bin/php command interpreter, useful for testing PHP scripts from a shell or performing general shell scripting tasks. . PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. . This package is a dependency package, which depends on Ubuntu's default PHP version (currently 7.2).…

Jeśli po badając, decydujesz, że chcesz zainstalować pakiet, możesz to zrobić za pomocą polecenia apt install, tak jak to robiłeś w przypadku innego oprogramowania.,

Jeśli uznałeś, że php-cli jest czymś, czego potrzebujesz, możesz wpisać:

  • sudo apt install php-cli

Jeśli chcesz zainstalować więcej niż jeden moduł, możesz to zrobić, wymieniając każdy z nich, oddzielony spacją, zgodnie z apt install polecenie, takie jak:

  • sudo apt install package1 package2 ...

w tym momencie twój stos LAMP jest zainstalowany i skonfigurowany. Zanim zrobisz cokolwiek innego, zalecamy skonfigurowanie wirtualnego hosta Apache, w którym możesz przechowywać szczegóły konfiguracji serwera.,

Krok 4 — Konfigurowanie wirtualnych hostów (zalecane)

podczas korzystania z serwera WWW Apache możesz używać wirtualnych hostów (podobnych do bloków serwerów w Nginx) do hermetyzacji szczegółów konfiguracji i hostowania więcej niż jednej domeny z jednego serwera. Skonfigurujemy domenę o nazwie your_domain, ale powinieneś zastąpić ją własną nazwą domeny. Aby dowiedzieć się więcej o konfigurowaniu nazwy domeny za pomocą usługi DigitalOcean, zapoznaj się z naszym wprowadzeniem do usługi DigitalOcean DNS.

Apache na Ubuntu 18.,04 ma domyślnie włączony jeden blok serwera, który jest skonfigurowany do serwowania dokumentów z katalogu/var/www/html. Chociaż działa to dobrze w przypadku pojedynczej witryny, może stać się nieporęczny, jeśli hostujesz wiele witryn. Zamiast modyfikować /var/www/html, stwórzmy strukturę katalogów w /var/wwwdla naszej witryny your_domain, pozostawiając/var/www/html jako domyślny katalog, który ma być obsługiwany, jeśli żądanie klienta nie pasuje do innych witryn.,Twoja domena wygląda następująco:

sudo mkdir /var/www/your_domain

następnie przypisz własność katalogu za pomocą zmiennej środowiskowej $USER:

  • sudo chown -R $USER:$USER /var/www/your_domain

uprawnienia Twoich korzeni www powinny być poprawne, jeśli nie zmieniłeś swojego unmask wartość, ale możesz się upewnić, wpisując:

  • sudo chmod -R 755 /var/www/your_domain

następnie utwórz stronę index.html używając nano lub swojego ulubionego edytora:

  • nano /var/www/your_domain/index.html

w środku dodaj przykładowy HTML:

/var/www/your_domain/index.,html
<html> <head> <title>Welcome to Your_domain!</title> </head> <body> <h1>Success! The your_domain server block is working!</h1> </body></html>

Zapisz i zamknij plik po zakończeniu.

aby Apache mógł obsługiwać tę zawartość, konieczne jest utworzenie pliku wirtualnego hosta z odpowiednimi dyrektywami. Zamiast bezpośrednio modyfikować domyślny plik konfiguracyjny znajdujący się w /etc/apache2/sites-available/000-default.conf, zróbmy nowy w /etc/apache2/sites-available/your_domain.conf:

  • sudo nano /etc/apache2/sites-available/your_domain.conf

Wklej w poniższym bloku konfiguracji, który jest podobny do domyślnego, ale zaktualizowany dla naszego nowego katalogu i nazwy domeny:

/etc zapraszamy do zapoznania się z naszą ofertą.,conf

zauważ, że zaktualizowaliśmyDocumentRoot do naszego nowego katalogu iServerAdmin do wiadomości e-mail, do której administrator witryny your_domain może uzyskać dostęp. Dodaliśmy również dwie dyrektywy: ServerName, która określa domenę bazową, która powinna pasować do tej definicji wirtualnego hosta, oraz ServerAlias, która definiuje dalsze nazwy, które powinny pasować tak, jakby były nazwą bazową.

Zapisz i zamknij plik po zakończeniu.,

włączmy plik za pomocą narzędzia a2ensite:

  • sudo a2ensite your_domain.conf

Wyłącz domyślną stronę zdefiniowaną w 000-default.conf:

  • sudo a2dissite 000-default.conf

Dalej, przetestujmy pod kątem błędów konfiguracyjnych:

  • sudo apache2ctl configtest

powinieneś zobaczyć następujące wyjście:

Output
Syntax OK

zrestartuj Apache, aby zaimplementować swoje zmiany:

  • sudo systemctl restart apache2

Apache powinien teraz obsługiwać twoją nazwę domeny., Możesz to przetestować, przechodząc do , gdzie powinieneś zobaczyć coś takiego:

dzięki temu Twój wirtualny host jest w pełni skonfigurowany. Jednak przed wprowadzeniem jakichkolwiek zmian lub wdrożeniem aplikacji, pomocne byłoby proaktywne przetestowanie konfiguracji PHP w przypadku wystąpienia jakichkolwiek problemów, które powinny zostać rozwiązane.

Krok 5 — testowanie przetwarzania PHP na serwerze WWW

aby sprawdzić, czy Twój system jest poprawnie skonfigurowany dla PHP, Utwórz bardzo podstawowy skrypt PHP o nazwieinfo.php., Aby Apache mógł znaleźć ten plik i poprawnie go obsłużyć, musi on zostać zapisany w katalogu głównym.

Utwórz plik w katalogu głównym, który utworzyłeś w poprzednim kroku, uruchamiając:

  • sudo nano /var/www/your_domain/info.php

spowoduje to otwarcie pustego pliku. Dodaj następujący tekst, który jest prawidłowym kodem PHP, wewnątrz pliku:

info.php
<?phpphpinfo();?>

Po zakończeniu zapisz i zamknij plik.

teraz możesz sprawdzić, czy twój serwer WWW jest w stanie poprawnie wyświetlać zawartość wygenerowaną przez ten skrypt PHP. Aby to wypróbować, odwiedź tę stronę w swojej przeglądarce internetowej., Ponownie potrzebny będzie publiczny adres IP serwera.

adres, który chcesz odwiedzić to:

The page that you come to should look something like this:

This page provides some basic information about your server from the perspective of PHP. It is useful for debugging and to ensure that your settings are being applied correctly.

If you can see this page in your browser, then your PHP is working as expected.

You probably want to remove this file after this test because it could actually give information about your server to unauthorized users. To do this, run the following command:

  • sudo rm /var/www/your_domain/info.php

zawsze możesz odtworzyć tę stronę, jeśli chcesz uzyskać dostęp do informacji ponownie później.

podsumowanie

teraz, gdy masz zainstalowany stos LAMP, masz wiele możliwości, co robić dalej. Zasadniczo zainstalowałeś platformę, która pozwoli Ci zainstalować większość rodzajów stron internetowych i oprogramowania internetowego na swoim serwerze.

w następnym kroku należy upewnić się, że połączenia z serwerem WWW są zabezpieczone, obsługując je za pośrednictwem protokołu HTTPS., Najprostszą opcją jest użycie Let ' s Encrypt, aby zabezpieczyć swoją witrynę za pomocą bezpłatnego certyfikatu TLS / SSL.

niektóre inne popularne opcje to:

  • zainstaluj WordPress najpopularniejszy system zarządzania treścią w Internecie.
  • Skonfiguruj PHPMyAdmin, aby pomóc w zarządzaniu bazami danych MySQL z poziomu przeglądarki internetowej.
  • dowiedz się, jak używać protokołu SFTP do przesyłania plików na i z serwera.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *