Jak zainstalować Magento 2 na Ubuntu 20.04 LTS?

Kompleksowy przewodnik po tym, jak skonfigurować i wdrożyć sklep Magento2 na serwerze Ubuntu 20.04.

Magento to popularna platforma eCommerce zbudowana i napisana w PHP, jest używana przez wiele małych firm do sprzedaży produktów i tworzenia obecności w Internecie. Pozwala na stworzenie pełnowartościowego sklepu internetowego z funkcjami takimi jak zarządzanie zapasami, katalogi produktów, wysyłka, fakturowanie i wiele innych.

Jeśli chcesz zbudować elegancką platformę zakupową klasy korporacyjnej dla swojej firmy, Magento powinno być świetnym punktem wyjścia. W tym przewodniku przyjrzymy się, jak skonfigurować Magento Community Edition w wersji 2.3 ze stosem LAMP na serwerze Ubuntu 20.04.

Warunki wstępne

Będziesz potrzebować serwera Ubuntu 20.04 LTS i zalogować się jako sudo włączony użytkownik. Będziesz także potrzebować nazwy domeny wskazującej na adres IP twojego serwera Ubuntu 20.04. Użyjemy przykład.com wszędzie tam, gdzie wymagana jest nazwa domeny, zamień ją na swoją domenę. Zanim zaczniemy, zaktualizuj listę pakietów, a następnie zaktualizuj pakiety na serwerze Ubuntu 20.04.

aktualizacja sudo apt i aktualizacja sudo apt

Zainstaluj serwer WWW Apache

Magento wymaga do działania serwera WWW, w tym przewodniku wybraliśmy uruchomienie aplikacji Magento na stosie LAMP (Linux, Apache, MySQL, PHP). Więc zamierzamy zainstalować wszystkie pakiety składające się ze stosu LAMP.

Serwer WWW Apache jest jednym z najpopularniejszych serwerów WWW w Internecie, posiadającym prawie 37,2% całkowitego udziału w rynku serwerów WWW. Możesz także zainstalować Magento na stosie LEMP, który używa serwera WWW Nginx zamiast Apache. Ale w tym przewodniku zamierzamy wdrożyć nasz serwer Megento za pomocą Apache.

Aby zainstalować serwer WWW Apache, uruchom poniższe polecenie:

sudo apt zainstaluj apache2

Wprowadź swoje hasło użytkownika i naciśnij Y jeśli zostaniesz o to poproszony. Po zakończeniu instalacji musimy skonfigurować nieskomplikowaną zaporę sieciową Ubuntu (UFW), aby zezwolić na ruch na porcie 80 & 443.

UFW zawiera wstępnie skonfigurowane profile, które można przełączać, aby umożliwić aplikacji dostęp do portów na serwerze Ubuntu 20.04. Dlatego po zainstalowaniu serwera WWW Apache do listy aplikacji UFW dodano profile UFW o nazwie „Apache”, „Apache Full” i „Apache Secure”. Zezwól serwerowi Apache na serwowanie na porcie 80 & 443 biegiem:

sudo ufw zezwala na „Pełny Apache”

Teraz wszystko, co musimy zrobić, to włączyć UFW, ale zanim to zrobimy, upewnij się, że zezwoliłeś na port 22 (SSH). Jeśli nie zmienisz reguł SSH UFW, możesz zostać zablokowany na serwerze Ubuntu 20.04.

sudo ufw zezwala na 'OpenSSH'

Na koniec włącz zaporę UFW, uruchamiając:

włączanie sudo ufw

naciskać Y jeśli pojawi się monit z informacją, że polecenie może zakłócić połączenia SSH, ponieważ dodaliśmy już regułę zezwalającą przez nią na SSH. Możesz teraz uzyskać dostęp do serwera WWW Apache za pośrednictwem przeglądarki, wpisz adres IP serwera Ubuntu 20.04 w pasku adresu URL i naciśnij Enter.

domyślna strona ubuntu apache2

Zainstaluj serwer MySQL

Będziesz także potrzebował serwera bazy danych do uruchomienia Magento, ponieważ jest to miejsce, w którym przechowywana jest cała zawartość sklepu Magento. Zamierzamy zainstalować serwer MySQL i utworzyć użytkownika o nazwie magenta oraz bazę danych o nazwie magenta dla Magento.

Pakiet MySQL nazywa się mysql-server w repozytoriach Ubuntu zainstaluj go, uruchamiając:

sudo apt install mysql-server

Następnie musimy odpowiednio skonfigurować ustawienia bezpieczeństwa MySQL. Na szczęście pakiet MySQL zawiera skrypt bezpieczeństwa, który znacznie ułatwia konfigurację serwera MySQL. Wykonaj więc ten skrypt, uruchamiając następujące polecenie:

sudo mysql_secure_installation

Zostaniesz poproszony o wiele pytań, są to optymalne ustawienia serwera MySQL:

  • Czy chcesz skonfigurować komponent VALIDATE PASSWORD?[y/n]: Enter Y
  • Istnieją trzy poziomy polityki sprawdzania poprawności hasła.
    • Wprowadź 0 = NISKI, 1 = ŚREDNI i 2 = SILNY: Enter 2
  • Proszę ustawić hasło dla roota tutaj.
    • Nowe hasło: Wprowadź hasło dla użytkownika root MySQL.
    • Wprowadź ponownie nowe hasło: Powtórz wybrane hasło.
  • Usunąć anonimowych użytkowników? [t/n]: Enter Y
  • Nie zezwalać na zdalne logowanie roota? [t/n] : Enter Y
  • Usunąć testową bazę danych i uzyskać do niej dostęp? [t/n] : Enter Y
  • Załadować teraz ponownie tabele uprawnień? [t/n] : Enter Y

Następnie, aby zweryfikować i zweryfikować, czy serwer MySQL jest zainstalowany i działa poprawnie, zaloguj się do serwera MySQL jako użytkownik root poprzez:

sudo mysql

Wprowadź swój sudo hasło użytkownika, gdy zostaniesz o to poproszony, i naciśnij enter. Użytkownik root MySQL używa gniazdo_unixa do uwierzytelnienia logowania. Zasadniczo oznacza to, że musisz być a sudo użytkownika, aby zalogować się do serwera MySQL jako jego użytkownik root.

Utwórz nową bazę danych i użytkownika dla Magento

Możemy teraz utworzyć użytkownika MySQL dla Magento i jeśli postępowałeś zgodnie z każdym krokiem tego przewodnika, musisz mieć otwartą konsolę MySQL. Utwórz bazę danych o nazwie magenta wpisując w konsoli MySQL następujące zapytanie:

TWORZENIE BAZY DANYCH magento;

Aby utworzyć nowego użytkownika MySQL o nazwie magenta, uruchom to zapytanie w konsoli:

UTWÓRZ UŻYTKOWNIKA 'magentouser'@'%' ZIDENTYFIKOWANEGO ZA POMOCĄ mysql_native_password PRZEZ 'hasło';

Notatka: Zastąp hasło w zapytaniu z silnym hasłem do wyboru.

Następnie przyznaj nowe magenta pełny dostęp do magenta Baza danych:

PRZYZNAJ WSZYSTKO NA magento.* DO 'magentouser'@'%' Z OPCJĄ PRZYZNANIA;

Musimy ustawić log_bin_trust_function_creators parametr jako 1, ponieważ jest wyłączony w najnowszej wersji MySQL i bez jego włączenia Magento zgłasza kilka błędów podczas instalacji. Aby to zrobić, uruchom następujące zapytanie:

USTAW GLOBALNY log_bin_trust_function_creators=1;

Na koniec ponownie załaduj uprawnienia i ustawienia bazy danych, które zmieniliśmy, i wyjdź z konsoli, używając tych zapytań:

PRZYWILEJE WSPÓŁPRACUJĄCE; WYJŚCIE;

Zainstaluj PHP i wymagane rozszerzenia

Magento wymaga PHP i kilku rozszerzeń PHP do działania. W momencie pisania tego artykułu wersja społecznościowa Magento 2.3 nie działa z najnowszą wersją PHP 7.4 dlatego musimy zainstalować wersję PHP 7.3.

Musimy dodać PHP PPA innej firmy, abyśmy mogli zainstalować wersję PHP 7.3 ponieważ repozytoria Ubuntu zawierają tylko najnowsze 7.4 pakiety. Dodaj PPA i zaktualizuj listę pakietów, uruchamiając te polecenia:

sudo add-apt-repository ppa:ondrej/php && aktualizacja sudo apt

Następnie zainstaluj PHP 7.3 i wszystkie moduły PHP, których wymaga Magento, uruchamiając następujące polecenie:

sudo apt zainstaluj php7.3 php7.3-common php7.3-mysql php7.3-fpm php7.3-gmp php7.3-curl php7.3-intl php7.3-mbstring php7.3-xmlrpc php7.3- gd php7.3-xml php7.3-cli php7.3-zip php7.3-bcmath php7.3-mydło libapache2-mod-php7.3

Po zainstalowaniu PHP 7.3 musimy skonfigurować kilka podstawowych ustawień, które są zalecane przez Magento, aby działały poprawnie. Uruchom to polecenie, aby otworzyć plik konfiguracyjny rozszerzenia FPM za pomocą nano

sudo nano /etc/php/7.3/fpm/php.ini

Oto kilka ustawień zalecanych dla większości witryn Magento.

file_uploads = Włączone allow_url_fopen = Włączone short_open_tag = Włączone memory_limit = 256M cgi.fix_pathinfo = 0 upload_max_filesize = 100M max_execution_time = 360

Zapisz zmiany, naciskając Ctrl+O następnie wyjdź z edytora nano, naciskając Ctrl+X. Mamy teraz PHP i wszystkie niezbędne rozszerzenia, więc możemy przejść do Magento.

Zainstaluj kompozytora

Composer to menedżer zależności PHP, który ułatwia instalowanie frameworków i bibliotek PHP. Potrzebujemy Composera do pobrania i zainstalowania Magento na naszym serwerze Ubuntu 20.04.

Kompozytor wymaga pakietu o nazwie rozsunąć suwak aby wyodrębnić pobrane biblioteki i frameworki, zainstaluj je, uruchamiając:

sudo apt install rozpakuj

Następnie zainstaluj kompozytora na poziomie całego systemu, uruchamiając to polecenie:

curl -sS //getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=kompozytor

Powyższe polecenie powinno zainstalować menedżera zależności Composer na serwerze Ubuntu 20.04. Sprawdź, czy Composer jest poprawnie zainstalowany, uruchamiając:

kompozytor
 WYJŚCIE:  ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / / /_ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Wersja kompozytora 1.10.8 2020-06- 24 21:23:30 Użycie: polecenie [opcje] [argumenty] 

Pobierz i zainstaluj Magento

Możemy teraz przejść do pobierania i instalowania Magento, ponieważ zainstalowaliśmy i skonfigurowaliśmy wszystkie niezbędne pakiety wymagane przez Magento.

Tworzenie konta Magento

Aby pobrać Magento na serwer Ubuntu 20.04, potrzebujesz klucza dostępu do Magento 2. Aby uzyskać ten klucz dostępu, potrzebujesz konta Magento. Jeśli nie jesteś zarejestrowany i nie masz konta Magento, przejdź na tę stronę i kliknij „Zarejestruj się”.

Po zakończeniu tworzenia konta Magento będziesz mógł utworzyć nowy klucz dostępu, aby móc pobrać Magento 2 na swój komputer za pomocą kompozytora. Na tej stronie możesz wyświetlić wszystkie swoje klucze dostępu do Magento. Jeśli w zakładce Magento 2 nie ma klucza dostępu, kliknij przycisk „Utwórz nowy klucz dostępu” i nadaj mu nazwę, a następnie naciśnij „OK”.

