Okna.  Wirusy.  Laptopy.  Internet.  Biuro.  Narzędzia.  Kierowcy

Dzisiaj zajmiemy się jedną z najbardziej poszukiwanych ról serwery linuksowe, które zajmują wiodącą rolę w tym segmencie funkcjonalnym. Konfigurowanie serwera WWW CentOS 7 w oparciu o kilka popularnych serwer http A Apache, tłumacz php i serwery baz danych mysql lub w skrócie - montaż lampy. Ta kombinacja jest obecnie najpopularniejszą konfiguracją wśród hostingów. Co prawda ostatnio ta sama firma depcze po piętach, ale bazując na nginxie, być może już wyprzedziła, nie mam dokładnych danych w tej kwestii.

Ten artykuł jest częścią jednej serii artykułów o serwerze.

Serwer WWW na CentOS 7

A więc nasza sieć serwer centos będzie składać się z trzech głównych komponentów - serwera http Apache, interpreter języka programowania php i serwery baz danych mysql. Poznajmy trochę każdego z nich:

  1. Apacz- serwer http lub po prostu serwer WWW Apache. Jest to oprogramowanie wieloplatformowe, które obsługuje prawie wszystkie popularne system operacyjny, w tym Windows. Ceniony jest przede wszystkim za niezawodność i elastyczność konfiguracji, którą można znacznie rozszerzyć dzięki modułom wtykowym, których jest bardzo dużo. Wśród wad zauważają większe zapotrzebowanie na zasoby w porównaniu z innymi serwerami. Apache nie będzie w stanie obsłużyć takiego samego obciążenia jak np. nginx o podobnych parametrach sprzętowych.
  2. PHP- język programowania ogólny cel, który jest najczęściej używany w tworzeniu stron internetowych. Dziś jest to najpopularniejszy język w tym obszarze zastosowań. Obsługiwane przez prawie wszystkich dostawców usług hostingowych.
  3. mysql- system zarządzania bazą danych. Zyskał popularność wśród małych i średnich aplikacji, których jest wiele w sieci. Tak więc, podobnie jak php, jest dziś najpopularniejszą bazą danych wykorzystywaną na stronach internetowych. Obsługiwane przez większość dostawców usług hostingowych. W CentOS jest instalowany zamiast mysql mariadb- widelec mysql. Są w pełni kompatybilne; możesz w dowolnym momencie przełączać się z jednej bazy danych do drugiej i z powrotem. Ostatnio natknąłem się na informację, że mariadb działa szybciej niż mysql i ludzie powoli do niego przechodzą. W praktyce nie miałem okazji tego zaobserwować, gdyż nigdy nie pracowałem z obciążonymi bazami danych. Ale w normalnych warunkach różnica nie jest zauważalna.

Serwer eksperymentalny będzie miał następujące cechy:

procesor2 rdzenie
Pamięć8 GB
DyskDysk SSD 150 GB

To jest ustawienie ustawień niestandardowych. Nie są optymalne cenowo, ale właśnie tego potrzebowałem.

Od razu chcę wyjaśnić, że analizuję podstawowe ustawienie domyślne. Aby poprawić wydajność, zwiększyć niezawodność i łatwość obsługi, musisz zainstalować jeszcze kilka narzędzi, które omówię osobno. Ogólnie rzecz biorąc, to, co jest w tym artykule, wystarczy do zorganizowania serwera WWW.

Jeśli nie masz jeszcze serwera, musisz uruchomić . A jeśli serwer jest już zainstalowany, nie zapomnij o tym. Polecam zwrócić uwagę na ustawienia, ponieważ jest ich wiele przydatna informacja, których nie podaję w ramach tego artykułu - aktualizacja systemu, konfiguracja zapory ogniowej, instalacja edytora i wiele więcej.

Konfigurowanie Apache na CentOS 7

W CentOS wywoływana jest usługa Apache httpd. Kiedy po raz pierwszy zetknąłem się z tą dystrybucją, było to dla mnie niezwykłe. We Freebsd i Debianie, z którymi wcześniej pracowałem, usługa serwera WWW nazywała się Apache, chociaż zauważyłem gdzieś, zdaje się, w oprogramowaniu, że plik konfiguracyjny nazywa się httpd.conf. Do dziś nie wiem, dlaczego obie te nazwy się rozpowszechniły. Będzie mi miło, jeśli ktoś podzieli się ze mną informacjami na ten temat w komentarzach.

