W tym artykule przedstawimy Ci instrukcje krok po kroku, jak skonfigurować środowisko sieciowe na serwerze z systemem Linux. Przede wszystkim musisz zrozumieć, że typowy serwer sieciowy składa się z kilku współdziałających komponentów:
- Serwer HTTP
- interpretator języka programowania
- system zarządzania bazą danych (DBMS)
Aby zarządzać swoją witryną internetową, musisz również skonfigurować system zarządzania treścią (CMS), interfejs internetowy do zarządzania bazą danych i dostęp FTP.
Rozważmy skonfigurowanie bardzo popularnej konfiguracji Apache-PHP-MySQL(MariaDB) na Linuksie. Zainstalujemy również serwer ftp vsftpd, phpMyAdmin - interfejs internetowy do zarządzania bazą danych i system zarządzania treścią WordPress.
Aby rozpocząć, zamów serwer VPS lub serwer dedykowany . Na przykład użyliśmy serwera wirtualnego ze statycznym adresem IP i systemem Ubuntu Server 18.04. Wszystkie polecenia były uruchamiane przez użytkownika root.
Konfiguracja serwera Apache HTTP
1. Instalacja
apt install apache2
Po zakończeniu instalacji otwórz przeglądarkę i sprawdź „http://[adres_ip_serwera]”
Jeśli na powyższym zrzucie ekranu widzisz stronę powitalną, oznacza to, że Twój serwer HTTP działa.
2. Utwórz stronę testową
Domyślny katalog główny witryny to „/var/www/html” . To właśnie tutaj znajdziesz stronę powitalną, którą właśnie widziałeś. Utwórzmy osobny katalog „/var/www/sites” dla hostów wirtualnych i podfolder „/var/www/sites/site1” ze stroną indeksową witryny testowej.
cd /var/www/
mkdir -p sites/site1
echo "<H1>Welcome</H1>" > sites/site1/index.html
W rezultacie plik „/var/www/sites/site1/index.html” powinien zawierać tylko jedną linijkę kodu HTML:
<H1>Welcome</H1>
3. Konfiguracja serwera Apache
Pliki konfiguracyjne witryn znajdują się w katalogu „/etc/apache2/sites-available/” . Utwórzmy plik konfiguracyjny dla nowego hosta wirtualnego, biorąc za podstawę domyślną konfigurację z pliku „000-default.conf” .
cd /etc/apache2/sites-available/
cp 000-default.conf site1.conf
Otwórz plik „site1.conf” i zmień atrybut „DocumentRoot” . Jako wartość wpisz ścieżkę do swojej witryny, czyli w naszym przypadku „/var/www/sites/site1”.
Na tym etapie nie musimy konfigurować jednoczesnego działania wielu witryn, więc możemy wyłączyć domyślną witrynę i włączyć nową. Ponownie załaduj konfigurację serwera, aby zastosować zmiany.
a2dissite 000-default
a2ensite site1
systemctl reload apache2
Otwórz ponownie link „http://[adres_ip_serwera]” i upewnij się, że zamiast domyślnej strony powitalnej mamy naszą nową stronę.
Zakończyliśmy konfigurację naszego serwera HTTP i możemy przejść do następnego kroku.
Konfiguracja serwera FTP
1. Instalacja
Zainstalujmy nasz serwer ftp i dodatkowy pakiet „db-util” , którego będziemy potrzebować do konfiguracji użytkowników wirtualnych
apt install vsftpd db-util
2. Utwórz konto lokalne
Serwer vsftpd pozwala nam konfigurować uprawnienia dostępu w bardzo elastyczny sposób. Do naszych zadań musimy zapewnić użytkownikom ftp następujące informacje:
- pełny dostęp do zawartości „/var/www/sites/”;
- wyłącz wszystko co powyżej „/var/www/”;
- połączenie z kontem wirtualnym;
Utwórz konto lokalne „wirtualne” bez uprawnień logowania, ale z dostępem do folderu domowego „/var/www/” . To konto będzie używane przez użytkowników FTP do łączenia się z serwerem.
useradd -d /var/www virtual
Domyślnie właścicielem folderu „/var/www” będzie „root” . Aby umożliwić użytkownikom FTP modyfikację zawartości stron internetowych, zmieńmy właściciela folderu „/var/www/sites/”, w tym podfolderów folderu „virtual”.
chown -R virtual:root /var/www/sites
Dzięki temu użytkownik „wirtualny” będzie mógł zobaczyć zawartość „/var/www/” i zapisać ją w podfolderze „/var/www/sites/”.
3. konfiguracja
Główna konfiguracja znajduje się w pliku „/etc/vsftpd.conf” , więc otwórzmy go i edytujmy w następujący sposób:
#enable virtual users
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
#configure permission
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
anon_umask=0022
chroot_local_user=YES
#launch settings
listen=YES
pasv_min_port=30000
pasv_max_port=30999
4. Utwórz bazę danych
Aby przechowywać dane kont wirtualnych, potrzebna będzie baza danych.
Najpierw utwórzmy prosty plik tekstowy „users.txt” w folderze domowym i w każdym wierszu zapiszmy dane dostępu (login i hasło) użytkowników wirtualnych. Na przykład, będziemy potrzebować użytkownika wirtualnego z loginem „ftp” i hasłem „Qwe123” . Wtedy plik będzie wyglądał tak:
ftp
Qwe123
Utwórzmy bazę danych
db_load -T -t hash -f ~/users.txt /etc/vsftpd_login.db
Zmodyfikujmy domyślny plik PAM „/etc/pam.d/vsftp” w następujący sposób:
auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
Należy pamiętać, że ścieżka do biblioteki „pam_userdb.so” może być inna, ale w razie potrzeby można ją zmienić.
Aby zastosować zmiany, należy ponownie uruchomić serwer vsftpd.
systemctl restart vsftpd
Zakończyliśmy konfigurację serwera FTP.
Szczegóły połączenia:
- ftp://[adres_ip_serwera]
- logowanie: ftp
- hasło: Qwe123
Konfiguracja serwera PHP
1. Instalacja PHP
Obecnie najnowszą stabilną wersją PHP jest php 7.4.5, która nie jest zawarta w oficjalnych repozytoriach Ubuntu. Podłączmy repozytorium innej firmy i zainstalujmy najnowszą wersję PHP.
apt update
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update
apt install php7.4
2. Czek
Aby PHP mogło zostać wykonane, plik strony internetowej powinien mieć rozszerzenie „.php” . Zmieńmy nazwę naszej strony testowej:
cd /var/www/sites/site1/
mv index.html index.php
Dodaj następującą linię php do pliku „/var/www/sites/site1/index.php” , aby plik wyglądał następująco:
<H1>Welcome</H1>
<?php
phpinfo();
?>
Zapisz zmiany i sprawdź wynik w przeglądarce.
Jeśli widzisz wynik funkcji „phpinfo()” , interpreter PHP działa poprawnie. Przejdźmy teraz do następnego kroku.
Konfiguracja MySQL (MariaDB)
1. Instalacja
Zainstalujmy MariaDB i moduł PHP dla MySQL, a następnie przeładujmy Apache'a.
apt install mariadb-server php-mysql
systemctl restart apache2
Odśwież stronę testową i przejdź do sekcji PDO w tabeli konfiguracji PHP. Jeśli znajdziesz sekcję „PDO_mysql” , oznacza to, że sterownik MySQL jest zainstalowany poprawnie.
Następnie będziemy musieli wykonać początkową konfigurację zabezpieczeń MariaDB i ustawić hasło dla użytkownika „root” , wyłączyć zdalny dostęp i usunąć wszystkie konta gości.
mysql_secure_installation
W pierwszym kroku musimy wprowadzić hasło użytkownika „root” , aby uzyskać dostęp do systemu DBMS, lub nacisnąć Enter, jeśli hasło nie jest ustawione. Ponieważ po instalacji nie ma ustawionego hasła dla użytkownika „root” , wystarczy nacisnąć „Enter”.
Należy pamiętać, że w MariaDB istnieją już własne konta, które nie mają nic wspólnego z kontami systemu operacyjnego. Dlatego jedynym użytkownikiem, z którym mamy do czynienia w MariaDB, jest „root”.
Następnie konfigurator poprosi nas o ustawienie hasła dla użytkownika root. Wciśnij „Y” , aby potwierdzić i wprowadzić nowe hasło. W naszym przypadku to „Qwe123”.
Odpowiedz „Y” na wszystkie pozostałe pytania, aż do samego końca.
Konfiguracja zakończona!
Szczegóły dostępu do MariaDB:
- Logowanie: root
- Hasło: Qwe123
Konfiguracja phpMyAdmin
1. Instalacja
Zainstalujmy niezbędne rozszerzenie dla PHP - mbstring.
apt install php-mbstring
W oficjalnym repozytorium znajduje się tylko przestarzała wersja phpMyAdmin, zainstalujmy więc nową wersję ręcznie.
Otwórz oficjalną stronę projektu „ https://www.phpmyadmin.net/ ” i pobierz najnowsze archiwum.
Skopiuj archiwum na serwer do folderu „/var/www/sites/” korzystając z dowolnego klienta ftp.
Rozpakuj folder i zmień jego nazwę na „phpMyAdmin” . Nie zapomnij zainstalować narzędzia „unzip” . Po rozpakowaniu możesz usunąć archiwum.
apt install unzip
cd /var/www/sites/
unzip phpMyAdmin-5.0.2-all-languages.zip
mv phpMyAdmin-5.0.2-all-languages phpMyAdmin
rm phpMyAdmin-5.0.2-all-languages.zip
Utwórz następujący folder „/var/www/sites/phpMyAdmin/tmp” dla plików tymczasowych i zezwól wszystkim na dostęp. Jeśli tego nie zrobisz, phpMyAdmin zgłosi odmowę dostępu do folderu tymczasowego.
cd /var/www/sites/phpMyAdmin/
mkdir tmp
chmod 777 tmp
2. Utwórz alias
Ponieważ phpMyAdmin nie jest oddzielnym wirtualnym hostem i znajduje się poza katalogiem głównym, skonfigurujmy alias.
Otwórz plik „/etc/apache2/mods-available/alias.conf” i dodaj ten wiersz:
Alias /pma “/var/www/sites/phpMyAdmin"
w tej sekcji:
<IfModule alias_module>
</IfModule>
Uruchom ponownie Apache, aby zastosować zmiany.
systemctl reload apache2
Alias jest ustawiony, więc możemy uzyskać dostęp do phpMyAdmin tutaj : „http://[adres_ip_serwera]/pma”.
3. Przygotuj bazę danych
Ponieważ podczas początkowej konfiguracji MariaDB ograniczyliśmy możliwość korzystania z konta root, będziemy musieli utworzyć nowe konto ze wszystkimi uprawnieniami, które będą używane do dostępu do phpMyAdmin.
Poza tym, aby włączyć dodatkowe funkcje phpMyAdmin będziemy potrzebować bazy danych usług i konta umożliwiającego dostęp do niej.
Utwórzmy konta
mariadb -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'pma'@'localhost' IDENTIFIED BY 'Qwe123' WITH GRANT OPTION;
GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO 'pmaservice'@'localhost' IDENTIFIED BY 'Qwe123' WITH grant option;
quit
Należy pamiętać, że nazwa bazy danych w drugim żądaniu znajduje się w iskrach „… ON `phpmyadmin` .* TO 'pma'@'localhost' IDENTIFIED BY …”,
W rezultacie w MariaDB zostaną utworzone dwa konta:
- Login: pma, Hasło: Qwe123Pełny dostęp, będzie używany do logowania do phpMyAdmin
- Login: pmaservice, Hasło: Qwe123Konto usługi jest wymagane do działania dodatkowych funkcji
W następnym kroku ustawimy te dane w pliku konfiguracyjnym „config.inc.php”.
Następnie musimy zaimportować bazę danych z pliku „phpMyAdmin/sql/create_tables.sql”.
Zaimportujmy go za pomocą phpMyAdmin.
Otwórz link „http://[adres_ip_serwera]/pma”
Wpisz login „pma” i hasło „Qwe123”
Przejdź do sekcji „Importuj” , kliknij „Wybierz plik” i wybierz plik „sql/create_tables.sql” w katalogu głównym phpMyAdmin. Na Twoim komputerze powinien znajdować się folder „phpMyAdmin” z plikami. W razie potrzeby rozpakuj go.
Kliknij „Dalej” , aby rozpocząć importowanie.
4. konfiguracja
Skopiujmy plik konfiguracyjny z szablonu
cd /var/www/sites/phpMyAdmin/
cp config.sample.inc.php config.inc.php
Otwórzmy plik konfiguracyjny „/var/www/sites/phpMyAdmin/config.inc.php” i wprowadźmy następujące zmiany:
Ustaw losową 32-znakową wartość dla atrybutu „$cfg['blowfish_secret']” . Użyj do tego dowolnego generatora haseł.
Usuń komentarze ze wszystkich wierszy sekcji „phpMyAdmin configuration storage settings” i odpowiednio ustaw login i hasło konta serwisowego MariaDB dla atrybutów „controluser” i „controlpass” . W naszym przypadku są to pmaservice i Qwe123.
Zapisz zmiany.
Szczegóły dostępu do phpMyadmin:
- http://[server’s_ip_address]/pma/
- Zaloguj się: pma
- Hasło: Qwe123
Jak zainstalować i skonfigurować WordPress na serwerze Linux
1. Umieszczenie pakietu WordPress i plików
Wejdź na oficjalną stronę WP „ https://ru.wordpress.org/ ” i pobierz archiwum na swój komputer.
Prześlij archiwum na serwer do folderu „/var/www/sites/” i rozpakuj je do folderu „wordpress ”.
Skopiuj zawartość folderu głównego „/var/www/sites/wordpress/” witryny „/var/www/sites/site1/”.
Ponieważ skopiowaliśmy pliki za pomocą konsoli z uprawnieniami roota, zmieńmy właściciela folderu „/var/www/sites/”, w tym zawartość folderu „virtual” . Jest to wymagane do umożliwienia pełnego dostępu do połączenia FTP przez klienta.
cd /var/www/sites/
tar -xzvf wordpress-5.4-ru_RU.tar.gz
cp -R wordpress/* site1/
chown -R virtual:root /var/www/sites
2. Utwórz bazę danych dla WordPressa
Zaloguj się do phpMyAdmin i kliknij „Utwórz bazę danych”. Podaj dowolną nazwę bazy danych, w naszym przypadku „wordpress_db” i kliknij przycisk „Utwórz”.
Wybierz nową bazę danych w lewej sekcji i kliknij „Uprawnienia”
Następnie kliknij „Dodaj konto użytkownika”.
W otwartym oknie wpisz login i hasło ( wpservice / Qwe123 ), zaznacz opcję „Przyznaj wszystkie uprawnienia w wordpress_db” i kliknij „Dalej”
Na następnej stronie kliknij „Anuluj wszystko” , aby zresetować wszystkie uprawnienia na poziomie bazy danych i kliknij „Dalej”.
3. Konfiguracja WordPressa na serwerze Linux
Przejdź do katalogu głównego swojej witryny i skopiuj plik konfiguracyjny z szablonu
cd /var/www/sites/site1/
cp wp-config-sample.php wp-config.php
Otwórz plik „wp-config.php” i wprowadź parametry połączenia z bazą danych, które utworzyliśmy w poprzednim kroku, a następnie zapisz zmiany.
4. Zainstaluj CMS WordPress
Otwórz poniższy link w przeglądarce : „http://[adres_ip_serwera]/wp-admin/install.php”.
Wypełnij wszystkie pola i kliknij „Zainstaluj WordPressa” . Ustaw losową nazwę użytkownika i hasło. W naszym przypadku będą to odpowiednio wpadmin i Qwe123.
Dane te zostaną wykorzystane w celu uzyskania dostępu do WordPressa.
Po zakończeniu instalacji otwórz link „http://[adres_ip_serwera]/wp-login.php” , wprowadź dane dostępowe i zaloguj się do WordPressa.
Na stronie głównej powinieneś zobaczyć jeden z szablonów WordPress.
Konfiguracja zakończona.
Szczegóły dostępu do WordPressa:
- http://[server’s_ip_address]/wp-login.php
- Logowanie: wpadmin
- Hasło: Qwe123