Jak hostować stronę internetową (przewodnik po konfigurowaniu własnego serwera)

Jak stworzyć serwer


Aby hostować witrynę na serwerze, musisz ubrudzić sobie ręce i samodzielnie skonfigurować całe środowisko. Poniżej znajduje się ogólny przykład wykonywania zadań przy użyciu wirtualnego prywatnego serwera Ubuntu 18.04

Krótko mówiąc, musisz:

    • Wykonaj wstępną konfigurację serwera
    • Skonfiguruj strefę DNS i wskaż domenę
    • Zainstaluj stos oprogramowania
    • Utwórz wirtualny host
    • Uruchom swoją witrynę internetową

P.S. Jeśli nie chcesz wykonywać tych skomplikowanych kroków, zastanów się nad hostingiem.

1. Pierwsze kroki konfiguracji serwera

Jeśli zdecydujesz się wynająć serwer dedykowany lub VPS, najpierw musisz położyć solidny fundament. Obejmuje to dostęp do serwera za pośrednictwem terminala lub klienta SSH oraz wprowadzanie poprawek i aktualizacji zabezpieczeń.

Połącz się ze swoim serwerem

Zacznij od połączenia z serwerem. Następujące polecenie załatwi sprawę:

ssh [chroniony przez e-mail] _server_IP -port

Podczas pierwszego połączenia może zostać wyświetlony monit o dodanie adresu IP serwera do listy znanych hostów. Wpisz tak aby kontynuować, pojawi się monit o wpisanie hasło roota.

dodanie adresu IP serwera do znanych hostów

Oto przykład tego, co powinieneś zobaczyć na ekranie, jeśli wszystko pójdzie dobrze.

początkowy ekran logowania Ubuntu SSH

Pobierz najnowsze aktualizacje

Uruchom następujące polecenia, aby uzyskać najnowsze aktualizacje dla serwera Ubuntu 18.04:

aktualizacja sudo apt
sudo apt upgrade

Po uruchomieniu drugiego polecenia zobaczysz ekran potwierdzenia. Wpisz Y kontynuować.

potwierdzanie aktualizacji serwera Ubuntu

Utwórz nowego użytkownika

Następnie musisz dodać nowego użytkownika, ponieważ korzystanie z konta root do codziennych zadań nie jest zalecane. Nazwijmy to webmasterem. Aby rozpocząć tworzenie użytkownika, wykonaj:

webmaster adduser

tworzenie nowego użytkownika Ubuntu

Po utworzeniu hasła pojawi się monit o podanie ogólnych informacji (które możesz pozostawić puste). Następnie wpisz Y aby potwierdzić utworzenie nowego użytkownika.

Domyślnie nowy użytkownik nie będzie miał wystarczających uprawnień, aby zrobić wszystko, czego potrzebujesz, dlatego musisz dodać je ręcznie. Oto jak to robisz:

usermod -aG sudo webmaster

Otóż ​​to! Twój nowy użytkownik administracyjny jest gotowy. Aby zacząć używać go zamiast roota, wykonaj:

su – webmaster

zmiana użytkownika systemu

Skonfiguruj uwierzytelnianie za pomocą klucza publicznego (opcjonalnie)

Użycie hasła do uwierzytelnienia naraża Cię na próby użycia siły i naraża serwer na umiarkowane ryzyko (szczególnie jeśli jesteś leniwy, aby ustawić unikalne i silne hasło).

Świetnym sposobem na poprawę integralności serwera jest użycie kluczy SSH zamiast zwykłego hasła. Kroki powinny być identyczne bez względu na to, z której dystrybucji Linux korzystasz. Na początek Wyloguj serwera i wykonaj następujące polecenie na swoim komputer lokalny aby utworzyć nowy klucz publiczny:

ssh-keygen

Zostaniesz poproszony o podanie dodatkowego hasła i lokalizację, w której chcesz zapisać klucz publiczny. Domyślnie zapisuje wszystko /Users/Your_User/.ssh katalog (który możesz przechowywać, chyba że masz inne plany).

uruchamianie klucza SSH

Po zakończeniu skopiuj klucz SSH na swój serwer, używając:

ssh-copy-id [chroniony przez email] _server_IP

Możesz również zrobić to samo dla użytkownika root na wszelki wypadek:

ssh-copy-id [chroniony przez email] _server_IP

przeniesienie klucza SSH na zdalny serwer

Na koniec musisz ponownie zalogować się na serwerze. Tylko tym razem do uwierzytelnienia użyjesz klucza SSH i jego hasła. Jeśli ktoś odgadnie twoje hasło, nie będzie mógł się zalogować, ponieważ klucz publiczny jest wymagany do nawiązania połączenia.

logowanie do serwera za pomocą klucza SSH

Wyłącz uwierzytelnianie hasła (opcjonalnie)

Ponieważ możesz teraz uzyskać dostęp do swojego serwera za pomocą nowo wygenerowanego klucza SSH, zaleca się wyłączenie zwykłego uwierzytelniania za pomocą hasła. Aby to zrobić, możemy użyć nano Edytor tekstu:

sudo nano / etc / ssh / sshd_config

Poszukaj wiersza z hasłem #PasswordAuthentication tak, usuń # i zmień tak do Nie. Ostateczny wynik powinien wyglądać następująco:

wyłączenie uwierzytelniania hasła w konfiguracji sshd

Aby zapisać te zmiany i wyjść z nano edytora, naciśnij CTRL + X, Wpisz Y i naciśnij Wchodzić. Na koniec zastosuj wszystko, ponownie ładując usługę sshd:

sudo systemctl reload sshd

I to wszystko! Będziesz teraz używać klucza publicznego do uwierzytelniania zamiast hasła, co jest uważane za bezpieczniejszy sposób dostępu do serwera i zarządzania nim.

Skonfiguruj zaporę ogniową

Na koniec warto użyć zapory ogniowej, aby uchronić się przed zagrożeniami czającymi się w sieci. Nieskomplikowana zapora ogniowa jest jednym z najlepszych narzędzi do tego zadania. Aby to skonfigurować, wykonaj:

sudo apt-get install ufw

Po zainstalowaniu zapora nie będzie działać, dopóki nie zostanie włączona ręcznie. Możesz włączyć to za pomocą:

sudo ufw enable

włączanie ufw Ubuntu

Aby sprawdzić, czy działa, wykonaj:

pełny status sudo ufw

2. Ustaw strefę DNS

Kolejnym wyzwaniem będzie utworzenie strefy DNS, która będzie działać jako materiał wiążący między nazwą domeny a serwerem. Możemy podzielić go na dwa mniejsze kroki:

  1. Konfigurowanie strefy DNS na serwerze
  2. Tworzenie niestandardowych serwerów nazw u rejestratora domen

Utwórz nową strefę DNS

Aby utworzyć nową strefę DNS, będziemy używać narzędzia o nazwie bind9. W końcu jest to usługa, która pozwala nam załadować stronę internetową przez nazwę domeny zamiast adresu IP.

Aby zainstalować Bind9 na serwerze Ubuntu 18.04, wykonaj:

sudo apt-get install bind9

Po zainstalowaniu wszystkie pliki będą dostępne w / etc / bind informator. Przejdźmy do tego najpierw:

cd / etc / bind

Aby wszystko było uporządkowane i uporządkowane, utworzymy osobny katalog dla naszych stref DNS:

sudo mkdir -p strefy

Utwórzmy nowy plik strefy DNS dla naszej domeny. Będziemy używać domena-przyklad.com w celach demonstracyjnych (powinieneś zastąpić ją faktyczną nazwą domeny).

sudo nano zone / domain-example.com

Przykład fragmentu strefy DNS:

;
; Plik danych BIND dla domeny-example.com
;
TTL 3 godz
@ IN SOA ns1.domain-example.com. admin.domain-example.com. (
1; Seryjny
3h; Odśwież po 3 godzinach
1h; Spróbuj ponownie po 1 godzinie
1w; Wygasają po 1 tygodniu
1h); Ujemne buforowanie TTL 1 dnia
;
@ IN NS ns1.domain-example.com.
@ IN NS ns2.domain-example.com.

domena-przyklad.com. IN YOUR_SERVER_IP
ns1 IN A YOUR_SERVER_IP
ns2 IN A YOUR_SERVER_IP
www W CNAME domena-przyklad.com.
napisz IN YOUR_SERVER_IP
ftp IN CNAME domain-example.com.
domena-przyklad.com. W MX 10 domain-example.com.

Pamiętaj, aby zastąpić wszystkie swoje wystąpienia Twój_serwer_IP i domena-przyklad.com z rzeczywistymi wartościami. Zapisz plik strefy, naciskając CTRL + X a następnie pisać Y aby potwierdzić zmiany.

Następnie musimy edytować konfigurację lokalną i określić lokalizację naszej nowo utworzonej strefy DNS. Dzięki temu serwer wie, który plik strefy należy do której nazwy domeny.

sudo nano o nazwie.conf.local

