Jak skonfigurować Joomla z Nginx i Let's Encrypt Certificates na Ubuntu 16.04 | 18.04

  • Cornelius Paul
  • 0
  • 4026
  • 1258

Niedawno pokazaliśmy, jak skonfigurować Joomla CMS z certyfikatami Apache2 i Let's Encrypt… Dla studentów i nowych użytkowników, którzy chcą zamiast tego skonfigurować Let's Encrypt z Nginx, poniższy krok powinien im pomóc…

Powiedzieliśmy Ci również, że jeśli zamierzasz tworzyć nową witrynę lub blog Joomla, upewnij się, że jest zgodny z protokołem HTTPS!

Google i inne wyszukiwarki również pozycjonują witryny HTTPS lepiej niż HTTP, a prywatność użytkowników również zostanie zapewniona… Idąc dalej, zawsze twórz witryny tak, aby były zgodne z HTTPS!

Ten krótki samouczek pokaże studentom i nowemu użytkownikowi krok po kroku, jak skonfigurować strony internetowe Joomla za pomocą Nginx 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 zająć trochę czasu, a poniższy proces powinien działać również w innych witrynach internetowych… To nie musi być Joomla… 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ć Joomla 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 Joomla

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

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

sudo apt update sudo apt install nginx

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

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

Teraz, gdy Nginx 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 Nginx został pomyślnie zainstalowany…

Krok 2: Zainstaluj serwer bazy danych MariaDB

Joomla wymaga również serwera bazy danych do przechowywania zawartości… Jeśli szukasz prawdziwie otwartego serwera bazy danych, MariaDB jest doskonałym miejscem do rozpoczęcia… Aby zainstalować MariaDB, wykonaj 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-FPM i powiązane moduły

Joomla CMS jest systemem CMS opartym na PHP i PHP jest wymagane… Jednak PHP 7.2-FPM może nie być dostępne w domyślnych repozytoriach Ubuntu… Aby uruchomić PHP 7.2-FPM na Ubuntu 16.04 i wcześniejszych, może być konieczne wykonanie 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-FPM

sudo apt update

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

sudo apt install php7.2-fpm php7.2-common php7.2-mysql php7.2-gmp php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc 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 Nginx…

sudo nano /etc/php/7.2/fpm/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 cgi.fix_pathinfo = 0 upload_max_filesize = 100 mln max_execution_time = 360 date.timezone = Ameryka / Chicago

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