Te klucze to twoje dane uwierzytelniające używane do pobierania Magento 2 z repozytorium Magento za pośrednictwem Composera. Użyjemy tych kluczy, gdy pobierzemy Magento, ale zanim to zrobimy, skonfigurujemy własność katalogu i uprawnienia.

Przedinstalacyjna konfiguracja własności i uprawnień

Uprawnienia do plików mogą spowodować lub złamać bezpieczeństwo dowolnej witryny internetowej, dlatego konieczne jest odpowiednie ustawienie własności i uprawnień głównego dokumentu serwera Apache.

Domyślny właściciel /var/www/ katalog jest użytkownikiem root, ale musimy uzyskać dostęp i zmodyfikować pliki w tym katalogu. Dodatkowo serwer WWW potrzebuje również dostępu do głównego katalogu dokumentów, aby móc odpisywać i modyfikować zawartość witryny Magento.

Aby rozwiązać ten problem, dodamy bieżącego użytkownika do www-dane grupę, w tym celu uruchom:

sudo usermod -a -G www-data $USER

ten -a-G opcje są ważne, ponieważ dodają www-dane jako drugorzędną grupę do konta użytkownika, która zachowuje podstawową grupę użytkownika. Po dodaniu użytkownika do grupy webserver zmień właściciela /var/www/ i jego podkatalogi za pomocą tego polecenia:

sudo chown -R $USER:www-data /var/www/

Teraz, gdy ustawiliśmy uprawnienia przedinstalacyjne dla Magento, możemy przejść do pobierania go w katalogu głównym dokumentów serwera WWW.

Pobieranie Magento

W tym momencie powinieneś mieć konto Magento z poprawnie skonfigurowanymi kluczami dostępu i uprawnieniami przedinstalacyjnymi. Dlatego użyjemy Composera, aby pobrać Magento do katalogu głównego dokumentu Apache, a następnie go zainstalować.

Zmień bieżący katalog na /var/www/ więc terminal wskazuje na niego, uruchamiając:

cd /var/www/

Uruchom poniższe polecenie, aby utworzyć nowy projekt za pomocą Composera znanego jako magenta.

kompozytor create-project --repository=//repo.magento.com/magento/project-community-edition magento

Po użyciu powyższego polecenia zostaniesz poproszony o podanie nazwy użytkownika i hasła. Tutaj mają być używane utworzone przez nas klucze dostępu. Skopiuj klucz publiczny i wklej go jako nazwę użytkownika, a następnie skopiuj swój klucz prywatny i wklej go do terminala jako hasło. Następnie naciśnij Y aby zapisać poświadczenia do wykorzystania w przyszłości.

 Wyjście:  Tworzenie projektu „magento/project-community-edition” w „./magento” Ostrzeżenie z repo.magento.com: Nie podałeś kluczy uwierzytelniających Magento. Aby uzyskać instrukcje, odwiedź stronę //devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html Wymagane uwierzytelnienie (repo.magento.com): Nazwa użytkownika: e8b6120dce14c3d982a85525264897c4 Hasło: Czy chcesz przechowywać dane uwierzytelniające dla repo.magento.com w /home/ath/.config/composer/auth.json ? [Yn] Y

Po pobraniu Magento i wszystkich jego zależności przez Composer, musimy ustawić własność i uprawnienia dla nowego katalogu projektu Magento i jego plików. Zmień katalog na katalog główny projektu Magento przez:

cd /var/www/magento/

Następnie zmień właściciela grupy katalogu projektu Magento i jego podkatalogów, uruchamiając:

znajdź dostawcę wygenerowanego przez var pub/static pub/media app/etc -type f -exec chmod g+w {} + && znajdź dostawcę wygenerowanego przez var pub/static pub/media app/etc -type d -exec chmod g+ws {} + && chmod u+x bin/magento && sudo chown -R :www-data . 

To polecenie da grupie serwerów WWW (www-dane) uprawnienia do zapisu w katalogach i plikach dostawcy, pub/static, pub/media i app/etc. Dodatkowo sprawi, że kosz/magento plik wykonywalny, dzięki czemu możemy go uruchomić i zainstalować Magento w naszym systemie.

Konfiguracja Apache dla Magento

Zamierzamy zainstalować Magento przez GUI, ponieważ w tym przypadku jest to bardziej intuicyjne niż instalacja CLI. Dlatego musimy stworzyć wirtualny host dla serwera Apache, zanim będziemy mogli kontynuować instalację Magento.

Otwórz domyślny plik wirtualnego hosta Apache za pomocą nano za pomocą następującego polecenia:

sudo nano /etc/apache2/sites-available/000-default.conf

Zmień katalog główny dokumentu na /var/www/magento i dodaj następujący fragment kodu poniżej.

 AllowOverride All NazwaSerwera example.com AliasSerwera www.example.com

Zastąp przykład.com w ServerName i ServerAlias ​​z nazwą domeny. Zmiany w twoim 000-default.conf plik powinien wyglądać podobnie do podświetlonego tekstu pokazanego poniżej. Zapisz zmiany, naciskając Ctrl+O i wyjdź z edytora za pomocą Ctrl+X Klucze.

 ServerAdmin webmaster@localhost DocumentRoot /var/www/magento AllowOverride All NazwaSerwera example.com ServerAlias ​​www.example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log łącznie 

Następnie musimy włączyć mod Apache o nazwie as mod_rewrite wymagane przez Magento. Zapewnia elastyczny i potężny sposób manipulowania adresami URL, więc włącz mod, uruchamiając:

przepisać sudo a2enmod

Zrestartuj serwer Apache, aby wszelkie wprowadzone przez nas zmiany zostały zastosowane na serwerze:

sudo systemctl uruchom ponownie apache2

Instalowanie Magento

Możemy wreszcie przystąpić do instalacji Magento, ponieważ mamy wszystko, czego wymaga Magento do działania. Wpisz adres IP serwera Ubuntu 20.04 w pasku adresu preferowanej przeglądarki.

Kliknij „Zgadzam się i skonfiguruj Magento”, aby kontynuować instalację Magento. Pierwszym krokiem instalatora Magento Web jest sprawdzenie gotowości, które zweryfikuje spełnienie wszystkich wymagań Magento. Kliknij „Rozpocznij sprawdzanie gotowości” i po zakończeniu procesu naciśnij „Dalej”.

Kolejnym krokiem jest ustawienie szczegółów i dodanie bazy danych dla Magento. Stworzyliśmy już użytkownika MySQL dla Magento o nazwie magenta oraz bazę danych o nazwie magenta w powyższej sekcji. Podaj odpowiednie dane w tej sekcji, a mianowicie nazwę użytkownika serwera bazy danych, jego hasło i nazwę bazy danych, a następnie naciśnij „Dalej”, aby kontynuować.

Trzecim krokiem w konfiguracji Magento jest konfiguracja sieciowa. Zamień adres IP z wpisu „Adres sklepu” na nazwę domeny, jeśli ją masz. Nie zapomnij wstawić ukośnika (/) po nazwie domeny w przeciwnym razie adres URL adresu administratora staje się niedostępny.

Następnie kliknij Opcje zaawansowane i zaznacz obie opcje HTTPS, jeśli chcesz korzystać z bezpiecznego połączenia ze swoją witryną Magento. Zachowaj pozostałe ustawienia bez zmian i naciśnij dalej.

Notatka: Jeśli zaznaczysz opcje HTTPS, będziesz potrzebować do tego certyfikatów SSL. W następnej części tego samouczka przyjrzymy się, jak uzyskać certyfikaty SSL.

