Hervorragende Software und praktische Tutorials
Nachdem Sie sich für Amazon Cloud beworben haben, müssen Sie eine EC2-Serverinstanz erstellen und einen Webserver einrichten.
AWS Amazon Cloud WEB-Server-Aufbau Nachdem Sie einen Server auf der Amazon-Cloud-Plattform beantragt haben, müssen Sie den Amazon-Cloud-Server konfigurieren, bevor Sie ihn verwenden können.LinuxDie Instanz der virtuellen Maschine sieht wie folgt aus:Red Hat 9 Nehmen Sie dies als Beispiel für den Aufbau eines Webservers. Red Hat Enterprise Linux 9 unterstützt kostenlose Pakete in der AWS Amazon Cloud. Für die Konfiguration von Red Hat 9 in der Amazon Cloud fallen keine zusätzlichen Kosten an.
AWS Amazon Cloud Linux Red Hat 9 System Erstkonfiguration
Nachdem die virtuelle Maschineninstanz von Red Hat Enterprise Linux 9 aktiviert wurde, handelt es sich immer noch um ein leeres System und alle Umgebungen müssen konfiguriert werden.
Nachfolgend finden Sie ein Tutorial zur Erstkonfiguration des Amazon Cloud Linux Red Hat 9-Systems am 30. Januar 2023.
Ändern Sie das Root-Passwort des Servers und die Remote-Anmeldung
AWS EC2Nachdem der Cloud-Server erstellt wurde, wird standardmäßig ec2-Benutzer Das Konto, mit dem Sie sich anmelden, verfügt nicht über Berechtigungen für viele Ordner. Sie müssen es ändern in Wurzel Superadministrator-Anmeldung.
Hinweis: Beim Erstellen eines Linux Red Hat 9-Betriebssystems müssen Sie ein Schlüsselpaar für die SSH-Fernsteuerung erstellen. Beim Erstellen wird standardmäßig „.PPK“ als „Private Key File Format“ verwendet. Wenn Sie PuTTY für die SSH-Verbindung verwenden, ändern Sie es hier nicht. Wenn Sie das häufig verwendete „.pem“-Format wählen, können Sie keine SSH-Verbindung zum Server herstellen.
Quellen:So verwenden Sie das Root-Konto SSH, um sich bei AWS anzumelden
Installieren und aktivieren Sie automatische Updates von DNF-Befehlen
Installieren Sie dnf-automatic
dnf installiere dnf-automatisch
Stellen Sie dnf-automatic so ein, dass es beim Booten gestartet wird.
systemctl start dnf-automatic.timer
Wenn Sie keine Abonnementrechte für Red Hat haben, können Sie das DNF-Repository in diesem Schritt nicht aktualisieren.
Installieren der Paketgruppe „Development Tools“
Die Softwarepaketgruppe der Entwicklungstools umfasst die meisten häufig verwendeten Befehle und Tool-Software unter Linux.
dnf group install 'Entwicklungstools' -y
DNF-Update-Systempakete
Aktualisieren Sie die Softwarepakete im System auf dnf auf die neueste Version.
dnf -y aktualisieren
Konfigurieren des virtuellen Systemspeichers
Die Standardinstallation des Betriebssystems weist keinen Swap-Speicherplatz zu. Sie müssen ihn daher manuell hinzufügen. Wenn für das Betriebssystem keine Swap-Datei konfiguriert ist (Swap-Speicherplatz zuweisen), treten nach dem Laden des Speichers Fehler auf.
verwenden frei -m Führen Sie den Befehl aus, um die Speicherkonfiguration zu überprüfen. Wenn die Zahl nach Swap 0 ist, müssen Sie Swap-Speicher hinzufügen.
Auf Swap folgen lauter Nullen, also beginnen wir mit der Erstellung des virtuellen Swap-Speichers!
Erstellen Sie eine Datei mit vorab zugewiesenem Speicherplatz einer bestimmten Größe. Legen Sie etwa 8 GB Festplattenspeicher als virtuellen Systemspeicher fest.
sudo dd if=/dev/zero of=/swapfile bs=1024 count=8388608
Wenn es als Swap-Speicherplatz gekennzeichnet ist, ist der Server etwas langsam. Bitte haben Sie Geduld.
Nachdem die Partitionierung abgeschlossen ist, überprüfen Sie die Dateigröße mit dem Befehl ls.
ls -lh /swapfile
Nachdem Sie die Größe überprüft haben, müssen Sie die Berechtigungen der Auslagerungsdatei ändern.
sudo chmod 600 /swapfile
Formatieren Sie nach dem Vorgang die Auslagerungsdatei.
sudo mkswap /swapfile
Ok, da die Auslagerungsdatei nun erstellt wurde, aktivieren wir sie.
sudo swapon /swapfile
Ändern Sie abschließend die fstab-Datei, um sicherzustellen, dass der Swap nach dem Neustart automatisch wirksam wird.
sudo vi /etc/fstab
Verwenden Sie VI, um /etc/fstab zu bearbeiten und fügen Sie den folgenden Inhalt am Ende der Datei hinzu.
/swapfile swap swap sw 0 0
Oder verwenden Sie den Echo-Befehl, um es hinzuzufügen.
echo '/swapfile swap swap sw 0 0' | sudo tee -a /etc/fstab
Nachdem die Einstellungen abgeschlossen sind, starten Sie den Server neu.
Wenn Sie den Tauschvorgang beenden möchten, können Sie Auslagerung / Auslagerungsdatei , der Befehl zum Löschen der Auslagerungsdatei lautet rm -ir /swapfile.
Serverzeitzone ändern
Ändern Sie die Server-Zeitzone auf Asien/Shanghai, dann können Sie verwenden Zeitdatumctl Befehl zum Abfragen der Zeitzone.
sudo timedatectl set-timezone Asien/Shanghai
Deaktivieren Sie SELinux
Deaktivieren Sie SELinux dauerhaft und ändern Sie die SELinux-Attribute auf Deaktiviert Starten Sie anschließend den Server neu.
vi /etc/selinux/config
AWS installiert das chinesische Sprachpaket von Red Hat
Um das chinesische Sprachpaket auf Red Hat zu installieren, verwenden Sie den Befehl dnf, um nach dem chinesischen Sprachpaket zu suchen.
dnf Suche nach Sprachpaketen
Wir können feststellen, dass das Installationspaket für vereinfachtes Chinesisch auf Red Hat lautet: langpacks-zh_CN.noarch
Installieren Sie direkt über den dnf-Befehl:
dnf installiert langpacks-zh_CN.noarch
Drücken Sie Y, um der Installation zuzustimmen. Das Installationspaket wird dann automatisch heruntergeladen und installiert.
Nachdem die chinesischen Schriftarten installiert sind, ändern Sie die Systemsprache:
vi /etc/locale.conf
Ersetzen Sie den ursprünglichen Inhalt durch FolgendesLANG="zh_CN.UTF-8"
Geben Sie abschließend den Befehl weiter:Gebietsschema -a Befehl zum Überprüfen zh_CN War die Installation erfolgreich? DanachNeustart Befehl zum Neustarten des Servers.
Installieren des RPM-Repositorys auf Red Hat 9
Remis RPM-RepositoryFühren Sie den folgenden Befehl aus, umEPELund das Remi-Repository:
Remi-Repository aktivieren
sudo dnf installiere epel-release yum-utils
sudo dnf -y install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
EPEL-Repository aktivieren
EPEL 9 wurde offiziell veröffentlicht. Die Installation des EPEL-Repositorys ist sehr einfach und kann mit dem folgenden Befehl durchgeführt werden.
sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
Einrichten einer Sicherheitsgruppen-Firewall
Aktivieren Sie die Firewall:Dienst iptables starten
Schalten Sie die Firewall aus:Dienst iptables stoppen
Standard-Firewall:chkconfig iptables aus
Die Standard-Firewall von RedHat9 ist geschlossen, sodass keine Einrichtung auf dem Server erforderlich ist. Als Nächstes richten wir eine transparente Firewall auf der AWS-Cloud-Plattform ein. Natürlich können Sie die benötigten Ports auch separat öffnen. Die transparente Firewall dient lediglich der Testerleichterung.
Klicken Sie im Abschnitt „Sicherheitsgruppen“ der AWS-Cloud-Plattform, um auf die entsprechende Sicherheitsgruppe zuzugreifen, in der Sie den EC2-Server konfiguriert haben.
Wir können sehen, dass die standardmäßig geöffneten Ports nur 22, 80 und 443 sind und die transparente Firewall alle eingehenden Ports öffnet.
Klicken Sie oben rechts auf „Eingehende Regeln bearbeiten“, dann unter „Eingehende Regeln bearbeiten“ auf „Regel hinzufügen“, wählen Sie „Gesamter Datenverkehr“ als Typ und „Überall IPv4“ als Quellinformationen aus und geben Sie dann 0.0.0.0/0 als IP-Adresse ein.
Nach dem Klicken auf „Regeln speichern“ wurde die Firewall auf eine transparente Firewall eingestellt, die alle Ports des Servers öffnet.
So registrieren Sie ein Red Hat-Abonnement für RHEL 9
Nach der Installation der RPM-Repositorys von Remi und EPEL können Sie das offizielle Repository ignorieren. Sie können sich hier registrieren oder nicht.
Wenn Sie das System während der RHEL 9-Installation nicht registriert haben, können Sie dies jetzt tun, indem Sie den folgenden Befehl als Root-Benutzer ausführen.
Wenn Sie kein Red Hat-Benutzer sind, gehen Sie bitte zuRegistrierung auf der offiziellen Red Hat-Website:https://www.redhat.com/wapps/ugc/register.html
Bitte geben Sie bei der Benutzerregistrierung Ihre echte E-Mail-Adresse an. Nach der Registrierung finden Sie in der E-Mail einen Link zu einer Bestätigungs-E-Mail. Das Konto wird erst nach der Aktivierung aktiviert. Kehren Sie nach der erfolgreichen Registrierung des Red Hat-Benutzers zu Xshell zurück und melden Sie sich an.
Abonnement-Manager-Register
Amazon Cloud-Konfiguration LNMP-Umgebung
Installieren Sie LNMP (Nginx/MySQL/PHP)
Über die Vorteile der Verwendung von Linux, PHP und MySQL muss man nicht viele Worte verlieren.
Nginx ist eine kleine und effiziente Webserver-Software für Linux. Sie wurde von Igor Sysoev für Rambler.ru, die zweitmeistbesuchte Website Russlands, entwickelt. Sie läuft seit vielen Jahren auf einigen großen russischen Websites. Derzeit nutzen auch viele in- und ausländische Portale und Branchenwebsites Nginx, das recht stabil ist.
Nginx ist recht stabil, verfügt über zahlreiche Funktionen, ist einfach zu installieren und zu konfigurieren und benötigt nur wenige Systemressourcen.
Wenn Sie zu faul sind, manuell zu installierenLNMP-UmgebungSie können wählen,LNMP-Ein-Klick-Installationspaket, der folgende Inhalt dient nur als Lernreferenz.
AWS Installieren Sie PHP
PHP ist für die Konfiguration eines Cloud-Servers unerlässlich. Die meisten Websites sind in PHP geschrieben. Wenn PHP nicht installiert ist, kann der Server kein PHP-Parsing auf der Website durchführen.
Im Remi-Software-Repository beträgt die Mindest-PHP-Version 7.4 und die Höchst-PHP-Version 8.2. In der offiziellen Red Hat-Quelle ist nur die stabile Version von PHP 8.1 verfügbar. Wenn Sie eine niedrigere PHP-Version installieren möchten, können Sie zur Installation auf die Remi-Quelle wechseln.
Überprüfen Sie zuerst das System AppStream Metadaten von RHUI (RPMs).
DNF-Modulliste PHP
Aktivieren Sie das PHP-Modul im Repository:
DNF-Modul aktivieren php:remi-7.4
Nach der Eingabe von Y wird der Modulstream von php7.4 aktiviert.
Falls Sie es wollenPHP-Modul-Stream zurücksetzenkönnen Sie den folgenden Befehl verwenden:
DNF-Modul zurücksetzen PHP
Anschließend können Sie PHP direkt installieren. Beginnen wir mit der Installation von PHP7.4 und den zugehörigen Abhängigkeiten.
dnf installiere php php-mysqlnd php-gd
Beginnen Sie nach der Eingabe von Y mit der Installation von php7.4 und zugehörigen abhängigen Paketen.
php -v
Überprüfen Sie, ob PHP korrekt installiert ist.
Fehlende mb_strlen-Funktion, wie installiere ich mbstring (mb_strlen)?
Die Funktion mb_strlen ist in PHP 7.2 nicht standardmäßig installiert. Sie müssen sie mit dnf installieren. Suchen Sie zuerst nach php-mbstring.
dnf Suche php-mbstring
Suchen und installieren.
dnf installiere php-mbstring.x86_64
Installieren Sie die Zip-Erweiterung in PHP
Einige Webanwendungen benötigen die ZIP-Erweiterung von PHP. Sie müssen php-pecl-zip installieren.
dnf installiere php-pecl-zip
Nachdem die Erweiterung installiert ist, starten Sie den PHP-Dienst neu
systemctl restart php-fpm
PHP konfigurieren
Nachdem php7.4 installiert wurde, sind einige allgemeine Konfigurationen erforderlich.
Ändern Sie die PHP-Zugriffsrechte. Der Standardzugriffsbenutzer von PHP ist Apache.ApacheBenutzer, wir müssen Apache in Nginx ändern, da wir Nginx als Webserver verwenden müssen.
vi /etc/php-fpm.d/www.conf
Benutzer = nginx
Gruppe = nginx
Ändern Sie sowohl Benutzer als auch Gruppe in nginx. Drücken Sie nach der Änderung die Esc-Taste und :wq, um die Datei zu speichern und zu schließen.
Wenn Sie beim Installieren von WordPress kein Verzeichnis erstellen können, stellen Sie sicher, dass die Benutzergruppe des Verzeichnisses, in dem die WP-Dateien gespeichert sind, die Nginx-Benutzergruppe und die PHP-Benutzergruppe demselben Benutzer angehören.
Ändern Sie die Benutzerzugriffsrechte des Verzeichnisses, in dem Webdateien gespeichert sind.
chown -R nginx:nginx /var/www
Ändern Sie die Hauptkonfigurationsdatei des PHP-Programms:
vi /etc/php.ini
cgi.fix_pathinfo bietet *echte* PATH_INFO/PATH_TRANSLATED-Unterstützung für CGI. PHP setzte PATH_TRANSLATED bisher auf den SCRIPT_FILENAME und nicht auf den PATH_INFO-Wert von grok. Weitere Informationen zu PATH_INFO finden Sie unterSiehe die CGI-SpezifikationEine Umgebungsvariable von 1 bewirkt, dass PHP CGI seine Pfade entsprechend der Spezifikation korrigiert. Bei einem Wert von 0 verhält sich PHP wie zuvor. Der Standardwert ist 1. Sie sollten Ihre Skripte so korrigieren, dass SCRIPT_FILENAME anstelle von PATH_TRANSLATED verwendet wird.http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo = 1 in 0 geändert
Die maximal zulässige Größe hochgeladener Dateien.
http://php.net/upload-max-filesize
upload_max_filesize = 2M Datei-Uploadgröße, der Standardwert ist zu klein, es wird empfohlen, ihn auf 1024M zu ändern
Diese Direktive steuert, ob PHP Fehler, Hinweise und Warnungen ausgibt. Fehlerausgaben sind während der Entwicklung sehr nützlich, können in einer Produktionsumgebung jedoch sehr gefährlich sein. Je nach Code, der den Fehler auslöst, können vertrauliche Informationen wie Datenbankbenutzernamen und -kennwörter oder Schlimmeres aus Ihrer Anwendung nach außen gelangen.
Für Produktionsumgebungen empfehlen wir, Fehler zu protokollieren, anstatt sie an stdout zu senden.
Mögliche Werte:
aus = keine Fehler anzeigen
stderr = Fehler in STDERR anzeigen (betrifft nur CGI/CLI-Binärdateien!)
On oder stdout = Fehler auf STDOUT anzeigen
Standardwert: Ein
Entwicklungswert:
Produktionswert: Aus
http://php.net/display-errors
display_errors = Aus Fehler drucken, ändern auf Ein
Die maximale Größe der POST-Daten, die PHP akzeptiert.
Der Wert kann 0 sein, um die Einschränkung zu deaktivieren. Er wird ignoriert, wenn das Lesen von POST-Daten über enable_post_data_reading deaktiviert ist.
http://php.net/post-max-size
post_max_size = 8M Die maximale Formulargröße, es wird empfohlen, auf 32M zu ändern
Die maximale Ausführungszeit jedes Skripts in Sekunden
http://php.net/max-execution-time
HINWEIS: Für CLI SAPI ist diese Anweisung fest auf 0 codiert
max_execution_time=30 Maximale Ausführungszeit des PHP-Skripts, ändern Sie auf 300 oder höher
Sitzungsberechtigungen ändern:
Ändern Sie beispielsweise die Benutzergruppe und Berechtigungen von /var/lib/php/session.
cd /var/lib/php chown nginx:nginx ./session chmod -R 777 ./session
PHP wurde konfiguriert. Der letzte Schritt besteht darin, den Dienst so einzurichten, dass er beim Booten gestartet und ausgeführt wird.
systemctl aktiviere php-fpm
systemctl starte php-fpm
Allgemeine Betriebsbefehle:
Starten Sie PHP neu:systemctl restart php-fpm
Starten Sie PHP:systemctl starte php-fpm
PHP deaktivieren:systemctl stop php-fpm
PHP-Status:systemctl status php-fpm
Downgrade und Upgrade der PHP-Version
Einige Website-Programme sind wartungsarm, schlecht kompatibel und unterstützen nur niedrige PHP-Versionen. Um diese Webanforderungen zu erfüllen und die gegenseitige Kompatibilität sicherzustellen, ist ein Downgrade der PHP-Version erforderlich. Beispielsweise verwenden einige PHP-Programme SG11 zur Verschlüsselung.
SG11 ist die Abkürzung für SourceGuardian 11. SourceGuardian-BeamterDie Version wurde auf SourceGuardian 13 aktualisiert. Das Wichtigste ist, dass die Dateien der beiden Versionen nicht universell sind und die höchste Version der PHP-Verschlüsselung für SG11 PHP 7.3 ist. Wenn Sie also das SG11-Webprogramm installieren müssen, kann die PHP-Version nicht höher als 7.3 sein.
Hinweis: Wenn Sie eine frühere Version von PHP, z. B. PHP 7.3, installieren möchten, müssen Sie zunächst gleichzeitig Ihre Softwarequellen downgraden. Führen Sie ein Downgrade von remi-release-9.rpm auf remi-release-8.rpm durch, da in remi-release-9.rpm keine Version unter PHP 7.4 vorhanden ist.
Downgrade des Remi-Repositorys
sudo dnf installiere epel-release yum-utils
sudo dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Zuerst müssen Sie die PHP-FPM- und Nginx-Dienste stoppen.
systemctl stop php-fpm
systemctl stop nginx
Laden Sie nach dem Beenden des Dienstes die Datei /etc/php.ini herunter und speichern Sie sie lokal. Andernfalls müssen Sie die Datei php.ini nach dem Downgrade erneut ändern.
Wenn Sie yum-utils nicht installiert haben, müssen Sie yum-utils installieren.
yum-utils ist eine Sammlung von Dienstprogrammen, die sich in yum integrieren lassen und die native Funktionalität von yum auf vielfältige Weise erweitern, wodurch yum leistungsfähiger und benutzerfreundlicher wird.
dnf installiere yum-utils -y
Deinstallieren und entfernen Sie auf dem Server installiertes PHP
dnf entferne php\*
Installieren Sie PHP7.3
Zeigen Sie die im PHP-Repository vorhandenen PHP-Module an
DNF-Modulliste PHP
Da der vorherige Modulfluss PHP7.4 aktiviert hat, müssen Sie das PHP-Modul zurücksetzen, wenn Sie PHP7.3 installieren möchten
DNF-Modul zurücksetzen PHP
Aktivieren Sie den php7.3-Modulstream.
DNF-Modul aktivieren PHP:7.3
Nachdem der PHP7.3-Modulstream aktiviert ist, installieren Sie PHP7.3
dnf installiere php php-mysqlnd php-gd
Verwenden Sie dann „php -v name“, um die PHP-Version zu überprüfen. Es ist nun php7.3.
Nachdem php7.3 installiert ist, überschreiben Sie die zuvor gesicherte php.ini-Datei in /etc/php.ini und ändern Sie dann die Benutzer- und Benutzergruppennamen in der Datei /etc/php-fpm.d/www.conf in nginx.
vi /etc/php-fpm.d/www.conf
Benutzer = nginx
Gruppe = nginx
Nachdem Sie die oben genannten Vorgänge abgeschlossen haben, starten Sie abschließend die PHP- und Nginx-Dienste.
systemctl starte php-fpm
systemctl starte nginx
Installieren Sie PHP7.2
PHP 7.x-Pakete sind in verschiedenen Repositories verfügbar. Wir verwenden Remi-Repository, das neuere Versionen verschiedener Softwarepakete einschließlich PHP bereitstellt.
Überprüfen Sie, ob Software-Repositorys in Ihrem System aktiviert sind
sudo yum repolist
Überprüfen Sie anschließend die PHP-Module im Repository.
DNF-Modulliste PHP
Um remi-7.2 zu installieren, müssen Sie das PHP-Modul zurücksetzen.
DNF-Modul zurücksetzen PHP
Wählen Sie nach dem Zurücksetzen des Moduls den Modulstream von remi-7.2 aus.
DNF-Modul aktivieren php:remi-7.2
Beginnen wir mit der Installation von PHP Remi-7.2
dnf install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd
Installieren Sie nginx auf AWS
Führen Sie den folgenden Befehl aus, um eine Liste der verfügbaren Nginx-Modul-Streams zu erhalten.
DNF-Modulliste Nginx
Das System verwendet standardmäßig Nginx Version 1.14. Wenn Sie eine höhere Version installieren möchten, müssen Sie das Nginx-Modul zurücksetzen.
DNF-Modul zurücksetzen Nginx
Nach dem Zurücksetzen des Moduls können wir die zu installierende Version auswählen. Wenn wir beispielsweise Version 1.20 installieren möchten, müssen wir lediglich den Modul-Stream der Version 1.20 aktivieren.
dnf-Modul aktivieren nginx:1.20
Nur der Modulfluss ist aktiviert. Verwenden Sie den Befehl dnf install, um Nginx Version 1.20 zu installieren.
dnf installiere nginx -y
Richten Sie nginx ein, um den nginx-Dienst zu starten und auszuführen.
systemctl aktiviere nginx
systemctl starte nginx
Verwenden Sie nach der Installation netstat, um die aktuelle Portnutzung zu überprüfen.
netstat -lntup
Wenn die Eingabeaufforderung "-bash: netstat: Befehl nicht gefunden" erscheint, müssen Sie zusätzlich das Netzwerkkomponententool net-tools installieren
dnf installiere net-tools -y
Durch Überprüfen des Ports können wir sehen, dass Port 80 von nginx belegt wurde und der nginx-Dienst erfolgreich installiert wurde.
Allgemeine Befehle:
Neustart:
systemctl startet nginx neu
Start-up:
systemctl starte nginx
Schließung:
systemctl stop nginx
Zustand:
systemctl status nginx
Konfigurieren Sie Nginx
Bearbeiten Sie die Nginx-Konfigurationsdatei nginx.conf. Um normal auf die Website zugreifen zu können, müssen Sie die Nginx-Konfigurationsdatei nginx.conf bearbeiten. nginx.conf ist die Kernkonfigurationsdatei von Nginx. Verwenden Sie den VI-Befehl, um /etc/nginx/nginx.conf zu bearbeiten.
vi /etc/nginx/nginx.conf
#Konfiguriere den Benutzer oder die Benutzergruppe nginx; #Die Anzahl der Prozesse, die generiert werden dürfen, der Standardwert ist 1 worker_processes auto; #Gebe den Pfad und die Ebene des Fehlerprotokolls an. Diese Einstellung kann im globalen Block, im HTTP-Block und im Serverblock vorgenommen werden. Die Ebenen sind: debug|info|notice|warn|error|crit|alert|emerg. Je höher die Ebene, desto weniger Datensätze. Im Allgemeinen wird der Fehler error_log /var/log/nginx/error.log gesetzt; #Gebe die Speicheradresse der laufenden Nginx-Prozessdatei pid /var/run/nginx.pid an; #Ladedynamische Module laden, einschließlich /usr/share/nginx/modules/*.conf; #Arbeitsmodus und Obergrenze der Anzahl von Verbindungen - EreignisseGlobale Einstellungen Ereignisse { #Die maximal zulässige Anzahl von Verbindungen für einen einzelnen Arbeitsprozess, der Standardwert ist 512 worker_connections 1024; } #http-Server-Konfigurationsdateiblock http { #Dateierweiterung und Dateityp-Zuordnungstabelle. Legen Sie den MIME-Typ fest (Mail-Support-Typ), der Typ wird durch die Datei mime.types definiert. include /etc/nginx/mime.types; #Standarddateityp, der Standardwert ist text/plain default_type application/octet-stream; #Benutzerdefiniertes Protokollformat log_format main '$remote_addr - $remote_user [$time_local] "$request" ' $status $body_bytes_sent "$http_referer" ' "$http_user_agent" "$http_x_forwarded_for"'; #Legen Sie den Pfad und das Format des Zugriffsprotokolls fest. „Kombiniert“ ist der Standardwert für das Protokollformat. access_log /var/log/nginx/access.log main; #Erlauben Sie „sendfile“, Dateien zu übertragen. Die Standardeinstellung ist „aus“, kann im http-Block, Server-Block oder Standortblock sein. sendfile an; #tcp_nopush an; #Verbindungstimeout, die Standardeinstellung ist 75 s, kann im http-, Server- oder Standortblock sein. keepalive_timeout 65; #gzip-Komprimierungsschalter, Ein schaltet die Gzip-Komprimierung ein, Standard ist Aus schaltet Gzip aus; 1TP5Legt die Mindestdateigröße für die Gzip-Komprimierung fest, Dateien, die kleiner als der eingestellte Wert sind, werden nicht komprimiert gzip_min_length 10k; #gzip-Komprimierungsstufe, 1-9, je größer die Zahl, desto besser die Komprimierung und desto mehr CPU-Zeit wird benötigt gzip_comp_level 6; #Legt die für die Komprimierung erforderliche Puffergröße fest gzip_buffers 32 4k; #Legt die HTTP-Protokollversion für die Gzip-Komprimierung fest, es kann keine Last verwendet werden gzip_http_version 1.1; #Zu komprimierender Dateityp. JavaScript hat viele Formen. Die Werte können in der Datei mime.types gefunden werden. gzip_types Text/Plain Anwendung/Javascript Anwendung/x-Javascript Text/CSS Anwendung/XML Text/Javascript Anwendung/x-httpd-php Bild/JPEG Bild/GIF Bild/PNG Anwendung/vnd.ms-fontobject Schriftart/TTF Schriftart/OpenType Schriftart/x-Woff Bild/SVG+XML; #Ob Vary: Accept-Encoding im HTTP-Header hinzugefügt werden soll, wird empfohlen, gzip_vary einzuschalten; #Laden Sie modulare Konfigurationsdateien aus dem Verzeichnis /etc/nginx/conf.d. include /etc/nginx/conf.d/*.conf; }
Das Obige ist eine relativ einfache Grundkonfiguration von Nginx. Die Server-Website-Konfiguration wird im Verzeichnis /etc/nginx/conf.d/ gespeichert.
Bearbeiten Sie als Nächstes die Server-Website-Konfiguration für die Produktionsumgebung.
#Domänenname-Port 301-Umleitunghttps-Server { Servername www.uzvod.com; # Der Domänenname der Website kann mehrere sein, getrennt durch Leerzeichenreturn 301 http://uzvod.com$quest_uri; } #Vorläufige KonfigurationNginx hat noch kein SSL-Zertifikat, 301-Umleitung zum Stammdomänennamen. #Website-Konfigurationskernblockserver { Servername uzvod.com; Stamm /var/www/uzvod; Index index.php index.html index.htm; Standort ~* ^/(upload|vendor|thinkphp|extend|addons|application)/.*\.(php|php5)$ { alle verweigern; } include /etc/nginx/default.d/*.conf; # Laden Sie die Standard-Serverblock-Konfigurationsdatei von /etc/nginx/default.d. # pseudostatischer Seitenstandort / { if (!-e $request_filename) { rewrite ^/index.php(.*)$ /index.php?s=$1 last; rewrite ^/admin.php(.*)$ /admin.php?s=$1 last; rewrite ^/api.php(.*)$ /api.php?s=$1 last; rewrite ^(.*)$ /index.php?s=$1 last; break; } } }
Starten Sie den Nginx-Dienst neu, nachdem Sie die Konfiguration hinzugefügt haben.
systemctl startet nginx neu
Erstellen Sie eine neue Testseite index.php und kopieren Sie den folgenden Inhalt in die Datei. Dies ist eine PHP-Testdatei.
Verzeichnisberechtigungen neu konfigurieren
chown -R nginx:nginx /var/www
Nach dem Zugriff auf den Domänennamen kann die Website erfolgreich geöffnet werden. Beachten Sie, dass Sie online ein SSL-Domänenzertifikat beantragen müssen. Konfigurieren Sie anschließend das Domänenzertifikat in nginx.
Über den unten stehenden Zertifikatsroboter wurde das SSL-Domänennamenzertifikat erfolgreich beantragt. Ändern Sie nun die Konfigurationsdatei des Servers in Nginx.
#Domänenname, Port 301, Umleitung, https-Server { listen 80; listen [::]:80; Servername www.uzvod.com uzvod.com; # Domänenname der Website, kann mehrere sein, getrennt durch Leerzeichen, Rückgabe 301 https://uzvod.com$request_uri; SSL-Zertifikat /etc/letsencrypt/live/uzvod.com/fullchain.pem; # verwaltet von Certbot SSL-Zertifikatschlüssel /etc/letsencrypt/live/uzvod.com/privkey.pem; # verwaltet von Certbot, Einschluss /etc/letsencrypt/options-ssl-nginx.conf; # verwaltet von Certbot SSL-DHPARAM /etc/letsencrypt/ssl-dhparams.pem; # verwaltet von Certbot } #Website-Konfiguration Core Block Server { listen 443 ssl http2; listen [::]:443 ssl http2; Servername uzvod.com; Root /var/www/uzvod; Index index.php index.html index.htm; http2_push_preload ein; # HTTP/2-Server-Push aktivieren ssl_certificate /etc/letsencrypt/live/uzvod.com/fullchain.pem; # verwaltet von Certbot ssl_certificate_key /etc/letsencrypt/live/uzvod.com/privkey.pem; # verwaltet von Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # verwaltet von Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # verwaltet von Certbot # TLS-Versionen aktivieren (TLSv1.3 wird für kommendes HTTP/3 QUIC benötigt). # TLSv1.3 0-RTT aktivieren. $ssl_early_data beim Reverse-Proxying zu # verwenden, um Replay-Angriffe zu verhindern. # # @siehe: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data ssl_early_data an; ssl_session_cache shared:SSL:50m; # HSTS (ngx_http_headers_module ist erforderlich) (15768000 Sekunden = 6 Monate) add_header Strict-Transport-Security max-age=31536000; # OCSP Stapling --- # holt OCSP-Datensätze von der URL im SSL-Zertifikat und speichert sie zwischen. SSL-Stapling ein; SSL-Stapling_Verify ein; /etc/nginx/default.d/*.conf einschließen; # Lädt die Standard-Serverblock-Konfigurationsdateien aus /etc/nginx/default.d. Speicherort ~* ^/(upload|vendor|thinkphp|extend|addons|application)/.*\.(php|php5)$ { alles verweigern; } # pseudostatischer Seitenspeicherort / { wenn (!-e $request_Dateiname) { neu schreiben ^/index.php(.*)$ /index.php?s=$1 letzte; neu schreiben ^/admin.php(.*)$ /admin.php?s=$1 letzte; neu schreiben ^/api.php(.*)$ /api.php?s=$1 letzte; neu schreiben ^(.*)$ /index.php?s=$1 letzte; unterbrechen; } } # Reverse-Proxy-Standort /chat886 { Proxy_Umleitung aus; Proxy_Pass http://127.0.0.1:12345; Proxy_http_Version 1.1; Proxy_Set_Header X-Real-IP $remote_addr; Proxy_Set_Header X-Forwarded-For $proxy_add_x_forwarded_for; 0-RTT in TLSv1.3 Proxy_Set_Header Early-Data $ssl_early_data; } }
Starten Sie den Nginx-Dienst neu, nachdem Sie die Konfiguration hinzugefügt haben.
systemctl startet nginx neu
Hinweis: Nachdem Nginx erfolgreich konfiguriert wurde, generieren Sie mit dem folgenden Certbot ein SSL-Domänennamenzertifikat. Konfigurieren Sie SSL-Zugriffsregeln nicht zuerst in Nginx.
Nginx generiert SSL-Domänennamenzertifikat über Certbot
Certbot ist ein kostenloses Open-Source-Softwaretool zur Automatisierung der Verwendung von Let’s Encrypt-Zertifikaten, um HTTPS auf manuell verwalteten Websites zu aktivieren.
Certbot wurde von der Electronic Frontier Foundation (EFF) entwickelt, einer gemeinnützigen 501(c)3-Organisation mit Sitz in San Francisco, Kalifornien, die sich für digitale Privatsphäre, freie Meinungsäußerung und Innovation einsetzt.
Nach der Konfiguration von Nginx können Sie den SSL-Domänenzertifikatsroboter Certbot verwenden, um das SSL-Domänenzertifikat von Growth City zu erhalten. Informationen zu spezifischen Installationsmethoden finden Sie hier:
Installieren Sie MySQL auf AWS
Holen Sie sich das MySQL-Modul
DNF-Modulliste MySQL
MySQL 8.0 ist die einzige Version auf dem Server. Installieren wir MySQL 8.0
dnf install @mysql
Die Installation mit dnf install mysql und dnf install @mysql ist unterschiedlich. @mysql verfügt über mehr Installationspakete.
Nach der Installation MySQL so einstellen, dass es beim Booten startet
systemctl enable --now mysqld
Überprüfen Sie dann, ob MySQL normal läuft.
systemctl status mysqld
Das grüne Licht zeigt einen normalen Betrieb an, das rote Licht zeigt einen Fehler an und MySQL läuft normal.
Kennwort- und Sicherheitseinstellungen hinzufügen
laufen mysql_secure_installation Skript, das einige sicherheitsrelevante Vorgänge ausführt und das MySQL-Root-Passwort festlegt.
sudo mysql_secure_installation
Nach der Ausführung des Skripts werden Sie gefragt, ob Sie die Komponente „PASSWORT VALIDIEREN“ konfigurieren möchten. Wählen Sie für diesen Schritt „J“ aus.
Wählen Sie die Richtlinienebene für die Kennwortüberprüfung und wählen Sie 0 (niedrig).
Legen Sie das MySQL-Passwort fest. Geben Sie das gewünschte Passwort zweimal ein.
Möchten Sie das angegebene Passwort wirklich weiterhin verwenden? Geben Sie „Y“ ein.
Anonymen Benutzer entfernen? Geben Sie „Y“ ein.
Remote-Login für Root zulassen? Geben Sie N ein.
Testdatenbank entfernen? Geben Sie „Y“ ein.
Berechtigungstabellen neu laden? Geben Sie „Y“ ein.
Konfigurieren Sie die MySQL-Remote-Anmeldung. Wenn Sie die Remote-Anmeldung für das Root-Konto einrichten müssen, wiederholen Sie die obigen Schritte und setzen Sie den Schritt „Root-Remote-Anmeldung zulassen“ auf „J“. Wenn Sie die MySQL-Remote-Anmeldung vorerst nicht konfigurieren müssen, können Sie diesen Absatz ignorieren.
Nachdem MySQL initialisiert wurde, müssen Sie sich zur Überprüfung bei MySQL anmelden
Melden Sie sich mit dem folgenden Befehl an und geben Sie das Passwort ein:
mysql -u root -p
Wenn bei der Anmeldung keine Auffälligkeiten vorliegen und die mysql>-Betriebskonsole angezeigt werden kann, waren die Konfiguration und Installation erfolgreich.
Sie können neue Benutzer auf der MySQL-Konsole erstellen oder MySQL-Verwaltungstools verwenden, um neue Benutzer oder Datenbanken zu erstellen.
So erstellen Sie einen neuen Benutzer in der MySQL-Konsole
Erstellen Sie einen neuen Benutzer für die Remote-Anmeldung
Geben Sie Ihren Benutzernamen unter „Benutzername“ und Ihre IP-Adresse unter „Host“ ein. Beispielsweise bedeutet 8.8.8.8, dass sich der Benutzer nur über die IP-Adresse 8.8.8.8 anmelden kann. Wenn Sie die IP-Anmeldung nicht einschränken möchten, geben Sie unter „Host“ „%“ und unter „Passwort“ Ihr Passwort ein.
Erstellen Sie den Benutzer „Benutzername“@„Host“, identifiziert durch „Passwort“.
Erteilen Sie dem neu erstellten Benutzer Berechtigungen. Benutzername und Host sind dieselben wie beim im vorherigen Schritt erstellten Benutzer.
erteilen Sie „Benutzername“@„Host“ alle Berechtigungen für *.* mit der Gewährungsoption;
Testen Sie einfach, ob die Remote-Anmeldung verfügbar ist. Hier ist für alle Fälle die MySQL-Anweisung zum Ändern des Kennworts:
Ändern Sie den Benutzer „root“@„localhost“, identifiziert durch „Passwort“.
Bisher wurde MySQL installiert. Sollten Sie weitere Anforderungen an die Konfigurationsdatei haben, ändern Sie diese bitte /etc/my.cnf Die Konfigurationsdateien in .
Starten Sie den MySQL-Dienst neu, nachdem Sie die obigen Einstellungen vorgenommen haben.
systemctl startet mysqld neu
Allgemeine MySQL-Befehle
Starten Sie MySQL
systemctl starte mysqld
Starten Sie MySQL neu
systemctl startet mysqld neu
Stoppen Sie MySQL
systemctl stop mysqld
Überprüfen Sie den MySQL-Status
systemctl status mysqld
AWS Installieren Sie phpMyAdmin
phpMyAdmin ist einPHPEin kostenloses Softwaretool, das zur VerarbeitungMySQL-Verwaltung.phpMyAdmin unterstützt eine Vielzahl von Operationen für MySQL und MariaDB. Gängige Operationen (Verwaltung von Datenbanken, Tabellen, Spalten, Relationen, Indizes, Benutzern, Berechtigungen usw.) können über die Benutzeroberfläche ausgeführt werden. SQL-Anweisungen können weiterhin direkt ausgeführt werden.
phpMyAdmin ist ein Verwaltungstool für MySQL. phpMyAdmin-Website:https://www.phpmyadmin.net/
Installieren Sie den Downloadbefehl wget.
dnf installiere wget
Laden Sie die neueste Version von phpMyAdmin-5.1.3 herunter. Beachten Sie, dass sie im Tar.gz-Format vorliegt.
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.0/phpMyAdmin-5.2.0-all-languages.tar.gz
Entpacken Sie die phpMyAdmin-5.1.3-Dateien.
tar -zxvf phpMyAdmin-5.2.0-all-languages.tar.gz
Benennen Sie den Ordner um. Sie können den Namen später festlegen. Hier ist er standardmäßig in phpMyAdmin geändert.
mv phpMyAdmin-5.2.0-alle-Sprachen phpMyAdmin
Verschieben Sie die Dateien in das Webspeicherverzeichnis.
mv phpMyAdmin /home/www
Beachten Sie, dass Sie die Erweiterung php-mysqlnd auch installieren müssen, wenn Sie dies noch nicht getan haben.
dnf installiere php-mysqlnd
Konfigurieren Sie phpMyAdmin
Gehen Sie in das Bibliotheksverzeichnis unter dem phpMyAdmin-Verzeichnis und bearbeiten Sie die Datei config.default.php mit VI
cd /var/www/phpMyAdmin/libraries
vi config.default.php
Ändern Sie localhost nach host in 127.0.0.1. Hinweis: Verwenden Sie nicht die Tastatur zur Eingabe von Zahlen.
Wille$cfg['Server'][$i]['Host'] = 'lokaler Host';Wechseln zu$cfg['Server'][$i]['Host'] = '127.0.0.1';
$cfg['Server'][$i]['Benutzer'] = 'root';
$cfg['Servers'][$i]['password'] = 'MySQL-Passwort';
Wille$cfg['blowfish_secret'] = ''; Wechseln zu $cfg['blowfish_secret'] = '123456*******';
Hinweis: „123456*******“ ist ein zufälliges Passwort mit mehr als 32 Zeichen.
Nach der Änderung speichern und beenden: qw
Zurück zu
Platzieren Sie im Hauptverzeichnis von phpMyAdmin die Konfigurationsdatei config.sample.inc.php Ändern Sie den Namen.
cd /var/www/phpMyAdmin/
mv config.sample.inc.php config.inc.php
VI bearbeitet die Konfigurationsdatei config.inc.php.
vi config.inc.php
Ändern Sie das kurze Passwort, das phpMyAdmin für Cookies verwendet.
$cfg['blowfish_secret'] = ''; Wechseln zu $cfg['blowfish_secret'] = '123456*******';
Hinweis: „123456*******“ ist jedes Kennwortzeichen, das größer als 32 Bit ist.
Dieses Passwort wird zum Verschlüsseln von Cookies verwendet, um Verwirrung zu vermeiden, wenn mehrere PhpMyAdmins oder andere Programme Cookies gemeinsam nutzen.
Nachdem das Kurzkennwort bearbeitet wurde, ändern Sie die Hostoption. $cfg['Server'][$i]['Host'] = 'lokaler Host'; Wechseln zu $cfg['Server'][$i]['Host'] = '127.0.0.1';
Ändern Sie die Benutzergruppe und Berechtigungen des Sitzungspfads (z. B. /var/lib/php/session) und wechseln Sie dann zum entsprechenden Sitzungspfad.
cd /var/lib/php
chown nginx:nginx ./session
chmod -R 777 ./session
Erstellen Sie einen neuen temporären Ordner im phpmyadmin-Verzeichnis und setzen Sie die Berechtigung auf 777
mkdir /var/www/phpMyAdmin/tmp
chmod -R 777 /var/www/phpMyAdmin/tmp
Ändern Sie abschließend die Benutzerzugriffsrechte des Verzeichnisses, in dem die phpMyAdmin-Dateien gespeichert sind.
chown -R nginx:nginx /var/www
Das Problem wurde behoben, bei dem erweiterte Funktionen in phpMyAdmin nicht vollständig konfiguriert und einige Funktionen nicht aktiviert waren.
Klicken Sie auf „Leere Datenbank in phpMyAdmin erstellen“, um das Problem zu beheben. Konfigurieren Sie abschließend den Zugriffspfad von phpMyAdmin in Nginx, und Sie können normal darauf zugreifen.
mysqli::real_connect(): (HY000/1045): Zugriff verweigert für Benutzer „root“@„localhost“ (mit Passwort: JA)
MySQL-Passwort-Eingabefehler
Installieren Sie WordPress in der Amazon Cloud
Laden Sie zunächst die neueste Version von WordPress herunter.
wget https://cn.wordpress.org/latest-zh_CN.tar.gz
Entpacken Sie die Datei nach dem Download.tar -xzvf latest-zh_CN.tar.gz
Verschieben Sie den Ordner in das Website-Verzeichnismv wordpress /var/www
cd /var/wwwroot
Benennen Sie die Datei wp-config-sample.php umcp wp-config-sample.php wp-config.php
Ändern Sie die Website-Konfigurationsdatei:vi wp-config.php
Der Name der WordPress-Datenbank: define( 'DB_NAME', 'WordPress' );
MySQL-Datenbankbenutzername: define( 'DB_USER', 'root' );
MySQL-Datenbankkennwort: define( 'DB_PASSWORD', 'mysql password' );
MySQL-Host: definieren( 'DB_HOST', '127.0.0.1' );
Die Standardtextkodierung beim Erstellen einer Datentabelle: define('DB_CHARSET', 'utf8' );
Fügen Sie am Ende der Datei den folgenden Code hinzu:if(is_admin()) {add_filter('filesystem_method', create_function('$a', 'return "direct";' ));define( 'FS_CHMOD_DIR', 0751 );}
Fügen Sie nach der Änderung der Konfigurationsdatei erneut Benutzerberechtigungen hinzu!
chown -R nginx:nginx /var/www
Fügen Sie in der Nginx-Konfigurationsdatei den folgenden Code für die pseudostatische Plug-In-Installation hinzu:
# 将www域名301登陆到uzbox.tk } Server { listen 443 ssl http2; listen [::]:443 ssl http2; Servername uzbox.tk; Root /home/wwwroot; SSL-Zertifikat "/home/ssl/fullchain.cer"; SSL-Zertifikatschlüssel "/home/ssl/uzbox.tk.key"; SSL-Sitzungscache gemeinsam genutzt: SSL:1m; SSL-Sitzungstimeout 10m; SSL-Protokolle TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA2 56:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CH ACHA20-Entwurf:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5; ssl_prefer_server_ciphers an; # Konfiguration für 0-RTT in TLSv1.3 ssl_early_data an; ssl_stapling an; ssl_stapling_verify an; add_header Strict-Transport-Security "max-age=31536000"; location / { index index.php index.html index.htm; try_files $uri $uri/ /index.php?$args; # wird verwendet, um pseudostatische Einstellungen in WordPress zu unterstützen. } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
Starten Sie den Nginx-Dienst neu, nachdem Sie die Konfiguration hinzugefügt haben.
systemctl startet nginx neu
Erstellen Sie abschließend eine WordPress-Datenbank in MySQL.
Zum Beispiel: der Name der WordPress-Datenbank: define('DB_NAME', 'WordPress123' );
Sie müssen mit dem Befehl oder in phpmyadmin ein neues in MySQL erstellen.WordPress123Andernfalls wird beim Öffnen der Site ein Datenbankverbindungsfehler angezeigt.
Melden Sie sich nach der Konfiguration der Datenbank bei der WordPress-Seite an und geben Sie Ihren Site-Namen, Ihr Benutzerkontokennwort und andere zugehörige Inhalte ein. Die Site wurde erfolgreich erstellt. Nachdem Sie sich beim Site-Backend angemeldet haben, müssen Sie zunächst den festen WordPress-Link ändern, das Backend aufrufen und die Einstellungen für den festen Link öffnen.
自定义结构后面填入%category%/%post_id%
Installieren Sie das Plugin "No Category Base", um das Kategorieverzeichnis /category/ zu entfernen
Die weitere detaillierte Konfiguration finden Sie unterBox ShopDer Inhalt der Site.