Wklejając poniższe wiersze u dołu pliku, zastępuj domena-przyklad.com z faktycznym adresem witryny.

strefa "domena-przyklad.com" {
typ mistrz;
plik "/etc/bind/zones/domain-example.com";
};

naciśnij CTRL + X i dane wejściowe Y aby zapisać zmiany i wyjść z edytora nano.

Możesz także sprawdzić, czy wszystko zostało poprawnie dodane i skonfigurowane, wykonując następujące polecenie:

sudo o nazwie checkzone domain-example.com /etc/bind/zones/domain-example.com

weryfikacja strefy dns

Na koniec uruchom te dwa polecenia, aby zrestartować usługę DNS serwera i upewnić się, że działa:

sudo /etc/init.d/bind9 restart
sudo /etc/init.d/bind9 start

W tym momencie strefa DNS jest gotowa po stronie serwera. Aby go sfinalizować, musisz utworzyć niestandardowe wpisy serwerów nazw w rejestratorze domeny.

Utwórz niestandardowe serwery nazw dla swojej domeny

Ponieważ określono dwa serwery nazw (ns1.domain-example.com i ns2.domain-example.com) w naszym przykładzie strefy DNS musimy utworzyć te wpisy u rejestratora domen i użyć ich.

Oto jak powinny wyglądać wpisy:

Niestandardowy serwer nazwPunkty dla
ns1.domain-example.comTwój_serwer_IP
ns2.domain-example.comTwój_serwer_IP

tworzenie serwera nazw dziecka

Po utworzeniu musisz skierować domenę do tych nowych serwerów nazw.

zaktualizuj serwery nazw

3. Zainstaluj LAMP Stack

LAMP jest jednym z najczęściej używanych pakietów oprogramowania w Internecie. To skrót od Linux, Apache HTTP Server, MySQL / MariaDB i PHP. Przed hostowaniem witryny musisz upewnić się, że wszystkie te składniki są dostępne na Twoim serwerze. Oto jak proces ich konfigurowania wyglądałby przy użyciu Ubuntu 18.04:

Apacz

Serwer HTTP Apache może już być zawarty w domyślnych pakietach dostarczanych z serwerem. Jeśli nie, wykonaj:

sudo apt-get install apache2

zainstaluj Apache

Ponieważ istnieje zapora ogniowa, musimy upewnić się, że te porty są otwarte, ponieważ w przeciwnym razie Apache nie będzie działał poprawnie. Oto, na co powinieneś zezwolić przez zaporę ogniową:

sudo ufw pozwalają 80 / tcp
sudo ufw pozwalają na 443 / tcp

Następnie uruchom go ponownie, aby upewnić się, że zmiany zostały zastosowane:

sudo ufw reload

W tym momencie oto, co powinieneś zobaczyć, odwiedzając Adres IP twojego serwera za pomocą przeglądarki:

domyślna strona Apache2

PHP

Aby uzyskać najnowszą wersję PHP z kilkoma dodatkowymi modułami, których potrzebuje WordPress, wykonaj:

sudo apt-get install php php-common php-mysql php-gd php-cli

potwierdź instalację PHP

Możesz sprawdzić, która wersja PHP została zainstalowana na twoim serwerze, wpisując:

php -v

sprawdź wersję PHP

MySQL / MariaDB

MariaDB i MySQL to dwa z najlepszych wyborów dla serwera bazy danych w systemie Linux. W tym przykładzie użyjemy MariaDB. Aby zainstalować go na serwerze, wykonaj:

sudo apt-get install mariadb-server mariadb-client

zainstaluj Mariadb

Po zakończeniu musisz użyć dodatkowego skryptu dołączonego do pakietu. Ustanowi podstawowe środki bezpieczeństwa dla twojego serwera bazy danych. Zacznij od wpisania:

sudo mysql_secure_installation

Na pierwszym etapie zostaniesz poproszony o podanie hasła root MySQL. wciśnij Wchodzić przycisk, aby kontynuować, ponieważ nie został jeszcze utworzony. Następnie postępuj zgodnie z pozostałymi instrukcjami wyświetlanymi w interfejsie wiersza polecenia.

Bezpieczna instalacja Mariadb

Na koniec możesz sprawdzić, czy mój serwer bazy danych działa, uruchamiając:

sudo systemctl status mysql

4 Utwórz wirtualny host

Kolejnym zadaniem będzie utworzenie dedykowanego katalogu dla plików witryny. Zacznij od zmiany katalogu roboczego:

cd / var / www / HTML

Użyj tego polecenia, aby utworzyć folder dla swojej domeny i dodatkowy w obrębie:

sudo mkdir -p domain-example.com/public_html

Następnie wykonaj webmaster użytkownik, którego wcześniej utworzyliśmy właściciela, używając:

sudo chown -R webmaster: webmaster domain-example.com/public_html

Musisz także upewnić się, że uprawnienia do odczytu są stosowane do katalogu głównego Apache. W tym przypadku:

sudo chmod -R 755 / var / www / html /

W tym momencie Apache pobiera wszystkie ustawienia z 000-default.conf plik. Musimy skopiować zawartość tego pliku i utworzyć osobny dla naszej nazwy domeny. Najłatwiejszym sposobem skopiowania szablonu konfiguracji hosta wirtualnego jest użycie następującego polecenia:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain-example.com.conf

Zasadniczo tworzy to kopię pliku pod inną nazwą w tym samym katalogu. Jest to plik, który informuje serwer WWW Apache o lokalizacji katalogu głównego domeny, dziennika błędów i innych ważnych ścieżek. Aby zmienić jego zawartość, użyjemy nano:

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

Przykład konfiguracji Apache:

# Dyrektywa ServerName ustawia schemat żądania, nazwę hosta i port
# serwer używa się do identyfikacji. Jest to używane podczas tworzenia
# adresy URL przekierowania. W kontekście hostów wirtualnych nazwa_serwera
# określa, do której nazwy hosta musi się pojawić nagłówek Host: żądania
# dopasuj ten wirtualny host. Dla domyślnego wirtualnego hosta (ten plik) to
# wartość nie jest decydująca, ponieważ niezależnie od tego jest używana jako host ostateczny.
# Należy jednak ustawić jawnie dla dowolnego dalszego hosta wirtualnego.

ServerAdmin [chroniony przez e-mail]
DocumentRoot /var/www/html/domain-example.com/public_html
NazwaSerwera domena-przyklad.com
ServerAlias ​​www.domain-example.com

# Dostępne loglevels: trace8, …, trace1, debugowanie, informacje, zawiadomienie, ostrzeżenie,
# błąd, kryt, alert, pojawianie się.
# Można również skonfigurować loglevel dla określonych
# modułów, np.
#LogLevel info ssl: warn

ErrorLog $ {APACHE_LOG_DIR} /error.log
CustomLog $ {APACHE_LOG_DIR} /access.log łącznie

# Dla większości plików konfiguracyjnych z conf-available /, które są
# włączone lub wyłączone na poziomie globalnym, jest to możliwe
# zawiera wiersz tylko dla jednego konkretnego wirtualnego hosta. Na przykład
# następujący wiersz włącza konfigurację CGI tylko dla tego hosta
# po globalnym wyłączeniu za pomocą "a2disconf".
#Include conf-available / serve-cgi-bin.conf

Pamiętaj, aby zastąpić wszystkie wystąpienia domeny-example.com rzeczywistą nazwą domeny. Aby zapisać plik, naciśnij CTRL + X i potwierdź, pisząc Y. Ostateczny wynik powinien wyglądać następująco:

dodanie konfiguracji domeny do Apache

W tym momencie musisz wyłączyć domyślny plik konfiguracyjny hosta wirtualnego i użyć nowo utworzonego. Polecenie to wyłączy:

sudo a2dissite 000-default.conf

Następnie dodaj ostatnio utworzony plik konfiguracyjny, jak pokazano poniżej:

sudo a2ensite domain-example.com.conf

Na koniec musisz ponownie uruchomić Apache, aby zastosować zmiany. Możesz to zrobić, uruchamiając:

sudo systemctl reload apache2

Pomyślnie zainstalowałeś LAMP na swoim serwerze. Ponieważ Twoja domena jest już wskazana na serwer, może być konieczne poczekanie kilku godzin, aż DNS w pełni się propaguje. Następnie powinieneś zobaczyć podobny ekran podczas odwiedzania swojej domeny przez przeglądarkę.

zawartość katalogu głównego domeny

5. Skonfiguruj WordPress (lub prześlij stronę internetową)

Ponieważ początkowa konfiguracja serwera jest w końcu zakończona, nadszedł czas, aby hostować na niej witrynę internetową. W tej sekcji pokażemy ogólny przykład, jak uruchomić witrynę WordPress.

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

Zacznij od uzyskania dostępu do interfejsu MySQL przez terminal:

sudo mysql

>Użyj następującej składni, aby utworzyć nową bazę danych:

UTWÓRZ BAZA DANYCH wpdatabase;

Następnie utwórz nowego użytkownika i podaj hasło:

UTWÓRZ UŻYTKOWNIKA „wpuser” @ „localhost” IDENTYFIKOWANY PRZEZ „SuperSecurePassword123”;

Następnie przypisz uprawnienia administracyjne do nowo utworzonego użytkownika za pomocą:

UDZIEL WSZYSTKICH UPRAWNIEŃ NA wpdatabase. * TO ‘wpuser’ @ ‘localhost’;

Otóż ​​to! Twój użytkownik MySQL i baza danych są gotowe do działania. Aby wyłączyć interfejs, wpisz:

wyjście

Przenieś pliki WordPress na swój serwer

Na koniec musimy pobrać rzeczywiste pliki witryny do katalogu głównego domeny. Istnieją dwa podejścia, które opiszemy krok po kroku:

  • Za pomocą polecenia wget, aby uzyskać najnowszą wersję WordPress
  • Konfigurowanie klienta FTP (takiego jak FileZilla)

Metoda 1: Korzystanie z narzędzi wiersza polecenia

Pierwszym sposobem jest użycie polecenia o nazwie wget. Aby użyć go na serwerze, musisz go zainstalować:

sudo apt-get install wget

Następnie zmień katalog roboczy na folder główny nazwy domeny:

cd /var/www/html/domain-example.com/public_html

Użyj polecenia wget, aby pobrać najnowszą wersję WordPress z Internetu:

wget https://www.wordpress.org/latest.zip

Następnie wyodrębnij całą zawartość archiwum, używając:

rozpakuj najnowsze.zip

Domyślnie wszystkie pliki pojawią się w nowym katalogu o nazwie WordPress (co może skutkować działaniem Twojej witryny za pośrednictwem domain-example.com/wordpress). Aby wszystko działało poprawnie, musimy przenieść wszystkie pliki z tego katalogu do powyższego. Oto jak to zrobić:

wordpress cd

Następujące polecenie przeniesie wszystkie pliki z bieżącego katalogu do określonej lokalizacji:

sudo mv * /var/www/html/domain-example.com/public_html/

Przed rozpoczęciem instalacji musisz przygotować plik wp-config.php. Ponieważ podano tylko próbkę. Zacznij od zmiany nazwy:

sudo mv wp-config-sample.php wp-config.php

Następnie edytuj plik za pomocą nano i dodaj szczegóły konfiguracji bazy danych MySQL.

sudo nano wp-config.php

Zaktualizuj MySQL Użytkownik, Baza danych, i Gospodarz sekcje z wartościami, które wcześniej utworzyłeś.

edycja konfiguracji WP

Na koniec odwiedź swoją nazwę domeny w przeglądarce, a zobaczysz początkowy ekran konfiguracji WordPress.

wstępna konfiguracja WordPress

Po zakończeniu możesz zainstalować wtyczkę migracji, taką jak All-in-One WP Migration, aby zaimportować istniejącą witrynę WordPress.

Metoda 2: Korzystanie z klienta FTP

Alternatywnie możesz użyć klienta FTP, takiego jak FileZilla. Jeśli skonfigurowałeś klucz SSH i wyłączono uwierzytelnianie hasła, musisz go użyć do zalogowania zamiast zwykłej kombinacji nazwy użytkownika i hasła. Aby skonfigurować połączenie SFTP:

  1. Iść do FileZilla Site Manager i dodaj Nowa strona.
  2. Ustaw protokół na SFTP – protokół przesyłania plików SSH.
  3. Wpisz adres IP swojego serwera w Gospodarz i ustaw port na 22.
  4. Ustaw typ logowania na Plik klucza.
  5. Podaj ścieżkę do klucza SSH (np. /Users/Name/.ssh/id_rsa).
  6. FileZilla przekształci go w plik .ppk plik, którego możesz użyć do nawiązania połączenia.

konwersja klucza SSH

Ostateczna konfiguracja powinna wyglądać mniej więcej tak:

Konfiguracja FileZilla sftp

Teraz będziesz mógł uzyskać dostęp do swojego serwera za pośrednictwem FTP i przesyłać dowolne pliki bezpośrednio z komputera.

Połączenie FileZilla sftp

Gratulacje! Nauczyłeś się, jak hostować witrynę na wirtualnym prywatnym serwerze z systemem Ubuntu 18.04. Omówiono wszystko, od wstępnej konfiguracji serwera po przygotowanie stosu oprogramowania. Pozostało tylko chwycić serwer i ubrudzić sobie ręce!

Ten artykuł został opublikowany przy pomocy Hostinger.com.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map