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.