sudo systemctl zrestartuj nginx.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 Nginx…. ( / 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 Joomla

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

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 joomla

STWÓRZ BAZĘ DANYCH joomla;

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

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

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

GRANT ALL ON joomla. * TO „joomlauser” @ „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ę Joomla

Aby pobrać najnowszą wersję Joomla, musisz przejść na jej oficjalną stronę pobierania i pobrać ją stamtąd… Poniższy link zawiera informacje, gdzie można znaleźć najnowsze wersje archiwalne Joomla…

https://downloads.joomla.org/

W chwili pisania tego tekstu najnowsza wersja to 3.9.5… Przyszła wersja będzie zawierała różne linki do pobrania z… .

Uruchom poniższe polecenia, aby pobrać i wyodrębnić wersję Joomla 3.9.5

cd / tmp wget https://downloads.joomla.org/cms/joomla3/3-9-5/joomla_3-9-5-stable-full_package-zip sudo unzip -d /var/www/html/example.com / tmp / joomla_3-9-5-stabilny-full_package-zip

Następnie uruchom poniższe polecenia, aby ustawić prawidłowe uprawnienia do katalogu głównego Joomla i dać kontrolę Nginx… .

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

Krok 6: Skonfiguruj Nginx

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

sudo nano /etc/nginx/sites-available/example.com

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.

serwer nasłuchuj 80; słuchaj [::]: 80; nazwa_serwera example.com www.example.com; root /var/www/html/example.com; index.php; access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; client_max_body_size 100M; autoindex wyłączony; lokalizacja / try_files $ uri $ uri / /index.php?$args;  lokalizacja ~ \ .php $ include snippets / fastcgi-php.conf; fastcgi_pass unix: /var/run/php/php7.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; dołącz fastcgi_params;  

Zapisz plik i zakończ.

W tym momencie Nginx 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 Nginx jest włączona i gotowa do użycia, uruchom poniższe polecenia, aby zainstalować i skonfigurować Let's Encrypt, aby zabezpieczyć witrynę Nginx…

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 Nginx…

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 / nginx / snippets / well-known

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

lokalizacja ^ ~ /.well-known/acme-challenge/ pozwól wszystkim; root / var / lib / letsencrypt /; default_type "tekst / zwykły"; try_files $ uri = 404; 

Zapisz plik i zakończ

Krok 8: Uzyskaj bezpłatny certyfikat

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

Zanim poprosisz o bezpłatny certyfikat, otwórz plik konfiguracyjny Nginx example.com utworzony powyżej… .

sudo nano / etc / nginx / sites-available /example.com

Po otwarciu pliku dodaj rozszerzenie podświetlony poniżej do pliku i zapisz…

serwer nasłuchuj 80; słuchaj [::]: 80; nazwa_serwera example.com www.example.com; root /var/www/html/example.com; index.php; dołącz fragmenty / dobrze znane; access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; client_max_body_size 100M; autoindex wyłączony; lokalizacja / try_files $ uri $ uri / /index.php?$args;  lokalizacja ~ \ .php $ include snippets / fastcgi-php.conf; fastcgi_pass unix: /var/run/php/php7.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; dołącz fastcgi_params; 

Zapisz plik i zakończ

Gdy skończysz, włącz witrynę i uruchom ponownie serwer HTTP Nginx, uruchamiając poniższe polecenia…

sudo ln -s /etc/nginx/sites-available/example.com / etc / nginx / sites-enabled / sudo systemctl restart nginx.service 

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 Nginx 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 example.com config i spraw, aby wyglądał podobnie do poniższego:

sudo nano /etc/nginx/sites-available/example.com

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

serwer nasłuchuj 80; nazwa_serwera www.example.com example.com; dołącz fragmenty / dobrze znane; return 301 https: // $ host $ request_uri;  serwer nasłuchiwanie 443 ssl http2; nasłuchuj [::]: 443 ssl http2; nazwa_serwera example.com www.example.com; root /var/www/html/example.com; index.html; if ($ host! = "example.com") return 301 https: //example.com$request_uri;  dołącz fragmenty / dobrze znane; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; ssl_dhparam /etc/ssl/certs/dhparam.pem; sl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305: ECDHE-RSA-CHACHA20-POLY1305: ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES128-GCM-SHA256: ECDHE-AES-SHDS RSA-AES256-GCM-SHA384: DHE-RSA-AES128-GCM-SHA256: DHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA256: ECDSDHES -128- SHA: ECDHE-RSA-AES256-SHA384: ECDHE-RSA-AES128-SHA: ECDHE-ECDSA-AES256-SHA384: ECDHE-ECDSA-AES256-SHA: ECDHE-RSA-AES256-SHA: DHE128-RSA-AES: DHE128-RSA-AES DHE-RSA-AES128-SHA: DHE-RSA-AES256-SHA256: DHE-RSA-AES256-SHA: ECDHE-ECDSA-DES-CBC3-SHA: ECDHE-RSA-DES-CBC3-SHA: EDH-RSA-DES- CBC3-SHA: AES128-GCM-SHA256: AES256-GCM-SHA384: AES128-SHA256: AES256-SHA256: AES128-SHA: AES256-SHA: DES-CBC3-SHA:! DSS '; ssl_prefer_server_ciphers on; ssl_stapling on; ssl_stapling_verify on; przelicznik 8.8.8.8 8.8.4.4 ważny = 300s; resolver_timeout 30s; access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; client_max_body_size 100M; autoindex wyłączony; lokalizacja / try_files $ uri $ uri / /index.php?$args;  lokalizacja ~ \ .php $ include snippets / fastcgi-php.conf; fastcgi_pass unix: /var/run/php/php7.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; dołącz fastcgi_params; 

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

sudo systemctl zrestartuj nginx

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: Skonfiguruj Joomla

Następnie otwórz przeglądarkę i przejdź do nazwy domeny serwera. Powinieneś zobaczyć kreatora konfiguracji Joomla, aby zakończyć. Postępuj zgodnie z instrukcjami kreatora.

http://example.com/

Następnie postępuj zgodnie z instrukcjami wyświetlanymi na ekranie… Wybierz język instalacji i konfigurację witryny głównej oraz konto administratora zaplecza, a następnie kliknij przycisk Dalej, aby kontynuować… .

Następnie wpisz informacje o utworzonej bazie danych powyżej i kliknij Dalej, aby kontynuować…

Potwierdź, że informacje o witrynie są poprawne i upewnij się, że wszystkie zalecane ustawienia są zaznaczone na zielono… Następnie kliknij przycisk Instaluj, aby rozpocząć instalację…

Po krótkiej chwili witryna powinna być zainstalowana i gotowa do użycia…. Kliknij Usuń folder instalacyjny, aby zabezpieczyć swoją witrynę…

Następnie zaloguj się do panelu zaplecza za pomocą konta superadministratora utworzonego powyżej… .

Cieszyć się!

Nie zapomnij usunąć katalogu instalatora, jeśli nie zrobiłeś tego powyżej…

sudo rm -rf / var / www / html / joomla / installation

Gratulacje! Pomyślnie zainstalowałeś Joomla CMS z obsługą Cloudflare na Ubuntu 16.04 | 18.04




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