CentOs instalacja i konfiguracja serwera L.A.M.P. (Linux Apache MySQL Server) z wieloma wirtualnymi hostami

Istnieje wiele paneli sterowania, które można skonfigurować ogólny serwer LAMP z dowolnym Linux lub prawie Linux dystrybucji. Inne płatne są również kompatybilne z innymi platformami, takimi jak okna.

Wiele poleceń w tym przewodniku można agregować w jednym, jednak wolę podzielić je, aby pomóc Ci zidentyfikować błędy. Ten przewodnik został przetestowany krok po kroku i zakłada się, że zainstalowano czysty CentOS 7 system z sieci skonfigurowane.

Jeśli masz zainstalowane polecenie sudo i jesteś zalogowany jako zwykły użytkownik, możesz po prostu wpisać słowo “sudo” przed poleceniami. Ale teraz zaczynam skonfigurować nasz “serwer testowy”.

Konfigurowanie zapory sieciowej

Najpierw należy się upewnić, że serwer akceptuje niektóre żądania w niektórych portach. Jeśli Zapora nie jest zainstalowany, nie instaluj go, chyba że wiesz, co robisz lub jeśli masz fizyczny komputer przed Tobą. Jeśli masz bardziej złożony router lub sieć, polecam przeczytać artykuł o teorii sieci lub artykuł o tym, jak skonfigurować serwery wirtualne na routerze do kierowania ruchu do niektórych portów. Tutaj Zakładam, że masz publiczny adres na serwerze dostępnym w Internecie. Tak, należy napisać te polecenia w wierszu (Shell).


firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --runtime-to-permanent
firewall-cmd --reload

Zainstalować apache2

Otworzyliśmy porty do akceptowania połączeń TCP w domyślnych portach Apache HTTP (80) i httpd (443). Teraz musimy zainstalować apache2 jako prosty serwer www pisząc tę komendę:

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch-rpm
yum -y install epel-release
yum -y install httpd

Uruchamianie i włączanie apache2


Po zainstalowaniu Apache, trzeba użyć i włączyć usługę (demon) z tego polecenia

systemctl start httpd
systemctl enable httpd

Jeśli umieścisz adres IP serwera w przeglądarce powinieneś zobaczyć stronę powitalną Apache i CentOS.

Konfigurowanie hostów wirtualnych

Aby skonfigurować wirtualne hosty na CentOS należy wyłączyć SELinux lub otrzymasz błąd. Aby tymczasowo go wyłączyć, unikając konieczności ponownego uruchamiania systemu, można napisać

setenforce 0
echo 0 > /sys/fs/selinux/enforce

Aby upewnić się, że ta zmiana utrzymuje się nawet po ponownym uruchomieniu komputera, należy edytować plik/etc/sysconfig/SELinux i upewnić się, że linia dotycząca SELinux jest wyłączona, jak pokazano w tym przykładzie:

SELINUX=disabled

Teraz musimy tylko utworzyć plik konfiguracyjny dla wirtualnego hosta, który umieścimy wewnątrz folderu


/etc/httpd/conf.d/

W tym artykule będziemy używać domeny example.com jako przykładu. Trzeba będzie zastąpić nazwę domeny example.com nazwą domeny.

Następnie utwórz plik konfiguracyjny i wprowadź następujące wiersze:

ServerName www.example.com
DocumentRoot /var/www/example.com
ServerAlias example.com
ErrorLog /var/log/httpd/www.example.com.error.log
CustomLog /var/log/httpd/www.example.com.requests.log combined

Options FollowSymLinks MultiViews
AllowOvverride All
Order allow,deny
allow from all

Oczywiście należy również utworzyć folder docelowy witryny i dziennika, jeśli nie istnieje:

mkdir -p /var/www/example.com
mkdir -p /var/log/httpd

W tym momencie trzeba ponownie uruchomić Apache

apachectl restart

Jeśli Twoja domena wskazuje na serwer poprawnie, powinieneś zobaczyć stronę powitalną.

Uwagi: przeczytałem w wielu artykułach na temat konfigurowania wirtualnych hostów z CentOS, które zalecają utworzenie określonego folderu zawierającego dostępne witryny, a drugi zawierający włączonych witryn. Ta metoda jest używana w wdrożeniach opartych na Debianie i pozwala na wyłączenie i włączenie witryny po prostu działając na dowiązania symboliczne. Ale ten artykuł jest o CentOS i tak będziemy podążać ścieżką RedHat oparte dystrybucji.

Instalowanie i Konfigurowanie narzędzia Certbot (letsencrypt) do obsługi protokołu HTTPS (opcjonalne, ale zalecane)

Jeśli witryna jest dynamiczna, może normalnie przenosić poufne informacje, a więc jest to dobry pomysł, aby go zaszyfrować. Zakup ważnego certyfikatu był kiedyś kosztowną operacją, ale teraz jest system do nabycia jednego całkowicie za darmo.

Upewnij się, że DNS wskazuje na serwer.

Pierwszą rzeczą, którą musisz zrobić, to zainstalować Apache moduły wsparcia SSL

yum -y install mod_ssl
yum -y install openssl

I zainstalować program certbot

yum -y install python-certbot-apache

Do pracy, przy uruchamianiu, protokół HTTPS musi mieć prawidłowy certyfikat. Możemy utworzyć ten certyfikat w następujący sposób

mkdir -p /etc/ssl/private
chmod 700 /etc/ssl/private
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out
/etc/ssl/certs/apache-selfsigned.crt

W tym czasie można pozostawić wszystkie odpowiedzi puste i trzeba będzie poczekać do końca generowania certyfikatu. Ponieważ certbot sprawdza, czy konfiguracja Apache jest spójna, musimy dodać instrukcje dla wirtualnego hosta również dla protokołu HTTPS na końcu pliku

