Skonfiguruj Magento z Apache2 i Let's Encrypt SSL / TLS na Ubuntu 16.04 | 18.04

  • Yurii Anneticus
  • 0
  • 3809
  • 1258

Chcesz uruchomić platformę e-commerce Magento / Magento 2, aby sprzedawać swoje zapasy? Jeśli tak, upewnij się, że Twoje sklepy internetowe są zgodne z protokołem HTTPS!

Magento to platforma e-commerce typu open source napisana w języku PHP dla profesjonalistów i firm, które chcą zarządzać sklepem internetowym… To świetna i prawdopodobnie najpopularniejsza dostępna platforma eCommerce…

Teraz, gdy Google i inne wyszukiwarki oceniają witrynę HTTPS lepiej niż HTTP, zawsze powinieneś konfigurować swoje witryny z HTTPS…

Ten krótki samouczek pokaże studentom i nowemu użytkownikowi krok po kroku, jak skonfigurować strony internetowe Magento z Apache2 i korzystać z darmowych certyfikatów SSL / TLS Let's Encrypt i funkcji bezpieczeństwa, aby poprawić wydajność ich witryn internetowych i chronić przed złośliwymi aktorami…

Ta konfiguracja może trochę potrwać, a poniższy proces powinien działać również w innych witrynach… To nie musi być Magento… Ta konfiguracja powinna działać na innych systemach CMS i zwykłych witrynach HTML po wyjęciu z pudełka… Kiedy będziesz gotowy aby skonfigurować Magento i Let's Encrypt, wykonaj poniższe czynności:

Krok 0: Uzyskaj nazwę domeny

Let's Encrypt współpracuje z prawidłową domeną i działającym serwerem, na który wskazuje domena… Ta konfiguracja zakłada, że ​​nazwa Twojej domeny nosi nazwę example.com i wskazuje na Twój serwer o adresie IP 192.168.1.2

Nie zapomnij też się upewnić www CNAME wskazuje na nazwę domeny…. Powinien wyglądać jak coś poniżej:

example.com A ==========> 192.168.1.2 www CNAME ==========> example.com 

Krok 1: Zainstaluj i skonfiguruj Magento

Po skonfigurowaniu domeny tak, aby wskazywała na Twój serwer, przejdź poniżej do konfigurowania Magento i Let's Encrypt…

Najpierw zainstaluj serwer Apache2 HTTP, ponieważ używamy Apache2 w tym poście… Aby zainstalować serwer Apache2, uruchom poniższe polecenia:

sudo apt update sudo apt install apache2

Po zainstalowaniu Apache2 poniższe polecenia mogą być używane do zatrzymywania, uruchamiania i włączania usługi Apache2, aby zawsze uruchamiała się wraz z uruchomieniem serwera…

sudo systemctl stop apache2.service sudo systemctl start apache2.service sudo systemctl włącz apache2.service 

Teraz, gdy Apache2 jest zainstalowany…. aby sprawdzić, czy serwer WWW działa, otwórz przeglądarkę i przejdź do adresu URL poniżej…

https: // localhost

Jeśli widzisz powyższą stronę, oznacza to, że Apache2 został pomyślnie zainstalowany…

Krok 2: Zainstaluj serwer bazy danych MariaDB

Magento wymaga również serwera bazy danych do przechowywania swojej zawartości… Jeśli szukasz prawdziwie otwartego serwera bazy danych, MariaDB to świetne miejsce na rozpoczęcie… Aby zainstalować MariaDB, uruchom poniższe polecenia:

sudo apt-get install mariadb-server mariadb-client

Po zainstalowaniu MariaDB poniższe polecenia mogą służyć do zatrzymywania, uruchamiania i włączania usługi MariaDB, aby zawsze była uruchamiana po uruchomieniu serwera…

Uruchom je na Ubuntu 16.04 LTS

sudo systemctl stop mysql.service sudo systemctl start mysql.service sudo systemctl włącz mysql.service 

Uruchom je na Ubuntu 19.04 i 18.04 LTS

sudo systemctl stop mariadb.service sudo systemctl start mariadb.service sudo systemctl włącz mariadb.service 

Następnie uruchom poniższe polecenia, aby zabezpieczyć serwer bazy danych hasłem root, jeśli nie został wyświetlony monit o zrobienie tego podczas instalacji…