W ustawieniach „Dostosuj swój sklep”, wystarczy zmienić strefę czasową, domyślną walutę używaną w sklepie i domyślny język sklepu zgodnie z własnymi potrzebami. Rozejrzyj się po tych ustawieniach, skonfiguruj je w razie potrzeby, w przeciwnym razie kliknij Dalej, aby kontynuować.

W piątym kroku musisz utworzyć konto administratora dla pulpitu administratora Magento. Wprowadź nową nazwę użytkownika dla administratora i wprowadź adres e-mail podany przez dostawcę nazwy domeny. Utwórz silne hasło do konta administratora, a po zakończeniu naciśnij przycisk Dalej.

Ostatnim i ostatnim krokiem jest po prostu kliknięcie przycisku „Zainstaluj”, aby potwierdzić ustawienia i rozpocząć proces instalacji. Po zakończeniu instalacji konfiguracja Magento wyświetli podsumowanie i kilka ważnych szczegółów dotyczących Twojej witryny Magento.

Zapisz te szczegóły w bezpiecznym miejscu, takim jak dokument offline lub w bezpiecznej bazie danych. Adres administratora i klucz szyfrowania Magento nigdy nie powinny być udostępniane publicznie. Klucz szyfrowania służy do szyfrowania bazy danych Magento, aby dane użytkownika były bezpieczne, nawet w przypadku wycieku danych.

Utwórz certyfikat SSL dla swojej witryny Magento

Witryna Magento została wdrożona i można do niej uzyskać dostęp zaraz po zakończeniu instalacji. Ale jeśli chcesz obsługiwać ruch internetowy przez HTTPS, musisz skonfigurować certyfikat SSL dla swojej domeny.

Letsencrypt to urząd certyfikacji non-profit, który bezpłatnie udostępnia certyfikaty TLS. Będziemy korzystać z pakietu o nazwie certbot co pomaga w uzyskaniu certyfikatu i automatycznej konfiguracji wirtualnego hosta Apache. Uruchom to polecenie w terminalu, aby zainstalować certbot:

sudo apt install certbot python3-certbot-apache

Aby uzyskać certyfikat z Letsencrypt i skonfigurować wirtualny host Apache, uruchom następujące polecenie:

sudo certbot -- apache

Certbot rozpocznie proces uzyskiwania certyfikatów z Letsencrypt, po wyświetleniu monitu podaj swój adres e-mail, a następnie naciśnij klawisz Enter. Następnie wpisz A wyrazić zgodę na warunki świadczenia usług Letsencrypt. Zostaniesz zapytany, czy chcesz udostępnić swój adres e-mail EFF, wpisz Y lub n w zależności od twojego wyboru.

Następnie otrzymasz listę nazw domen, dla których chcesz aktywować HTTPS. Wpisz odpowiedni numer odpowiadający Twojej nazwie domeny i naciśnij Enter.

Po wybraniu nazwy domeny zostaniesz zapytany, czy chcesz przekierować ruch HTTP na HTTPS, wpisz 2 i naciśnij Enter. Certbot będzie teraz automatycznie konfigurować wirtualnego hosta Apache dla domeny przykład.com.

Pakiet Certbot zawiera cronjob, który automatycznie odnawia certyfikaty serwera przed ich wygaśnięciem.Sprawdź, czy automatyczne odnawianie działa, uruchamiając:

sudo certbot odnowić -- dry-run

Powyższe dane wyjściowe oznaczają, że cronjob z automatycznym odnawianiem działa poprawnie. Aby potwierdzić, że Certbot zadziałał, otwórz przeglądarkę i odwiedź swoją domenę //przyklad.com.

Podobnie możesz uzyskać dostęp do strony logowania administratora za pomocą //example.com/admin_SecretString, ten adres URL znajdował się na końcu instalacji Magento.

Pomyślnie zainstalowałeś Magento na serwerze Ubuntu 20.04 LTS i możesz zacząć dostosowywać swój sklep do swoich potrzeb. Aby dowiedzieć się więcej o Magento i dowiedzieć się o rozwoju sklepu, przejdź na stronę Magento Docs.