/etc/httpd/conf.d/example.com.conf

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
ServerName www.example.com
DocumentRoot /var/www/example.com
ServerAlias example.com
ErrorLog /var/log/httpd/www.example.com.error.ssl.log
CustomLog /var/log/httpd/www.example.com.requests.ssl.log combined

Opcje FollowSymLinks MultiViews
AllowOverride wszystkie
Zamów Zezwalaj, Odmawiaj
pozwala na

Teraz możemy stworzyć certyfikat z certbot. Zachowaj we mnie, że jeśli korzystasz z usługi, takie jak CloudFlare, musisz tymczasowo wstrzymać.

apachectl stop
certbot certonly --standalone -d example.com -d
www.example.com
apachectl start

Twoja domena powinna być http://www.example.com teraz widoczna. Jeśli chcesz, aby użytkownicy byli automatycznie przekierowywani do https, musisz zmienić instrukcje wirtualnego hosta dla protokołu HTTP, dodając linię

Redirect "/" "https://www.example.com"

plik konfiguracyjny

/etc/httpd/conf.d/example.com.conf

jak pokazano w tym przykładzie

ServerName www.example.com
DocumentRoot /var/www/example.com
ServerAlias example.com
Redirect "/" "https://www.example.com"
ErrorLog /var/log/httpd/www.example.com.error.log
CustomLog /var/log/httpd/www.example.com.requests.log combined

Opcje FollowSymLinks MultiViews
AllowOvverride wszystko
Zamów Zezwalaj, Odmawiaj
pozwala na

Jeśli korzystasz z usług, takich jak CloudFlare lub innych metod przekierowania nie będzie wstawić tej linii lub wygeneruje nieskończoną pętlę adresowania, która ostatecznie zwróci błąd w przeglądarce.

Instalacja MariaDB (dla MySQL)

Aby zainstalować serwer MySQL MariaDB, należy napisać to polecenie

yum -y install mariadb-server mariadb

Więc musisz uruchomić i włączyć serwer

systemctl start mariadb
systemctl enable mariadb

Teraz MariaDB jest zainstalowany, ale należy przejść do podstawowych zabezpieczeń automatycznych, ponieważ jak to jest, usługa jest skonfigurowana z jak najmniejszej liczby ograniczeń, jak to możliwe, tak, że jest to bardziej wygodne dla deweloperów. Można to zrobić za pomocą polecenia

mysql_secure_installation

Będziesz potrzebować wobec wybierać wszystko ten polecany opcje i będziesz potrzebować wobec wchodzić pewien hasło pod kątem twój MySQL korzeń uważać.

Uwagi: CentOS zdecydował się użyć MariaDB jako domyślnego serwera MySQL. Jednak muszę powiedzieć, że jest to widelec klasycznego serwera MySQL i nie mogą być problemy niezgodności podczas importowania danych. Jeśli nie znasz różnicy między MariaDB i MySQL Community Edition polecam przeczytać artykuł na temat migracji danych z serwera MySQL Wspólnoty Release serwer MariaDB lub jak migrować dane z serwera MariaDB do MySQL Wspólnoty Release Server.

Instalowanie PHPs i modułów używanych przez wspólne CMSs

Aby korzystać z MySQL, Apache potrzebuje pośredniego programu, który w naszym przypadku jest php. Wobec rata php rezygnować MySQL poprzeć i jego najliczniejszy rozpowszechnie używany moduły z ludowy CMS, typ tych polecenia

yum -y install php
yum -y install php-opcache
yum -y install php-common
yum -y install php-fpm
yum -y install php-pear
yum -y install php-mysql
yum -y install php-cli
yum -y install php-gd
yum -y install php-odbc
yum -y install php-xml
yum -y install php-xmlrpc
yum -y install php-mbstring
yum -y install php-snmp
yum -y install php-soap
yum -y install php-mcrypt

Jeśli trzeba zainstalować inne moduły można wyszukiwać je za pomocą polecenia

yum search php-

Wyniki można również filtrować za pomocą polecenia grep. Jeśli na przykład Chcę wyświetlić moduły z PECL napisane wewnątrz nazwy muszę tylko napisać

yum search php- | grep pecl

Uwagi: CenOS to stabilna i konserwatywna dystrybucja Linuksa. Testowane są pakiety, które można zainstalować z tradycyjnymi repozytoriami. Aby zainstalować najnowsze wersje, należy zaimportować inne repozytoria. Jeśli nie musisz instalować najnowszej wersji PHP, polecam, że szanujesz wybór centOS. Jeśli ty potrzebować wobec rata wersja 7 od php, ja polecić ty przeczytać an przedmiot około rata i Konfigurowanie pewien Lampa (Linux Apache MySQL php 7) Serwer rezygnować wieloraki czynny gospodarze u CentOS 7.


Komentarz można zostawić jako zarejestrowany użytkownik serwisu, uzyskując dostęp poprzez sieci społecznościowe, konto wordpress lub jako użytkownik anonimowy. Jeśli chcesz zostawić komentarz jako anonimowy użytkownik, zostaniesz powiadomiony e-mailem o możliwej odpowiedzi tylko wtedy, gdy podasz swój adres e-mail (opcjonalnie). Włączenie jakichkolwiek danych do pól komentarza jest całkowicie opcjonalne. Każdy, kto zdecyduje się na wprowadzenie jakichkolwiek danych, akceptuje ich traktowanie w celach związanych z usługą lub w odpowiedzi na komentarz i komunikację, co jest absolutnie konieczne.


Zostaw Komentarz