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-rootsudo
I 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"
OutputProfile: 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żyjapt
aby 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_socket
namysql_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:
<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/www
dla 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:
<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:
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:
OutputSyntax 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:
<?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