sudo mysql_secure_installation

Po wyświetleniu monitu odpowiedz na poniższe pytania, postępując zgodnie z instrukcjami.

  • Wprowadź aktualne hasło roota (wpisz żadnego): Po prostu naciśnij Enter
  • Ustawić hasło roota? [T / n]: Y
  • Nowe hasło: wprowadź hasło
  • Ponownie wprowadź nowe hasło: powtórz hasło
  • Usunąć anonimowych użytkowników? [T / n]: Y
  • Nie zezwalać na zdalne logowanie przez roota? [T / n]: Y
  • Usunąć testową bazę danych i uzyskać do niej dostęp? [T / n]: Y
  • Załadować teraz ponownie tabele uprawnień? [T / n]: Y

Teraz, gdy MariaDB jest już zainstalowana, aby sprawdzić, czy serwer bazy danych został pomyślnie zainstalowany, uruchom poniższe polecenia…

sudo mysql -u root -p

wpisz hasło roota po wyświetleniu monitu…

Jeśli zobaczysz podobny ekran, jak pokazano powyżej, serwer został pomyślnie zainstalowany…

Krok 3: Zainstaluj PHP 7.2 i powiązane moduły

Magento CMS jest systemem CMS opartym na PHP i PHP jest wymagane… Jednak PHP 7.2 może nie być dostępne w domyślnych repozytoriach Ubuntu… Aby uruchomić PHP 7.2 w systemie Ubuntu 16.04 i starszym, może być konieczne uruchomienie poniższych poleceń:

sudo apt-get install właściwości-oprogramowania-common sudo add-apt-repository ppa: ondrej / php

Następnie zaktualizuj i zaktualizuj do PHP 7.2

sudo apt update

Następnie uruchom poniższe polecenia, aby zainstalować PHP 7.2 i powiązane moduły.

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

Po zainstalowaniu PHP 7.2 uruchom poniższe polecenia, aby otworzyć domyślny plik konfiguracyjny PHP dla Apache2…

sudo nano /etc/php/7.2/apache2/php.ini 

Poniższe wiersze to dobre ustawienia dla większości systemów CMS opartych na PHP… Zaktualizuj plik konfiguracyjny za pomocą tych i zapisz… .

file_uploads = On allow_url_fopen = On short_open_tag = On memory_limit = 256 mln upload_max_filesize = 100 mln max_execution_time = 360 date.timezone = America / Chicago

Za każdym razem, gdy wprowadzasz zmiany w pliku konfiguracyjnym PHP, powinieneś także zrestartować serwer WWW Apache2… Aby to zrobić, uruchom poniższe polecenia:

sudo systemctl zrestartuj apache2.service

Teraz, gdy PHP jest zainstalowane, aby sprawdzić, czy działa, utwórz plik testowy o nazwie phpinfo.php w domyślnym katalogu głównym Apache2…. ( / var / www / html /)

sudo nano /var/www/html/phpinfo.php

Następnie wpisz zawartość poniżej i zapisz plik.

Następnie otwórz przeglądarkę i przejdź do nazwy hosta serwera lub adresu IP, a następnie phpinfo.php

http: //localhost/phpinfo.php

Powinieneś zobaczyć domyślną stronę testową PHP…

Krok 4: Utwórz bazę danych Magento

Po zainstalowaniu wszystkich pakietów wymaganych do działania Magento, przejdź poniżej, aby rozpocząć konfigurowanie serwerów. Najpierw uruchom poniższe polecenia, aby utworzyć pustą bazę danych Magento.

Aby zalogować się do serwera bazy danych MariaDB, uruchom poniższe polecenia.

sudo mysql -u root -p

Następnie utwórz bazę danych o nazwie magento

STWÓRZ BAZĘ DANYCH magento;

Utwórz użytkownika bazy danych o nazwie magentouser z nowym hasłem

UTWÓRZ UŻYTKOWNIKA 'magentouser' @ 'localhost' IDENTIFIED BY 'new_password_here';

Następnie przyznaj użytkownikowi pełny dostęp do bazy danych.

GRANT ALL ON magento. * TO 'magentouser' @ 'localhost' IDENTIFIED BY 'user_password_here' Z OPCJĄ GRANT;

Na koniec zapisz zmiany i wyjdź.

PRZYWILEJE SPŁUKIWANIA; WYJŚCIE;

Krok 5: Pobierz najnowszą wersję Magento

Aby pobrać najnowszą wersję Magento 2, możesz skorzystać z repozytorium Github… Zainstaluj Composer, Curl i inne zależności, aby rozpocząć…

sudo apt install curl git curl -sS https://getcomposer.org/installer | sudo php - --install-dir = / usr / local / bin --filename = composer 

Po zainstalowaniu curl i Composer powyżej przejdź do katalogu głównego Apache2 i pobierz pakiety Magento 2 z Github…

Po wyświetleniu monitu wprowadź klucze uwierzytelniania. Twój klucz publiczny to Twoja nazwa użytkownika; Twój prywatny klucz to twoje hasło…. (https://marketplace.magento.com/customer/accessKeys/)

Będziesz musiał zarejestrować konto, aby utworzyć klucz powyżej… .

cd / var / www / html sudo composer create-project --repository = https: //repo.magento.com/ magento / project-community-edition example.com 

Skopiuj i wklej klucz uwierzytelniający… (Twój klucz publiczny to Twoja nazwa użytkownika; Twój prywatny klucz to twoje hasło)

Wynik: Wymagane uwierzytelnienie (repo.magento.com): Nazwa użytkownika: 234f2343435d190983j0ew8u3220 Hasło: Czy chcesz przechowywać poświadczenia repo.magento.com w /opt/magento/.config/composer/auth.json? [Yn] Y

Po pobraniu pakietów Magento uruchom poniższe polecenia, aby zainstalować Magento 2 z następującymi opcjami:

cd /var/www/html/example.com sudo bin / magento setup: install --base-url-secure = https: //example.com/ --db-host = localhost --db-name = magento - db-user = magentouser --db-password = new_password_here --admin-firstname = Admin --admin-lastname = Użytkownik [email protected] --admin-user = admin --admin-password = admin123 --language = en_US --currency = USD --timezone = Ameryka / Chicago --use-rewrites = 1 
  • Oprogramowanie Magento jest instalowane w katalogu głównym na hoście lokalnym…. Admin jest Admin; w związku z tym: adres URL Twojej witryny sklepowej to https://exmaple.com
  • Serwer bazy danych znajduje się na tym samym hoście lokalnym co serwer WWW… .
  • Nazwa bazy danych to magento, i magentouser a hasło to new_passwored_here
  • Używa serwera przepisuje
  • Administrator Magento ma następujące właściwości:
    • Imię i nazwisko to: Administrator
    • Nazwa użytkownika to: Admin
  • a hasło to admin123
  • Adres e-mail to: [email protected]
  • Domyślny język to: (Angielski amerykański)
  • Domyślna waluta to: dolary amerykańskie
  • Domyślna strefa czasowa to: Stany Zjednoczone Ameryki Środkowej (Ameryka / Chicago)

Następnie uruchom poniższe polecenia, aby ustawić prawidłowe uprawnienia do działania Magento 2.

sudo chown -R www-data: www-data /var/www/html/example.com/ sudo chmod -R 755 /var/www/html/example.com/ 

Krok 6: Skonfiguruj Apache2

Następnie skonfiguruj plik konfiguracyjny witryny Apache2 dla Magento… Ten plik będzie kontrolował sposób, w jaki użytkownicy uzyskują dostęp do treści Magento. Uruchom poniższe polecenia, aby utworzyć nowy plik konfiguracyjny o nazwie example.com.conf

sudo nano /etc/apache2/sites-available/example.com.conf

Następnie skopiuj i wklej poniższą zawartość do pliku i zapisz go. Zastąp podświetlony wiersz własną nazwą domeny i katalogiem głównym.

 ServerName example.com ServerAlias ​​www.example.com ServerAdmin [email protected] DocumentRoot /var/www/html/example.com  Opcje FollowSymlinks AllowOverride All Wymagaj wszystkich przyznanych  ErrorLog $ APACHE_LOG_DIR /error.log CustomLog $ APACHE_LOG_DIR /access.log łącznie  RewriteEngine w RewriteBase / RewriteCond% REQUEST_FILENAME! -F RewriteRule ^ (. *) Index.php [PT, L]   

Zapisz plik i zakończ.

Teraz plik example.com plik konfiguracyjny zostanie utworzony, uruchom poniższe polecenia, aby go włączyć…

sudo a2ensite example.com.conf

W tym momencie Apache2 powinien być skonfigurowany i gotowy do odpowiedzi przez HTTP… Nie obsługuje jeszcze HTTPS.

Krok 7: Zainstaluj i skonfiguruj Let's Encrypt

Teraz, gdy nasza witryna Apache2 jest włączona i gotowa do użycia, uruchom poniższe polecenia, aby zainstalować i skonfigurować Let's Encrypt, aby zabezpieczyć witrynę Apache2…

Pierwsza instalacja Certbot… Certbot to w pełni funkcjonalne i łatwe w użyciu narzędzie, które może zautomatyzować zadania związane z uzyskiwaniem i odnawianiem certyfikatów SSL Let's Encrypt…

Aby go zainstalować, uruchom poniższe polecenia:

sudo apt install certbot

Po zainstalowaniu Certbota utwórz plik dla Let's Encrypt do wtyczki Webroot, aby zweryfikować naszą domenę w $ webroot-path /. well-known / acme-challenge informator… .

Aby to zrobić, utwórz katalog i daj do niego dostęp Apache2…

sudo mkdir -p /var/lib/letsencrypt/.well-known sudo chgrp www-data / var / lib / letsencrypt sudo chmod g + s / var / lib / letsencrypt

Następnie utwórz dobrze znany plik wyzwania z poniższymi konfiguracjami…

sudo nano /etc/apache2/conf-available/well-known.conf

Następnie skopiuj i wklej poniższą zawartość do pliku i zapisz…

Alias ​​/.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/"  AllowOverride Brak Opcje MultiViews Indeksy SymLinksIfOwnerMatch IncludesNoExec Metoda wymagania GET POST OPTIONS 

Zapisz plik i zakończ

Krok 8: Uzyskaj bezpłatny certyfikat

W tym momencie Twoja domena powinna wskazywać adres IP Twojego serwera… Serwer HTTP Apache2 został zainstalowany i skonfigurowany, a Certbot jest gotowy do uzyskania certyfikatu…

Przed zażądaniem bezpłatnego certyfikatu otwórz witrynę example.com i włącz konfiguracje i moduły Apache2, uruchamiając poniższe polecenia…

Poniższe polecenia włączają protokół Apache2 SSL, nagłówki, HTTPS / 2 i dobrze znany plik konfiguracyjny, który utworzyliśmy powyżej…

sudo a2enmod ssl sudo a2enmod nagłówki sudo a2enmod http2 sudo a2enconf dobrze znane

Po włączeniu modułów i pliku konfiguracyjnego powyżej, zrestartuj serwer Apache2… Aby to zrobić, uruchom poniższe polecenia

sudo systemctl zrestartuj apache2

W tym momencie wszystko jest ustawione i jesteś gotowy do uzyskania certyfikatu… Aby to zrobić, uruchom poniższe polecenia:

sudo certbot certonly --agree-tos --email [email protected] --webroot -w / var / lib / letsencrypt / -d example.com -d www.example.com

Let's Encrypt powinno się połączyć, zweryfikować domenę i serwer, a następnie zainstalować certyfikat domeny… Jeśli wszystko się powiedzie, powinien pojawić się podobny komunikat jak poniżej:

WAŻNE UWAGI: - Gratulacje! Twój certyfikat i łańcuch zostały zapisane pod adresem: /etc/letsencrypt/live/example.com/fullchain.pem Twój plik klucza został zapisany pod adresem: /etc/letsencrypt/live/example.com/privkey.pem Twój certyfikat wygaśnie w dniu 2018-08-18. Aby w przyszłości uzyskać nową lub ulepszoną wersję tego certyfikatu, po prostu ponownie uruchom certbot. Aby w sposób nieinteraktywny odnowić * wszystkie * swoje certyfikaty, uruchom „certbot renew” - Jeśli podoba Ci się Certbot, rozważ wsparcie naszej pracy poprzez: Darowizna dla ISRG / Let's Encrypt: https://letsencrypt.org/donate Darowizna dla EFF: https://eff.org/donate-le 

W tym momencie masz certyfikat, teraz przejdź i dodaj go do konfiguracji Apache2 dla domeny example.com…

Najpierw wygenerujmy certyfikat wymiany kluczy Diffiego-Hellmana (DH), aby bezpiecznie wymieniać klucze kryptograficzne… Aby to zrobić, uruchom poniższe polecenia, aby wygenerować certyfikat z 2048 bitami…

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Następnie otwórz plik konfiguracyjny example.com i spraw, aby wyglądał podobnie do poniższego:

sudo nano /etc/apache2/sites-available/example.com.conf

Skonfiguruj plik tak, aby wyglądał podobnie do poniższego

 NazwaSerwera example.com Aliasy serwera www.example.com Przekierowanie stałe / https://example.com/   ServerName example.com ServerAlias ​​www.example.com DocumentRoot /var/www/html/example.com Protokoły h2 http: /1.1  Przekierowanie stałe / https://example.com/  ErrorLog $ APACHE_LOG_DIR /example.com-error.log CustomLog $ APACHE_LOG_DIR /example.com-access.log połączone SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile / etc / letsencrypt live / example.com / privkey.pem SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem" SSLCipherSuite EECDH + AESGCM: EDH + AESGCM: AES256 + EECDH: AES256 + EDH SSLProt All -SSv1Lv2 -SSLv2 -SSLv2 -SSLv2. 1 SSLCompression wyłączone SSLUseStapling włączone  Opcje FollowSymlinks AllowOverride All Wymagaj wszystkich przyznanych   RewriteEngine w RewriteBase / RewriteCond% REQUEST_FILENAME! -F RewriteRule ^ (. *) Index.php [PT, L]  

Następnie musisz skonfigurować pamięć podręczną serwera dla informacji o stanie protokołu OCSP. Najlepszym miejscem do tego byłby plik konfiguracyjny Apache SSL.

sudo nano /etc/apache2/mods-available/ssl.conf

Ten plik zawiera wszystkie opcje używane przez Apache dla SSL. Dodatkową opcję SSLStaplingCache należy dodać do tego pliku, jak poniżej.

# Ustaw lokalizację pamięci podręcznej zszywania protokołu SSL OCSP SSLStaplingCache shmcb: / tmp / stapling_cache (128000) 

Dyrektywa SSLStaplingCache definiuje lokalizację pamięci podręcznej i wartość rozmiaru pamięci podręcznej OCSP.

Zapisz powyższe zmiany i uruchom ponownie Apache2, aby powyższe ustawienia zaczęły obowiązywać…

sudo systemctl zrestartuj apache2

Aby skonfigurować proces automatycznego odnawiania certyfikatów, dodaj zadanie cron, aby wykonać proces odnawiania.

sudo crontab -e

Następnie dodaj poniższą linię i zapisz.

0 1 * * * / usr / bin / certbot odnowienie &> / dev / null

Zadanie cron podejmie próbę odnowienia 30 dni przed wygaśnięciem

Krok 9: Dokończ konfigurację Magento

Następnie otwórz przeglądarkę i przejdź do nazwy domeny użytej powyżej…

https://example.com/

Powinieneś zobaczyć stronę główną Magento, jak pokazano poniżej

Gratulacje! Pomyślnie zainstalowałeś Magento na Ubuntu 16.04 | 18.04 z darmowymi certyfikatami Let's Encrypt…

W przyszłości, jeśli zechcesz zaktualizować do nowej wydanej wersji, po prostu uruchom poniższe polecenia, aby zaktualizować…

Aktualizacja Magento

Najpierw zatrzymaj serwer internetowy…

sudo systemctl zatrzymaj apache2

W przyszłości, jeśli zechcesz zaktualizować do nowej wydanej wersji, po prostu uruchom poniższe polecenia, aby zaktualizować…

cd /var/www/html/example.com konserwacja sudo bin / magento: włącz sudo composer wymaga magento / product-community-edition 2.2.5 --no-update sudo composer aktualizacja sudo php bin / magento setup: uaktualnij sudo php bin / magento setup: di: kompilacja sudo php bin / magento indexer: reindex sudo php bin / magento konserwacja: wyłącz 

Może być konieczne ponowne uruchomienie, aby zaktualizować uprawnienia katalogu Apache2…




Jeszcze bez komentarzy

Zbiór przydatnych informacji o systemie operacyjnym Linux i nowych technologiach
Świeże artykuły, praktyczne wskazówki, szczegółowe recenzje i poradniki. Poczuj się jak w domu w świecie systemu operacyjnego Linux