Teraz zacznijmy instalacja Apache'a. W CentOS 7 robi się to bardzo prosto:

# mniam, zainstaluj -y httpd

Dodaj Apache do uruchamiania:

# systemctl włącz httpd

Uruchom Apache na CentOS 7:

# systemctl start httpd

Sprawdź, czy serwer został uruchomiony:

# netstat -tulnp | grep httpd tcp6 0 0:::80:::* SŁUCHAJ 21586/httpd

Wszystko jest w porządku, zgodnie z oczekiwaniami zawiesiło się na porcie 80. Teraz możesz przejść do adresu http://ip i zobaczyć zdjęcie:

Teraz skonfigurujmy Apache. Preferuję następującą strukturę hostingu:

Stwórzmy taką strukturę:

# mkdir /web && mkdir /web/site1.ru && mkdir /web/site1.ru/www && mkdir /web/site1.ru/logs # chown -R Apache. /sieć

DołączOptionalconf.d/*.conf

Jeśli nie, odkomentuj go i przejdź do katalogu /etc/httpd/conf.d. Stwórzmy tam plik site1.ru.conf:

Nazwa serwera site1.ru ServerAlias ​​www.site1.ru DocumentRoot /web/site1.ru/www Opcje FollowSymLinksAllowOverride All Wymagaj przyznania wszystkich Dziennik błędów /web/site1.ru/logs/error.log Dziennik niestandardowy /web/site1.ru/logs/access.log wspólne

Ponowne uruchamianie Apache na centos

Teraz ponownie uruchamiamy Apache:

# systemctl uruchom ponownie httpd

Jeśli wystąpią jakiekolwiek błędy, spójrz na dziennik Apache /var/log/httpd/error_log. Jeśli wszystko jest w porządku, sprawdzimy, czy nasz wirtualny host jest skonfigurowany normalnie. Aby to zrobić, utwórz w folderze /web/site1.ru/www plik indeks.html następującą treść:

# mcedit /web/site1.ru/www/index.html

Apache ustawiony!

# Chown Apache. /web/site1.ru/www/index.html

192.168.1.25 witryna1.ru

gdzie 192.168.1.25 to adres IP naszego serwera WWW.

Teraz w przeglądarce wpisujemy adres http://site1.ru. Jeśli zobaczymy zdjęcie:

oznacza to, że wszystko jest poprawnie skonfigurowane. Jeśli są jakieś błędy, to idź i spójrz na logi. Co więcej, w w tym przypadku nie ogólny dziennik httpd, ale konkretny dziennik błędów wirtualny gospodarz w /web/site1.ru/logs/error.log.

Od razu zwrócę Twoją uwagę na ustawienie rotacji logów hosta wirtualnego. Często zdarza się, że jeśli nie skonfigurujesz tego od razu, to zapomnisz. Ale jeśli witryna ma duży ruch, dzienniki będą szybko rosły i mogą zajmować dużo miejsca. Lepiej jest ustawić rotację logów serwera WWW zaraz po ich utworzeniu. Nie jest to trudne.

Aby skonfigurować rotację logów hosta wirtualnego, należy edytować plik /etc/logrotate.d/httpd. Powstaje w trakcie instalacje Apache'a i obejmuje ustawienie rotacji standardowy układ dzienniki A ponieważ przenieśliśmy logi każdego wirtualnego hosta do osobnego folderu, musimy dodać te foldery do tego pliku:

# mcedit /etc/logrotate.d/httpd /web/*/logs/*.log/var/log/httpd/*log ( brakujące powiadomienie o pustych skryptach udostępnionych opóźnieniecompress postrotate /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true endscript )

W zasadzie najprostszy serwer WWW jest już gotowy i można z niego korzystać. Ale jest mało prawdopodobne, aby teraz istniały witryny ze statyczną treścią, dla których wystarczy obsługa HTML. Kontynuujmy więc naszą konfigurację.

Jeśli chcesz zorganizować działanie witryny zgodnie z protokołem https, a następnie skorzystaj z instrukcji dla .

Instalowanie php na CentOS 7

Aby wesprzeć dynamiczną zawartość witryny, zróbmy kolejny krok. Zainstalujmy php w CentOS 7:

# mniam, zainstaluj -y php

A potem jeszcze kilka przydatnych komponentów. Zainstalujmy popularne moduły do ​​php:

# mniam install -y php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd

Uruchommy ponownie Apache:

# systemctl uruchom ponownie httpd

Utwórzmy plik w katalogu hosta wirtualnego i sprawdźmy zadanie w php:

# mcedit /web/site1.ru/www/index.php# Chown Apache. /web/site1.ru/www/index.php

Przejdź do http://site1.ru/index.php

Powinieneś zobaczyć dane wyjściowe php. Jeśli coś jest nie tak, wystąpiły jakieś błędy, zobacz dziennik błędów hosta wirtualnego, błędy php oni też tam będą.

Gdzie jest php.ini?

Po instalacji często pojawia się pytanie: gdzie są przechowywane? ustawienia php? Tradycyjnie znajdują się one w pojedynczy plik ustawienia. Na CentOS-ie php.ini znajduje się w /etc, bezpośrednio u korzenia. Tam możesz edytować ustawienia globalne dla wszystkich wirtualnych hostów. Ustawienia osobiste dla każdej witryny można wprowadzić osobno w pliku konfiguracyjnym hosta wirtualnego, który stworzyliśmy wcześniej. Dodajmy tam kilka przydatne ustawienia:

# mcedit /etc/httpd/conf.d/site1.ru.conf

Dodaj na samym końcu, przed

Php_admin_value date.timezone "Europa/Moskwa" php_admin_value max_execution_time 60 php_admin_value upload_max_filesize 30M

Aby zastosować ustawienia, musisz ponownie uruchomić Apache. Możesz teraz zobaczyć zmianę ustawień w wynikach phpinfo.

Aktualizacja do php 5.6 w CentOS 7

W naszym przykładzie zainstalowaliśmy na CentOS 7 PHP 5.4 ze standardowego repozytorium. A co jeśli potrzebujemy np. nowszej wersji PHP 5.6? W takim przypadku musisz zaktualizować plik php.

# wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm # obr/min -Uvh remi-release-7*.rpm

Teraz zaktualizuj php 5.4 do php 5.6:

# mniam --enablerepo=remi,remi-php56 zainstaluj PHP php-common php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd

Uruchom ponownie Apache:

# systemctl uruchom ponownie httpd

Przyjrzyjmy się wynikom phpinfo - http://site1.ru/index.php

Świetnie, zaktualizowaliśmy php do wersji 5.6.

Instalowanie MySQL na CentOS 7

Jak pisałem wcześniej, fork mysql staje się obecnie coraz bardziej powszechny - mariadb. Jest w pełni kompatybilny z mysql, więc możesz go używać bez obaw. Wolę go używać.

Instalowanie mariadb w CentOS 7:

# mniam, zainstaluj -y mariadb mariadb-server

Dodaj mariadb do autostartu:

# systemctl włącz mariadb.service

Uruchom mariadb:

# systemctl uruchom mariadb

Sprawdzamy, czy się rozpoczęło, czy nie:

# netstat -tulnp | grep mysqld tcp 0 0 0.0.0.0:3306 0.0.0.0:* SŁUCHAJ 22276/mysqld

Należy pamiętać, że jest ona nawet wyświetlana w systemie jako usługa mysqld. Teraz uruchamiamy standardowy skrypt konfiguracji zabezpieczeń:

# /usr/bin/mysql_secure_installation

Nie będę podawać całego wyniku tego skryptu, wszystko jest dość proste i jasne. Najpierw ustalamy hasło dla roota (obecne hasło po instalacji jest puste), następnie usuwamy anonimowych użytkowników, wyłączamy możliwość zdalnego połączenia się z rootem oraz usuwamy użytkownika testowego i bazę danych.

Plik ustawienia mysql/mariadb jest dostępny /etc/my.cnf. Do normalnej pracy wystarczą ustawienia domyślne. Jeśli jednak zdecydujesz się je zmienić, nie zapomnij zrestartować usługi bazy danych.

Uruchom ponownie mariadb/mysql w CentOS 7:

# systemctl uruchom ponownie mariadb

To wszystko. Skonfigurowano podstawową funkcjonalność serwera WWW w CentOS 7.

Będzie mi miło otrzymać uwagi dotyczące tematu artykułu. Przypomnę, że ten artykuł jest częścią jednego cyklu artykułów o serwerze.

Warsztaty Kali Linux

Kurs przeznaczony jest dla osób, które interesują się przeprowadzaniem testów penetracyjnych i chcą praktycznie sprawdzić się w sytuacjach zbliżonych do rzeczywistych. Kurs przeznaczony jest dla osób, które nie mają jeszcze doświadczenia w bezpieczeństwo informacji. Szkolenie trwa 3 miesiące, 4 godziny tygodniowo. Co da Ci ten kurs:
  • Wyszukaj i wykorzystaj luki w zabezpieczeniach lub błędy konfiguracyjne w sieci korporacyjne, strony internetowe, serwery. Nacisk na pentesting systemu operacyjnego Windows i bezpieczeństwo segmentu korporacyjnego.
  • Narzędzia edukacyjne, takie jak metasploit, sqlmap, wireshark, pakiet burp i wiele innych.
  • Opanowanie narzędzi Kali Linux w praktyce każdy specjalista ds. bezpieczeństwa informacji powinien się z tym zapoznać.
Sprawdź się podczas testu wstępnego i zapoznaj się z programem, aby uzyskać więcej informacji. | |

1: Zainstaluj MariaDB

Debian 9 zawiera pakiet MariaDB 10.1 w standardowym repozytorium. To jest domyślna opcja MySQL.

Aby go zainstalować, zaktualizuj indeks pakietu:

Teraz zainstaluj pakiet:

sudo apt zainstaluj serwer mariadb

Polecenie zainstaluje MariaDB, ale nie wyświetli monitu o wybranie hasła ani zmianę innych ustawień. NA ten moment Instalacja MariaDB ma kilka luk w zabezpieczeniach, którymi należy się zająć.

2: Konfigurowanie MariaDB

Po zakończeniu instalacji należy uruchomić skrypt bezpieczeństwa, który usunie niezaufane parametry i zabezpieczy bazę danych przed nieautoryzowanym dostępem.

sudo mysql_secure_installation

Scenariusz zada serię pytań. Najpierw musisz podać hasło roota MariaDB. To jest konto administracyjne MariaDB z podwyższonymi uprawnieniami. Właśnie zainstalowałeś MariaDB i nie dokonałeś jeszcze żadnych zmian w konfiguracji, nie masz jeszcze tego hasła, więc po prostu naciśnij Enter.

W następnym żądaniu skrypt poprosi Cię o skonfigurowanie hasła roota do bazy danych. Wpisz N i naciśnij Enter. W Debianie konto root MariaDB jest ściśle powiązane z automatyczną konserwacją systemu, więc się zmienia standardowe metody Nie można uwierzytelnić tego konta. W przeciwnym razie podczas aktualizacji pakietu może dojść do uszkodzenia bazy danych i utraty dostępu do konta root. Później przyjrzymy się, jak skonfigurować dodatkowe konto administratora, jeśli uwierzytelnianie przez gniazdo nie jest dla Ciebie odpowiednie.

W przypadku innych pytań możesz nacisnąć Y i Enter. Spowoduje to usunięcie anonimowych użytkowników i przetestowanie baz danych, wyłączenie zdalnego logowania root i zaktualizowanie bieżących ustawień MariaDB.

3: Konfigurowanie obsługi uwierzytelniania hasłem

W nowym Instalacje Debiana Użytkownik root MariaDB domyślnie obsługuje uwierzytelnianie przy użyciu wtyczki unix_socket zamiast hasła. W wielu przypadkach poprawia to bezpieczeństwo i użyteczność, ale może również utrudnić sytuację, jeśli musisz zezwolić na dostęp programu zewnętrznego(na przykład phpMyAdmin).

Ponieważ serwer używa użytkownika root do zadań takich jak rotacja logów, uruchamianie i zatrzymywanie serwera, uwierzytelnianie konta root jest lepszy nie zmieniaj się. Zmiana poświadczeń w pliku /etc/mysql/debian.cnf może pomóc etap początkowy, ale przyszłe aktualizacje pakietów zastąpią te zmiany. Zamiast tego programiści zalecają utworzenie osobnego konta administratora z uwierzytelnianiem hasłem.

Utwórz więc konto o nazwie admin z takimi samymi uprawnieniami jak root, ale z obsługą uwierzytelniania hasłem. Aby to zrobić, otwórz wiersz poleceń MariaDB w terminalu:

Teraz utwórz nowego użytkownika z uprawnieniami roota i obsługą uwierzytelniania hasłem. W poleceniu podaj swoją nazwę użytkownika i hasło.

GRANT ALL ON *.* DO "admin"@"localhost" IDENTYFIKOWANY PRZEZ "hasło" Z OPcją GRANT;

Zresetuj uprawnienia:

PRZYWILEJE FLUSH;

Zamknij powłokę MariaDB:

4: Testowanie MariaDB

Po zainstalowaniu ze standardowego repozytorium MariaDB uruchamia się automatycznie. Aby to sprawdzić, sprawdź status usługi:

sudo systemctl status mariadb
mariadb.service - serwer bazy danych MariaDB
Załadowano: załadowano (/lib/systemd/system/mariadb.service; włączone; ustawienie wstępne dostawcy: włączone)
Aktywny: aktywny (działa) od wto 2018-09-04 16:22:47 UTC; 2 godziny 35 minut temu
Proces: 15596 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSIT
Proces: 15594 ExecStartPost=/etc/mysql/debian-start (kod=zakończono, status=0/SUCCESS)
Proces: 15478 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||
Proces: 15474 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITI
Proces: 15471 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysql
Główny PID: 15567 (mysqld)
Status: „Przyjmuję teraz Twoje żądania SQL…”
Zadania: 27 (limit: 4915)
Grupa C: /system.slice/mariadb.service
└─15567 /usr/sbin/mysqld
04 września 16:22:45 deb-mysql1 systemd: Uruchamianie serwera bazy danych MariaDB...
04 września 16:22:46 deb-mysql1 mysqld: 2018-09-04 16:22:46 140183374869056 /usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) rozpoczynając jako proces 15567 ...
04 września 16:22:47 deb-mysql1 systemd: Uruchomiono serwer bazy danych MariaDB.

Jeśli z jakiegoś powodu DBMS nie uruchomi się, wpisz:

sudo systemctl uruchom mariadb

Dla dodatkowa kontrola możesz spróbować połączyć się z bazą danych za pomocą narzędzia mysqladmin (jest to klient, który pozwala na uruchamianie poleceń administracyjnych). Na przykład to polecenie połączy się z MariaDB jako root i wyświetli wersję za pomocą gniazda Unix:

wersja sudo mysqladmin
mysqladmin wersja 9.1 Distrib 10.1.26-MariaDB, dla debian-linux-gnu na x86_64
Prawa autorskie (c) 2000, 2017, Oracle, MariaDB Corporation Ab i inne.
Wersja serwera 10.1.26-MariaDB-0+deb9u1
Wersja protokołu 10
Połączenie Localhost poprzez gniazdo UNIX
Gniazdo UNIX /var/run/mysqld/mysqld.sock
Czas pracy: 2 godziny 44 minuty 46 sekund
Wątki: 1 Pytania: 36 Powolne zapytania: 0 Otwarcia: 21 Opróżnij tabele: 1 Otwarte tabele: 15 Zapytań na sekundę średnio: 0,003

Jeśli utworzyłeś dodatkowego administratora, możesz wykonać tę operację za pomocą polecenia:

mysqladmin -u admin -p wersja

MariaDB działa i działa poprawnie.

2 stycznia 2017 12:16 13 224 wyświetleń | bez komentarza

Wymagania

  • Serwer CentOS 7.
  • Użytkownik z dostępem sudo.

Wszystko niezbędne instrukcje może być znaleziony w .

1: Zainstaluj MariaDB

Aby zainstalować MariaDB, skorzystaj z repozytorium Yum. Uruchom następujące polecenie i naciśnij y, aby kontynuować.

sudo mniam, zainstaluj serwer mariadb

Po zakończeniu instalacji uruchom demona:

sudo systemctl uruchom mariadb

Polecenie systemctl nie wyświetla wyników niektórych poleceń. Aby sprawdzić, czy demon działa, wpisz:

sudo systemctl status mariadb

Jeśli demon MariaDB był uruchomiony, wyjściem polecenia będzie:

Aktywny: aktywny (bieganie)
[…]
01 grudnia 19:06:20 centos-512mb-sfo2-01 systemd: Uruchomiono serwer bazy danych MariaDB.

Teraz musisz skonfigurować autostart MariaDB. Aby to zrobić, wpisz:

sudo systemctl włącz mariadb
Utworzono dowiązanie symboliczne z /etc/systemd/system/multi-user.target.wants/mariadb.service do /usr/lib/systemd/system/mariadb.service.

Następnie musisz zapewnić bezpieczeństwo danych.

2: Bezpieczeństwo MariaDB

Po zakończeniu instalacji należy uruchomić wbudowany skrypt bezpieczeństwa MariaDB, który zmienia niektóre domyślne opcje i blokuje zdalne logowanie roota. Aby uruchomić skrypt wpisz:

sudo mysql_secure_installation

Skrypt zapewnia szczegółowy opis każdy krok. Najpierw poprosi o hasło roota. Od w nowa instalacja Nie ma jeszcze takiego hasła, wystarczy nacisnąć Enter. Następnie skrypt poprosi Cię o utworzenie takiego hasła. Wprowadź złożone hasło i potwierdź je.

Następnie skrypt zada Ci serię pytań. Aby zaakceptować dane domyślne, możesz po prostu nacisnąć Y i Enter. Skrypt zablokuje anonimowych użytkowników i zdalne logowanie roota, usunie tabele testowe i zresetuje uprawnienia.

3: Testowanie MariaDB

Teraz musisz się upewnić, że instalacja MariaDB przebiegła pomyślnie.

Spróbuj połączyć się z bazą danych za pomocą narzędzia mysqladmin (jest to klient do uruchamiania poleceń administracyjnych). Aby połączyć się z MariaDB jako root (-u root), wprowadź hasło (-p), a następnie zapytaj o wersję programu i wydaj polecenie:

mysqladmin -u root -p wersja

Polecenie wyświetli:

mysqladmin wersja 9.0 Distrib 5.5.50-MariaDB, dla systemu Linux na platformie x86_64
Prawa autorskie (c) 2000, 2016, Oracle, MariaDB Corporation Ab i inne.
Wersja serwera 5.5.50-MariaDB
Wersja protokołu 10
Połączenie Localhost poprzez gniazdo UNIX
Gniazdo UNIX /var/lib/mysql/mysql.sock
Czas pracy: 4 min 4 sek
Wątki: 1 Pytania: 42 Powolne zapytania: 0 Otwarcia: 1 Opróżnij tabele: 2 Otwarte tabele: 27 Zapytań na sekundę średnio: 0,172

Oznacza to, że instalacja systemu DBMS MariaDB przebiegła pomyślnie.

Wniosek

Teraz możesz to zrobić podstawowa instalacja i skonfigurowanie MariaDB.

Myślę, że wszyscy wiedzą, że MariaDB jest rozwidleniem MySQL. MariaDB jest rozwijana i wspierana przez MariaDB Corporation Ab i Fundację MariaDB. Głównym twórcą MariaDB jest dobrze znany Michael Widenius, autor oryginalnej wersji MySQL.

Obecna wersja to ta, która została wydana 13 lutego 2018 r. W nowej wersji MariaDB sklep InnoDB został zaktualizowany do wersji 5.7.21 i naprawiono ponad 100 błędów, w tym te, które mogły zostać wykorzystane do zainicjowania zdalnej odmowy usługi.

Spróbujmy zainstalować Nowa wersja do czystego systemu Debian 9.3 (Stretch).

Nie będę ukrywał, że bardzo lubię MariaDB i już dawno zrezygnowałem z Oracle MySQL na rzecz MariaDB lub Percona Server for MySQL i ani trochę tego nie żałuję. W wielu przypadkach MariaDB jest używana jako zamiennik Oracle MySQL Dystrybucje Linuksa. MariaDB jest również używana jako baza danych duże ilości duże witryny, tak naprawdę mój blog nie jest wyjątkiem - używam MariaDB 10.2 jako bazy danych.

Wstępne dane: System operacyjny Debian 9.3 (rozciągnięcie);
Zadanie: Zainstaluj MariaDB 10.2.13 przy minimalnej liczbie ruchów i wykonaj podstawowe ustawienia DB;

W Internecie można znaleźć wiele artykułów na temat instalacji MariaDB na Debianie, ale wszystkie oferują dość kłopotliwe rozwiązania.
Jest też, ale też nie zawiera proste rozwiązanie, ale istnieje!

Instalowanie MariaDB 10.2.13 na Debianie 9:

1. Instalacja niezbędnego wyposażenia dodatkowego. pakiety:

Apt-get update apt-get install dirmngr wget -y

2. A teraz prosta magia, o której nigdzie nie jest napisane - pobranie i uruchomienie skryptu instalującego repozytorium:

Wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup && chmod a+x mariadb_repo_setup ./mariadb_repo_setup --mariadb-server-version=10.2

Dla informacji:
Ten skrypt przeanalizuje Twój system, zainstaluje klucze GPG i doda repozytorium do pliku /etc/apt/sources.list.d/mariadb.list
Skrypt jest oficjalny i obsługuje dystrybucje: RHEL/CentOS 6 i 7, Ubuntu 16.04 LTS (xenial) i 18.04 (bionic), Debian 8 (jessie) i 9 (stretch) oraz SLES 12 i 15
Skrypt obsługuje także instalowanie repozytoriów dla różne wersje Narzędzia MariaDB, MaxScale i MariaDB można pobrać i zobaczyć wszystkie opcje uruchamiania:

./mariadb_repo_setup --help

P.S. Dla tych, którzy lubią robić wszystko ręcznie, gdzie można bardziej elastycznie wybrać żądane repozytorium w zależności od położenia geograficznego Twojego serwera.

3. Zaktualizuj listę pakietów:

Apt-pobierz aktualizację

4. Zainstaluj Ostatnia wersja MariaDB 10.2.x:

Apt-get install mariadb-server -y

Podczas procesu instalacji instalator poprosi nas o podanie hasła dla użytkownika root; na tym etapie pozostawimy je puste i zmienimy je później.

Po instalacji sprawdź status MariaDB:

# status systemctl mariadb ● mariadb.service - serwer bazy danych MariaDB 10.2.13 Załadowano: załadowano (/lib/systemd/system/mariadb.service; włączone; ustawienie wstępne dostawcy: włączone) Drop-In: /etc/systemd/system/mariadb. service.d └─migrated-from-my.cnf-settings.conf Aktywny: aktywny (działa) od czw. 2018-02-15 12:14:17 +05; 19 lat temu Dokumenty: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Główny PID: 7270 (mysqld) Status: „Teraz odbieram żądania SQL…” CGroup: /system. plasterek/mariadb.service └─7270 /usr/sbin/mysqld # netstat -ltupn | grep mysql tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 7270/mysqld # ps -ef | grep [m]ysql mysql 7270 1 0 12:14 ? 00:00:00 /usr/sbin/mysqld

Spróbujemy także połączyć się z bazą danych za pomocą komendy mysql (ponieważ na etapie instalacji pozostawiliśmy hasło roota puste, nie będziemy korzystać z opcji -u root -p):

# mysql Witamy w monitorze MariaDB. Polecenia kończą się ; lub\g. Twój identyfikator połączenia MariaDB to 10. Wersja serwera: 10.2.13-MariaDB-10.2.13+maria~stretch-log dystrybucja binarna mariadb.org Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab i inni. Wpisz „pomoc”; lub „\h”, aby uzyskać pomoc. Wpisz „\c”, aby wyczyścić bieżącą instrukcję wejściową. MariaDB [(brak)]>

Pomyślnie połączyliśmy się z serwerem MariaDB.

5. Teraz uruchommy Kreatora konfiguracji zabezpieczeń:

Instalacja_Mysql_secure

Do pytania:
Wpisz aktualne hasło dla roota (wpisz brak):
Naciśnij Enter, bieżące hasło roota jest puste.

I ostatnie pytanie:
Załadować teraz ponownie tabele uprawnień?
wpisz Y, tak, chcemy ponownie załadować tabelę uprawnień, aby zaczęły obowiązywać.

Następnie wykonaliśmy minimalne środki bezpieczeństwa w naszej instancji MariaDB.

Spróbujmy teraz połączyć się z bazą danych:

# mysql BŁĄD 1045 (28000): Odmowa dostępu dla użytkownika „root” @ „localhost” (przy użyciu hasła: NIE)

Jak widzimy, z pustym hasłem roota nie możemy już wejść.

Połączmy się z instrukcjami Dodatkowe opcje i podanie hasła:

# mysql -u root -p Podaj hasło: Witamy w monitorze MariaDB. Polecenia kończą się ; lub\g. Twój identyfikator połączenia MariaDB to 20. Wersja serwera: 10.2.13-MariaDB-10.2.13+maria~stretch-log dystrybucja binarna mariadb.org Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab i inni. Wpisz „pomoc”; lub „\h”, aby uzyskać pomoc. Wpisz „\c”, aby wyczyścić bieżącą instrukcję wejściową. MariaDB [(brak)]>

Świetnie, wszystko się udało.

To wszystko, do zobaczenia wkrótce. Jeśli masz jakieś pytania lub chcesz, żebym Ci pomógł, zawsze możesz.

Postanowiłem się poddać za pomocą MySQL-a lub raczej całkowicie przenieś wszystkie swoje serwery na jego rozwidlenie - MariaDB. Korzystając z okazji, chciałbym porozmawiać o procesie instalacji MariaDB 10.1 na Debianie 8. Należy zauważyć, że krótki opis Instalacje MariaDB są dostępne na oficjalnej stronie projektu. Postanowiłem poświęcić temu zagadnieniu osobny post, w którym chcę opisać niezbędne działania po zainstalowaniu MariaDB na serwerze.

Przed instalacją MariaDB należy dodać jej repozytorium. Witryna MariaDB zaleca zainstalowanie w tym celu pakietu Software-Properties-Common. Nie widzę w tym żadnego sensu i wolę zrobić wszystko ręcznie.

Zarejestruj klucz GPG repozytorium w systemie:

Apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db

Dodaj opis repozytorium do pliku source.list. Otwórz plik w edytorze nano:

Nano /etc/apt/sources.list

Skopiuj na koniec następujące linie:

Deb http://lon1.mirrors.digitalocean.com/mariadb/repo/10.1/debian jessie main deb-src http://lon1.mirrors.digitalocean.com/mariadb/repo/10.1/debian jessie main

Aktualizujemy listę dostępnych pakietów:

Apt-pobierz aktualizację

Rozpocznijmy proces instalacji MariaDB 10.1:

Apt-get zainstaluj serwer mariadb

Podczas instalacji zostaniemy poproszeni o podanie hasła dla użytkownika root. To kończy proces instalacji MariaDB na Debianie 8. Przejdźmy teraz do konfiguracji serwera.

Aby zwiększyć niezawodność naszego serwera, musimy zrobić minimalne wymagania bezpieczeństwo. Zabroń autoryzacji dla użytkownika root ze zdalnych hostów. Jeśli istnieje testowa baza danych i anonimowy użytkownik, należy ich usunąć z serwera. Aby ułatwić zadanie, użyj skryptu:

Instalacja_Mysql_secure

Domyślny typ przechowywania danych

Jeśli chcesz zmienić domyślny typ przechowywania danych, dodaj następujące wiersze do pliku my.cnf:

Domyślny silnik pamięci masowej = innodb

Upewnij się, że MariaDB domyślnie używa tabel InnoDB. Aby to zrobić, uruchom polecenie:

POKAŻ SILNIKI;

Utwórz użytkownika i bazę danych MariaDB

Aby utworzyć użytkownika w MariaDB, użyj poniższego polecenia:

UTWÓRZ UŻYTKOWNIKA „NAZWA_USER”@”localhost” IDENTYFIKOWANY PRZEZ „HASŁO”;

Utwórz nową bazę danych:

UTWÓRZ BAZĘ DANYCH nazwa_bazy danych;

Dajemy pełne prawa użytkownikowi USER_NAME w bazie danych DatabaseName:

PRZYZNAJ WSZYSTKIE PRZYWILEJE DO NAZWY_bazy_danych.* DO "NAZWA_USERA"@"localhost";

Teraz musisz zaktualizować wszystkie uprawnienia:

PŁASKIE PRZYWILEJE

Aby wyświetlić uprawnienia, uruchom polecenie:

POKAŻ DOTACJE DLA „USER_NAME”@”localhost”;

Dzienniki binarne

MariaDB zapisuje wszystkie zmiany w bazie danych do logu binarnego; jest to konieczne do działania mechanizmu replikacji. Jeżeli nie wykonałeś kopii zapasowych lub są one nieaktualne, do przywrócenia danych można wykorzystać logi binarne. Nie ma jednak gwarancji, że dane zostaną w pełni lub częściowo odzyskane. Sukces będzie zależał od rozmiaru, czasu przechowywania dzienników binarnych i częstotliwości tworzenia kopii zapasowych.

Aby wyłączyć dzienniki binarne, skomentuj linie w pliku my.cnf:

#log_bin = /var/log/mysql/mariadb-bin #log_bin_index = /var/log/mysql/mariadb-bin.index

Jeśli zauważysz błąd, zaznacz fragment tekstu i naciśnij Ctrl+Enter
UDZIAŁ: