Hervorragende Software und praktische Tutorials
Google Cloud Server-Konfiguration Installieren Sie die LNMP-Umgebung PHP+Mysql+Nginx-Installation Detaillierte Erklärung unter Centos8
Google CloudServerkonfiguration Um gute Arbeit zu leisten, müssen Sie zuerst Ihre Werkzeuge schärfen. Das Schärfen des Messers erleichtert die Arbeit. Erstellen Sie zuerst die LNMP-Umgebung des Servers und dann die Website. Ohne eine gute PHP-Umgebung treten später weitere Probleme auf. Ich habe bereits über die manuelle Installation und Bereitstellung der PHP-Umgebung gesprochen. Heute zeige ich Ihnen, wie Sie die PHP-Umgebung bei Google installieren und bereitstellen, ohne ein Drittanbieter-Panel zu verwenden.Cloud ServerAnwendung auf dnf Befehl: PHP+ manuell installierenMySQL+NginxSo konfigurieren Sie die Umgebung.
Dieses Tutorial ist geeignet für:Centos7/CentOS-Stream 8/CentOS Stream 9/ Red Hat Enterprise Linux (RHEL)
Google Cloud Server-Konfiguration
Centos8Das System ist installiert inGooglevonKostenloser Cloud-ServerDer in diesem Artikel getestete Maschinentyp ist e2-medium (2 vCPUs, 4 GB Speicher).
Da für CentOS 8 angekündigt wurde, dass der Support Ende 21 eingestellt wird, führen Sie ein Upgrade auf CentOS Stream durch.Google Cloud Beim Aktualisieren des vorherigen Centos8-Systems auf CentOS Stream 8 und CentOS Stream 9 gibt es keine wesentlichen Änderungen im Betrieb. Fügen Sie einfach die Quelle des Software-Repositorys hinzu.
Im Folgenden wird das CentOS Stream 8-System als Beispiel verwendet.Google Cloud Server-Konfiguration:
Google Wolke Informationen zu Konfigurationsmethoden für Google Cloud-Anwendungen und virtuelle Maschinen finden Sie unter:Kostenlose Google Cloud-Anwendung
Nachdem Sie den VM-Server eingerichtet haben, stellen Sie eine SSH-Verbindung her und starten Sie den Vorgang. Nach der Installation des Centos8-Systems müssen Sie zunächst das Root-Passwort des Systems ändern.

Verwenden Sie das von der Google Cloud Platform bereitgestellte Web-SSH, um eine Verbindung zum Server herzustellen, und ändern Sie die SSH-Verbindungsmethode nach der Anmeldung.
Google Cloud Server-Konfiguration – Server-Root-Passwort ändern
verwenden sudo -i oder sudo su Befehl zum Wechseln zum Superadministrator-Root-Benutzer, wechseln Sie in den Root-Superadministratormodus und geben Sie ein passwd Befehl zum Ändern des Passworts.
sudo -i passwd
Geben Sie das zu ändernde Passwort ein und bestätigen Sie es zweimal. Drücken Sie nach der Bestätigung die Eingabetaste, um die Einstellung abzuschließen. CD\ Befehl zum Wechseln in das Stammverzeichnis.
verwenden VI Befehl zum Ändern der SSH-Konfigurationsdatei.
vi /etc/ssh/sshd_config

Wenn Sie den Port für die SSH-Remoteverbindung ändern möchten, entfernen Sie die Nummer # vor „Port“ und ändern Sie dann die gewünschte Portnummer.
Ändern Sie den folgenden Inhalt in sshd_config:
- PermitRootLogin Der Standardwert ist „Nein“ und muss in „Ja“ geändert werden, um den SSH-Remotezugriff zu verwenden.
- PasswortAuthentifizierung Der Standardwert ist „Nein“. Ändern Sie ihn in „Ja“, um die Kennwortanmeldung zu aktivieren.
- ClientAliveIntervall Der Standardwert ist 420. Ändern Sie ihn auf 3600, was der Timeout-Zeitspanne für die Clientverbindung entspricht.
Port 10086 PermitRootLogin ja PasswordAuthentication ja ClientAliveInterval 3600
Nach der Änderung verwenden:wqBefehl zum Beenden der VI-Bearbeitung.
So aktivieren Sie die SSH-Anmeldung über Google Cloud Server. Nach der Änderung des SSH-Ports müssen Sie SElinux deaktivieren, da Sie sich sonst nicht anmelden können.
SElinux dauerhaft deaktivieren
Google Cloud konfigurierenFür Server müssen Sie zunächst SElinux dauerhaft deaktivieren. Obwohl SElinux zur Verbesserung der Linux-Sicherheit verwendet wird, ist die Einrichtung sehr aufwändig. Es wird empfohlen, es dauerhaft zu deaktivieren.
vi /etc/selinux/config
Suchen Sie nach SELINUX=enforcing, drücken Sie i, um in den Bearbeitungsmodus zu wechseln, und ändern Sie den Parameter in SELINUX=disabled.
Nach Abschluss der Änderung drücken Sie die Esc-Taste auf Ihrer Tastatur, führen den Befehl wq aus, speichern und schließen die Datei. Starten Sie anschließend den Server neu. SElinux wurde erfolgreich deaktiviert. Im nächsten Schritt ändern Sie die SSH-Portnummer. Im Internet wimmelt es von automatischen Scan-Bots. Ein Angriff kann verheerende Folgen haben. Google Cloud berechnet die Kosten nach Traffic. Obwohl die Kosten 300 US-Dollar betragen, sind bei einem Angriff mehrere Tausend US-Dollar pro Tag kein Problem. Ändern Sie daher am besten zuerst den Remote-Port von SSH!
Hinweis: Bei manchen Systemen ist die Firewall standardmäßig aktiviert. Überprüfen Sie den Firewall-Status.
systemctl status firewalld
Wenn die Firewall aktiviert ist, müssen Sie Firewalld mit Root-Benutzerrechten deaktivieren.
#Zuerst müssen Sie die Firewall stoppen systemctl stop firewalld #Nachdem die Firewall gestoppt wurde, fahren Sie sie dauerhaft herunter systemctl disable firewalld
Beim späteren Einstieg in die Produktionsumgebung kann die Firewall auf der Google Cloud-Plattform eingerichtet werden.
Starten Sie den Server neu!
Neustart
Google Cloud Server Konfiguration CentOS 7 / CentOS Stream 8/9 Installieren Sie die Softwarequellen epel und remi
Als Nächstes müssen Sie die vom CentOS8-System benötigte Software installieren. Beginnen wir mit der Aktualisierung des Systems und der Installation der für das Systemsoftwarepaket erforderlichen Quellen.Epel und remi sind unverzichtbare Software-Repositories für CentOS8.
Installieren Sie die Softwarequelle mit RPM:
CentOS 7-Installationssoftware-Repository:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
CentOS Stream 8-Installationssoftware-Repository:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-8.rpm
CentOS Stream 9-Installationssoftware-Repository:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-9.rpm
Verwenden Sie DNF, um die Softwarequelle zu installieren:
DNF ist die nächste Generation des Yum-Paketmanagers (eine Ableitung von Yum). Die Syntax von DNF und Yum ist ähnlich und weist viele Gemeinsamkeiten auf. Standardmäßig ist DNF auf RHEL 8- und CentOS Stream 8-Systemen installiert.
CentOS 7-Installationssoftware-Repository:
CentOS7 muss zuerst den Befehl dnf installieren.
dnf installieren https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm dnf installieren https://rpms.remirepo.net/enterprise/remi-release-7.rpm
CentOS Stream 8-Installationssoftware-Repository:
dnf installieren https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm dnf installieren https://rpms.remirepo.net/enterprise/remi-release-8.rpm
CentOS Stream 9-Installationssoftware-Repository:
dnf installieren https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm dnf installieren https://rpms.remirepo.net/enterprise/remi-release-9.rpm
Nachdem die Softwarequelle installiert ist, installieren Sie dnf-utils
dnf-utils
Klassische YUM-Dienstprogramme, implementiert als CLI-Shims auf DNF. Der Hauptzweck dieser Shims besteht darin, die Abwärtskompatibilität mit yum-3 sicherzustellen.
Verwendung nach der Installation DNF-Update
Befehl zum Aktualisieren der Software im System auf die neueste Version.
dnf installieren dnf-utils dnf aktualisieren
Um die auf dem System aktivierten Datenquellen anzuzeigen, verwenden Sie dnf repolist alle Der Befehl kann alle Datenquellen anzeigen, einschließlich der nicht aktivierten.
dnf repolist alle

verwenden dnf repolist Befehl zum Anzeigen der aktuell verwendeten Softwarequelle.
dnf repolist
verwenden DNF-Repolist deaktiviert Befehl zum Anzeigen der vom System deaktivierten Datenquellen.
DNF-Repolist deaktiviert
Nach der Installation der Softwarequelle müssen Sie die installierte Softwarepaketquelle konfigurieren und optimieren. Verwenden Sie Makecache Befehl zum Generieren des Quellcaches.
dnf makecache
Installieren und aktivieren Sie automatische Updates von DNF:
dnf installiere dnf-automatic systemctl starte dnf-automatic.timer
Installieren Sie die Paketgruppe „Development Tools“:
dnf group install 'Entwicklungstools' -y
Aktualisieren Sie Systempakete mit DNF:
dnf -y aktualisieren
Google Cloud Server: Konfigurieren des virtuellen SWAP-Speichers
Die Standardinstallation des Google Cloud-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. So fügen Sie Swap-Speicherplatz für das Betriebssystem CentOS 8 hinzu!
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.
frei -m
Führen Sie sechs Schritte aus, um virtuellen Swap-Speicher zu erstellen:
- Erstellen Sie eine Datei mit vorab zugewiesenem Speicherplatz der angegebenen Größe.
- Sie können den Befehl ls verwenden, um die Dateigröße zu überprüfen.
- Ändern Sie die Berechtigungen der Auslagerungsdatei.
- Formatieren Sie die Auslagerungsdatei.
- Auslagerungsdatei aktivieren;
- Ändern Sie die fstab-Datei, damit der Swap nach dem Neustart automatisch wirksam wird.
Erstellen Sie eine 8G-SWAP-Partition. Wenn Sie den virtuellen SWAP-Speicher vergrößern oder verkleinern möchten, ändern Sie den Wert nach count=.
sudo dd if=/dev/zero of=/swapfile bs=1024 count=8388608 ls -lh /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile sudo vi /etc/fstab
verwenden VI Fügen Sie am Ende der fstab-Datei den folgenden Befehl hinzu:
/swapfile swap swap sw 0 0
Wenn Sie nicht verwenden möchten VI Befehl, oder Sie können es direkt verwenden Echo Befehl zum Festlegen des Swap-Vorgangs beim Booten.
echo '/swapfile swap swap sw 0 0' | sudo tee -a /etc/fstab
Serverzeitsynchronisierung
Installieren Sie das Tool zur Serverzeitsynchronisierung. Die Zeitsynchronisierung zwischen Server und Client ist sehr wichtig.
Überprüfen Sie die aktuelle Zeitzone. Wenn die Zeitzone UTC ist, müssen Sie die Serverzeitzone ändern.
timedatectl status|grep 'Zeitzone' # Zeigt die Hardwarezeit des Servers an hwclock # Synchronisiert die Betriebssystemzeit mit der Hardwarezeit hwclock -w
Serverzeitzone ändern
timedatectl set-timezone Asia/Shanghai timedatectl set-local-rtc 1 # Verwenden Sie den Befehl date, um die aktuelle Serverzeit zu überprüfen. date
Ändern Sie die Server-Zeitzone auf Asien/Shanghai, dann können Sie verwenden Zeitdatumctl Befehl zum Abfragen der Zeitzone.
In CentOS 8 wird das NTP-Paket standardmäßig nicht mehr unterstützt und die Zeitsynchronisierung wird durch Chrony implementiert.
Standardmäßig ist das chrony-Paket nach der Installation des CentOS8-Systems bereits vorhanden. Sie können dies mit rpm -q chrony überprüfen. Falls nicht, können Sie es mit dnf installieren: dnf install chrony
vi /etc/chrony.conf
Server ntp.aliyun.com iburst
Fügen Sie der ersten Zeile den inländischen Zeitsynchronisierungsserver von Alibaba Cloud hinzu und speichern Sie ihn.
Stellen Sie chrony so ein, dass es beim Start ausgeführt wird
systemctl chronyd aktivieren systemctl chronyd starten
Hinzufügen von Benutzern und Benutzergruppen
Bevor Sie Centos8 konfigurieren, müssen Sie Benutzergruppen und Benutzer für Berechtigungen zum Zugriff auf Webdienste hinzufügen.
Gruppenzusatz www Benutzerzusatz -g www www
Nachdem die Benutzer und Benutzergruppen konfiguriert wurden, ist die grundlegende Umgebung von Centos8 fast vollständig eingerichtet. Beginnen wir nun mit der Installation webbezogener Dienste.
Nachdem Centos8 konfiguriert ist, installieren Sie Nginx, PHP8 und MySQL. Achten Sie darauf, die Installationsreihenfolge korrekt zu befolgen. Installieren Sie zuerst Nginx, dann PHP8 und MySQL.Nach der Installation von Nginx ist keine Konfiguration erforderlich. Konfigurieren Sie Nginx nach der Installation von PHP8.
Aktivieren Sie die TCP-BBR-Beschleunigung in CentOS
Wenn der Systemkernel höher als 4.9 ist, ist BBR standardmäßig enthalten
Führen Sie den folgenden Code mit Root-Rechten aus. Die Kernelversion sollte höher als 4.9 sein.
uname -r
2. BBR aktivieren
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
3. Wirksame Änderungen
sysctl -p
Führen Sie den folgenden Befehl aus. Wenn das Ergebnis „bbr“ enthält, ist bbr in Ihrem Kernel aktiviert.
sysctl net.ipv4.tcp_available_congestion_control
Hinweis: Sie können auch den folgenden Befehl ausführen. Wenn im Ergebnis „bbr“ gefunden wird, kann dies auch beweisen, dass „bbr“ in Ihrem Kernel aktiviert ist.
grep bbr
Google Cloud Server-Konfiguration und Installation von Nginx
Die Installation von Nginx ist relativ einfach. Überprüfen Sie nach der Installation die Version. Sie lautet 1.14.1. Die Softwarepakete, die DNF verwenden, sind relativ stabil. Manchmal ist die Version etwas niedriger, was für die offizielle Quelle von CentOS normal ist.
Installieren Sie vor der Installation von Nginx die von Nginx benötigten Abhängigkeiten.
dnf -y installiere zlib zlib-devel pcre pcre-devel openssl openssl-devel gd-devel make gcc gcc-c++
- gcc-Linux-Compiler
- PCRE ist eine Perl-Bibliothek, die eine Perl-kompatible Bibliothek für reguläre Ausdrücke enthält. Das HTTP-Modul von nginx verwendet PCRE zum Parsen regulärer Ausdrücke.
- Die zlib-Bibliothek bietet zahlreiche Komprimierungs- und Dekomprimierungsmethoden. Nginx verwendet zlib, um den Inhalt des HTTP-Pakets zu dekomprimieren.gzip
- OpenSSL ist der Eckpfeiler der Websicherheitskommunikation und stellt auch eine Abhängigkeit von https dar.
Installieren Sie nginx:
Nachdem die von Nginx benötigten Abhängigkeitspakete installiert sind, geben Sie den folgenden Befehl ein, um Nginx zu installieren.
dnf installiere nginx nginx -v
Stellen Sie nach der Installation den Start beim Booten ein:
systemctl aktiviere nginx
Starten Sie Nginx und überprüfen Sie den aktuellen Status von Nginx wie folgt:
systemctl starte nginx systemctl status nginx
Sehen Sie sich den aktuellen Status von Port 80 an:
netstat -na | grep 80
Überprüfen und legen Sie fest, ob der Nginx-Standardport geöffnet ist:
firewall-cmd --query-port=80/tcp
Wenn der Rückgabewert „Nein“ lautet, ist Port 80 nicht geöffnet und Sie müssen eine Firewall einrichten, um den Zugriff auf Port 80 zu ermöglichen.
Öffnen Sie Port 80:
Firewall-Befehl --add-port=80/tcp --permanent Firewall-Befehl --reload
Geben Sie die IP-Adresse des Servers in den Browser ein und prüfen Sie, ob Sie auf die Willkommensseite von nginx zugreifen können.

Nginx wurde erfolgreich installiert. Überprüfen Sie anschließend das Installationsverzeichnis. Das Verzeichnis für die manuelle Installation von Nginx ist normalerweise /usr/local/nginx. Das mit yum/dnf installierte Verzeichnis unterscheidet sich jedoch geringfügig von der manuellen Installation. Hier sind einige entsprechende Verzeichnisse für die Installation von Nginx mit yum/dnf:
- Nginx-Hauptkonfigurationsdatei: /etc/nginx/nginx.conf
- Nginx-Ausführungsdateiverzeichnis: /usr/sbin/nginx
- HTML-Seitenpfad der Nginx-Homepage: /usr/share/nginx/html
- Proxy-Verzeichnis: /var/cache/nginx/proxy_temp
- Nginx-Cache-Verzeichnis: /var/cache/nginx/fastcgi_temp
- scgi-Verzeichnis:/var/cache/nginx/scgi_temp
- uwsgi-Verzeichnis: /var/cache/nginx/uwsgi_temp
- Nginx-Protokollverzeichnis: /var/log/nginx

Verwendung nach der Installation nginx -t Der Befehl prüft, ob die Installation korrekt ist. Wenn sie korrekt ist, wird folgender Inhalt zurückgegeben.
Die integrierte Nginx-Version im Standard-Software-Repository von CentOS8 ist 1.14.1. Kürzlich wurde ein Scan durchgeführt, der ein Upgrade auf Version 1.17.7 oder höher anzeigt. Wenn Sie eine höhere Nginx-Version installieren möchten, überprüfen Sie bitte:So installieren Sie die neueste Version von Nginx auf CentOS8
Google Cloud Server-Konfiguration und Installation von PHP8
Wenn Sie dnf -y installiere PHP Wenn der Befehl zur Standardinstallation von PHP verwendet wird, ist die standardmäßig installierte Version sehr niedrig. Die aktuelle PHP-Version ist PHP 8.1. Sehen wir uns an, wie man PHP 8.1 installiert.
Überprüfen Sie zunächst das System, um die Softwarequelle von PHP8.1 zu installieren:
DNF-Liste PHP

Die PHP-Version im Standard-Repository von Centos8 ist 7.2.24, was zu niedrig ist. Der nächste Schritt besteht darin, zur Remi-Quelle zu wechseln und nach der PHP8.1-Version zu suchen.
Holen Sie sich eine Liste der verfügbaren PHPs:
DNF-Modulliste PHP

Der nächste Schritt besteht darin, das PHP-Modul des Remi-Repositorys zu aktivieren und zuerst das PHP-Modul zurückzusetzen.
Setzen Sie das PHP-Datenquellenmodul zurück:
DNF-Modul zurücksetzen PHP

Als Nächstes richten Sie das neue PHP-Datenquellenmodul ein und aktivieren es. Wir müssen php8.1 installieren, also aktivieren Sie remi-8.1.
DNF-Modul aktivieren php:remi-8.1

Das Modul remi-8.1 wurde aktiviert. Installieren Sie nun php8.1

Geben Sie zur Installation den Installationsbefehl ein:
dnf PHP installieren

Nachdem PHP erfolgreich installiert wurde, installieren Sie einige zusätzliche häufig verwendete PHP-Erweiterungspakete:
dnf install -y php-{mysqlnd,xml,xmlrpc,curl,gd,imagick,mbstring,opcache,soap,zip}
Erweiterungsinstallation für php8.0
dnf install -y php-{mysqlnd,pecl-imagick,pecl-imagick-devel,gd,intl,cli,mbstring,curl,php-pecl-zip}
verwenden DNF-Suche Der Befehl prüft, welche Erweiterungspakete in PHP 8.1 verfügbar sind:
dnf-Suche php81*
Nach einer Suche stellten wir fest, dass es zu viele php81-bezogene Pakete gibt. Wozu dienen sie? Welche sollten installiert werden und welche nicht? Im Folgenden finden Sie eine detaillierte Einführung in das Installationspaket der php8.1-Erweiterung.
PHP8.1 ist bereit. Überprüfen wir, welche Erweiterungspakete installiert sind.
rpm -qa|grep php

Sie können auch php --modules Befehl zum Abfragen der installierten PHP-Erweiterungen.
php --modules
Wenn Sie PHP-Erweiterungen installieren müssen, verwenden Sie einfach den Befehl dnf -y install plus den Namen der Erweiterung, die Sie installieren müssen.
So installieren Sie beispielsweise die mysqlnd-Erweiterung für PHP:
dnf install -y php-mysqlnd

Nachdem alle oben genannten Elemente installiert sind, richten Sie als Nächstes den PHP-Start ein.
systemctl aktiviere php-fpm
verwenden systemctl Befehle sind bequem und schnell zu verwalten. Wenn es ein neues PHP-Paket-Update gibt, können Sie mit dem folgenden Befehl auf die neueste verfügbare Version aktualisieren
DNF-Upgrade
OK, die Installation von PHP 8.1 ist nun offiziell abgeschlossen. Starten Sie den PHP-Dienst und lassen Sie PHP arbeiten.
systemctl aktiviere php-fpm --now
systemctl status php-fpm
Wenn die Statusleuchte grün leuchtet, funktioniert PHP ordnungsgemäß. Es müssen einige PHP-Konfigurationsdateien geändert werden.
PHP8-Konfiguration
Ändern Sie die Datei php.ini
Die Datei php.ini ist die Kernkonfigurationsdatei von PHP. Ändern Sie sie daher mit Vorsicht!
Suchen Sie den Speicherort der php.ini-Datei

php -info | grep php.ini
Bearbeiten Sie die Datei php.ini
verwenden VI Verwenden Sie den Befehl zum Bearbeiten der php.ini-Datei oder melden Sie sich mit SFTP am Server an und bearbeiten Sie die php.ini-Datei mit Notepad. Als SFTP-Client wird XFTP empfohlen.
vi /etc/php.ini
Ändern Sie die Variablen in der Datei auf die folgenden Werte.
#PHP-Fehler drucken: display_errors = on #Speichernutzung auf 256 M erhöhen: memory_limit = 256 M #Datei-Uploadgröße, der Standardwert ist zu klein, es wird empfohlen, ihn auf 1 G, also 1024 M, zu ändern: upload_max_filesize = 1024 M #Maximale Formulargröße, 48 M werden empfohlen: post_max_size = 48 M #Die maximale Ausführungszeit jedes Skripts in Sekunden: max_execution_time=600 #Wie viele GET/POST/COOKIE-Eingabevariablen können akzeptiert werden: max_input_vars = 3000 #Die maximale Zeit, die jedes Skript mit der Analyse der Anforderungsdaten verbringt: max_input_time = 1000
Nachdem die Änderung abgeschlossen ist, speichern und beenden Sie und ändern Sie dann die Datei www.conf von PHP.
Überarbeiten http://www.conf dokumentieren
http://www.conf ist die Konfigurationsdatei des php-fpm-Prozessdienstes.
Benutzergruppe und Benutzernamen ändern, festlegen http://www.conf Die Benutzergruppenberechtigungen für die Datei. http://www.conf Zugriffsberechtigungseinstellungen -R, Benutzer und Benutzergruppe sind auf nginx eingestellt
chown nginx:nginx -R /etc/php-fpm.d/www.conf
bearbeiten http://www.conf Datei, Benutzer- und Benutzergruppenvariablen ändern.
vi /etc/php-fpm.d/www.conf
Wille http://www.conf Variablen in der Datei Benutzer Und Gruppe Alle geändert zu nginx.
Überprüfen Sie nach der Bearbeitung Hören Variable:
Hinweis: Variablen Hören, der Standardwert ist listen = /run/php-fpm/www.sock Wenn Sie 127.0.0.1:9000 für den Zugriff auf PHP in Nginx verwenden möchten, müssen Sie ändern Hören Ändern Sie die Variable in „listen = 127.0.0.1:9000“. Andernfalls können Sie in Nginx nicht mit 127.0.0.1:9000 auf PHP zugreifen.
Ändern Sie als Nächstes den Anforderungstimeoutwert, ändern Sie das Timeout einer einzelnen Anforderung, entfernen Sie das führende Semikolon und ändern Sie den Wert auf 600.
request_terminate_timeout = 600
Drücken Sie nach Abschluss der Änderung :wq, um die Datei zu speichern und zu beenden. Die Datei www.conf wurde geändert.
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
systemctl php-fpm neu laden
PHP ist nun installiert und konfiguriert. Starten Sie den PHP-Dienst oder den Server neu.
Hinweis: Wenn Nginx keinen PHP-Zugriff unterstützt, prüfen Sie, ob die Listen-Variable mit den Nginx-Einstellungen übereinstimmt. Wenn Sie über 127.0.0.1:9000 auf die Datei zugreifen, prüfen Sie, ob Port 9000 in der Firewall geöffnet ist.
netstat -lntp
PHP-Konsolenbefehle
#PHP starten: systemctl start php-fpm #Stoppen: systemctl stop php-fpm #Restarten: systemctl restart php-fpm #Restarten, damit die geänderte Konfiguration wirksam wird: systemctl reload php-fpm #Setzt den Start beim Systemstart: systemctl enable php-fpm #Aktueller Status von PHP: systemctl status php-fpm
Deinstallieren Sie PHP
Wenn Sie den mit dnf installierten PHP-Dienst deinstallieren möchten, können Sie den Deinstallationsbefehl ausführen:
Hinweis: Wenn Sie PHP manuell kompiliert und installiert haben,entfernen Der Deinstallationsbefehl ist ungültig. Deinstallieren Sie zuerst das PHP-Hauptprogramm und entfernen Sie dann das systemeigene PHP-Common.
dnf entfernen php dnf entfernen -y php-common
Deaktivieren Sie SELinux
existieren CentOS 8 Dauerhaft deaktivieren SELinux
vi /etc/selinux/config
Wille SELinux Die Eigenschaft ist eingestellt auf Deaktiviert Starten Sie anschließend den Server neu.
Google Cloud Server-KonfigurationNginx konfigurieren
Im Folgenden wird nginx1.20.1 als Beispiel verwendet:
Bearbeiten Sie nginx.conf
Wenn Sie normal auf die Website zugreifen möchten, müssen Sie die Nginx-Konfigurationsdatei nginx.conf bearbeiten und ändern. Dabei handelt es sich um die Kernkonfigurationsdatei von Nginx. VI Befehl zum Bearbeiten von /etc/nginx/nginx.conf.
vi /etc/nginx/nginx.conf
Das Folgende ist ein Beispiel einer einfachen nginx.conf-Datei, nur als Referenz:
Benutzer nginx; #Benutzer oder Gruppe konfigurieren, der Standard ist nobody nobody. worker_processes auto; #Die Anzahl der Prozesse, die generiert werden dürfen, der Standard ist 1 pid /run/nginx.pid; #Speicheradresse der laufenden Nginx-Prozessdatei angeben error_log /var/log/nginx/error.log error; #Pfad und Ebene des Fehlerprotokolls angeben. Diese Einstellung kann im globalen Block, HTTP-Block, Serverblock vorgenommen werden, die Ebenen sind: debug|info|notice|warn|error|crit|alert|emerg, je höher die Ebene, desto weniger Aufzeichnungen, im Allgemeinen Fehler festlegen #Lynamische Module laden. include /usr/share/nginx/modules/*.conf; #Arbeitsmodus und Obergrenze der Verbindungsanzahl - EreignisseGlobale Einstellung von Ereignissen { accept_mutex on; #Netzwerkverbindungsserialisierung festlegen, um Panik zu vermeiden, der Standard ist aktiviert multi_accept on; #Legen Sie fest, ob ein Prozess mehrere Netzwerkverbindungen gleichzeitig akzeptiert, die Standardeinstellung ist deaktiviert #Verwenden Sie epoll; #Ereignisgesteuertes Modell, select|poll|kqueue|epoll|resig|/dev/poll|eventport worker_connections 4096; #Die maximale Anzahl zulässiger Verbindungen für einen einzelnen Arbeitsprozess, die Standardeinstellung ist 512 } #http-Serverkonfigurationsdateiblock http { log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #Protokollformat anpassen access_log /var/log/nginx/access.log myFormat; #Zugriffsprotokollpfad und -format festlegen. „Kombiniert“ ist der Standardwert des Protokollformats. „rewrite_log“ ein; #Zugriffsprotokoll des Dienstes abbrechen „sendfile“ ein; # „sendfile“ zum Übertragen von Dateien zulassen, der Standardwert ist „aus“, kann im HTTP-Block, Serverblock oder Standortblock sein. „sendfile_max_chunk“ 0; #Die Anzahl der Übertragungen pro Aufruf pro Prozess kann nicht größer als der festgelegte Wert sein, der Standardwert ist 0, d. h., es gibt keine Obergrenze. „keepalive_timeout“ 1000; #Verbindungstimeout, der Standardwert ist 75 s, kann im HTTP-, Server- oder Standortblock sein. „client_max_body_size“ 1024 m; „types_hash_max_size“ 4096; „tcp_nodelay“ ein; „tcp_nopush“ ein; Standardtyp „Anwendung/Oktett-Stream“; #Standarddateityp, Standard ist Text/Plain fastcgi_connect_timeout 3000; #fastcgi-Verbindungstimeout, Standard ist 60 Sekundenfastcgi_send_timeout 3000; #Timeout für Nginx-Prozess, um Anfrage an Fastcgi-Prozess zu senden, Standard ist 60 Sekundenfastcgi_read_timeout 3000; #Timeout für Fastcgi-Prozess, um Ausgabe an Nginx-Prozess zu senden, Standard ist 60 Sekundengzip ein; #gzip-Komprimierungsschalter, ein schaltet Gzip-Komprimierung ein, Standard ist aus schaltet ausgzip_min_length 1k; # Aktiviert die Mindestdatei für Gzip-Komprimierung, Dateien, die kleiner als der eingestellte Wert sind, werden nicht komprimiertgzip_comp_level 9; # gzip-Komprimierungsstufe, 1-9, je höher die Zahl, desto besser die Komprimierung, benötigt aber auch mehr CPU-Zeitgzip_buffers 4 16k; # Legt die für die Komprimierung erforderliche Puffergröße festgzip_http_version 1.1; # Legt die HTTP-Protokollversion für die gzip-Komprimierung fest, die ignoriert werden kann, wenn keine Nutzlast verwendet wirdgzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml; # Die zu komprimierenden Dateitypen. Es gibt viele Formen von Javascript. Die Werte können in der Datei mime.types gefunden werden. gzip_vary on; # Ob Vary: Accept-Encoding im HTTP-Header hinzugefügt werden soll, wird empfohlen, gzip_disable "MSIE [1-6]\." zu aktivieren; # IE 6 gzip deaktivieren gzip_proxied off; ssl_session_cache shared:le_nginx_SSL:10m; ssl_session_timeout 1440m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers off; ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"; include /etc/nginx/mime.types; #-Dateierweiterung und Dateityp-Zuordnungstabelle. Legen Sie den MIME-Typ (Mail-Support-Typ) fest. Der Typ wird in der Datei mime.types definiert. include /etc/nginx/conf.d/*.conf; # Lädt modulare Konfigurationsdateien aus dem Verzeichnis /etc/nginx/conf.d. }
Herstellen einer Verbindung mit FastCGI
Wenn Sie PHP-Skripte zum Erstellen einer Website verwenden möchten, müssen Sie Nginx auch zur Unterstützung von PHP einrichten.
Im Folgenden wird das PHP-Serviceverbindungsmodul vorgestellt. /etc/nginx/default.d Katalog, Ansicht php.conf Diese Datei wird bei der Installation von PHP automatisch generiert und muss nicht geändert werden. Sie wird verwendet, um PHP-Skripte an den FastCGI-Server zu übergeben.
# übergibt die PHP-Skripte an den FastCGI-Server # # Siehe conf.d/php-fpm.conf für die Socket-Konfiguration # index index.php index.html index.htm; location ~ \.(php|phar)(/.*)?$ { fastcgi_split_path_info ^(.+\.(?:php|phar))(/.*)$; fastcgi_intercept_errors on; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_pass php-fpm; }
Eingeben /etc/nginx/conf.d Verzeichnis, im Verzeichnis php-fpm.conf Es sind keine Änderungen an der Datei erforderlich. php-fpm.conf Es wird bei der Installation von PHP8.1 automatisch generiert.php.confTeil des PHP-Skripts, der zur Übergabe an den FastCGI-Server verwendet wird.
# PHP-FPM FastCGI-Server #-Netzwerk oder Unix-Domain-Socket-Konfiguration Upstream php-fpm { Server unix:/run/php-fpm/www.sock; }
existieren /etc/nginx/conf.d Neu im Katalog default.conf Datei oder erstellen Sie eine benutzerdefinierte .conf-Datei. server{...} enthält den Inhalt der Website-Konfiguration.
Dies ist nur ein Testbeispiel. Die Serverkonfiguration in einer Produktionsumgebung ist wesentlich komplizierter.
Server { listen 443 ssl http2; listen [::]:443 ssl http2; Servername XXX.com; Root /home/www; Index index.php index.html index.htm; SSL-Zertifikat "/etc/letsencrypt/live/***/fullchain.pem"; # SSL-Zertifikatadresse SSL-Zertifikatschlüssel "/etc/letsencrypt/live***/privkey.pem"; # SSL-Zertifikatadresse SSL-Sitzungscache geteilt: SSL: 1 Min.; SSL-Sitzungstimeout 10 Min.; Gültigkeitsdauer des #-Cache SSL-Chiffren ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #-Verschlüsselungsalgorithmus ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # sichere Verbindung optionales Verschlüsselungsprotokoll ssl_prefer_server_ciphers ein; # verwendet den bevorzugten Algorithmus des Servers #-Konfiguration für 0-RTT in TLSv1.3 ssl_early_data ein; ssl_stapling ein; ssl_stapling_verify ein; add_header Strict-Transport-Security "max-age=31536000"; include /etc/nginx/default.d/*.conf; # lädt die Standard-Serverblock-Konfigurationsdatei aus /etc/nginx/default.d. # pseudostatischer Seitenspeicherort / { try_files $uri $uri/ /index.php?$args; } # Reverse-Proxy-Standort /update32/ { proxy_redirect aus; proxy_read_timeout 1200s; proxy_pass http://127.0.0.1:20892; proxy_http_version 1.1; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Verbindung "Upgrade"; proxy_set_header Early-Data $ssl_early_data; } }
Fügen Sie Zugriffsberechtigungen für das Webspeicherverzeichnis hinzu:
chown nginx:nginx -R /home/www
Nachdem die Konfiguration abgeschlossen ist, erstellen Sie eine neue Datei index.php im Verzeichnis /home/www und fügen Sie den folgenden Code ein:
<?php phpinfo(); ?>
Dies ist ein PHP-Testcode. Fügen Sie den Code in die Datei index.php ein, speichern Sie die Datei und starten Sie den Server anschließend als Root neu.
Besuchen Sie das offizielle PHP FastCGI-Beispiel von Nginx
In Nginx aufgetretene Probleme:
Der Fehler „nginx: [emerg] unbekannte Direktive „ “ in /etc/nginx/conf.d/“ tritt aufgrund eines Problems bei der Speicherplatzkonvertierung beim Hochladen per SFTP unter Windows auf. Dieses Problem tritt bei der VI-Bearbeitung unter Linux nicht auf.
Deinstallieren Sie Nginx
Wenn Sie alle mit dnf installierten Nginx deinstallieren möchten, können Sie den Deinstallationsbefehl ausführen:
dnf nginx entfernen
Nginx-Konsolenbefehle
Starten: systemctl start nginx Stoppen: systemctl stop nginx Neustarten (nginx nicht stoppen, damit die geänderte Konfiguration wirksam wird): systemctl reload nginx Neustarten: systemctl restart nginx Start festlegen: systemctl enable nginx Start deaktivieren: systemctl disable nginx Dienststatus anzeigen: systemctl status nginx
Die Installation von Nginx ist hiermit abgeschlossen. Beginnen wir nun mit der Installation des MySQL-Datenbankdienstes.
Google Cloud Server-Konfiguration und Installation von MySQL
Centos8 verwendet dnf, um MySQL zu installieren. Überprüfen Sie zunächst, ob MySQL im System installiert wurde.
rpm -qa |grep -i mysql
Falls MySQL noch nicht auf dem Server installiert war, installieren Sie es jetzt. Falls MySQL bereits installiert war, deinstallieren Sie es mit dem Befehl „Remove“.
Finden Sie zunächst heraus, welche Versionen in der Datenquelle vorhanden sind.
dnf-Liste MySQL*

Installieren Sie MySQL 8.0
Die offizielle Centos-Softwarequelle enthält nur die Version 8.0.26. Wenn Sie eine höhere Version installieren möchten, müssen Sie andere Datenquellen verwenden.
dnf -y installiere MySQL-Server

Starten Sie MySQL nach erfolgreicher Installation und richten Sie es so ein, dass es beim Booten gestartet wird.
#MySQL starten systemctl start mysqld #Boot-Start festlegen systemctl enable mysqld #Installierte MySQL-Version prüfen mysqladmin --version
Überprüfen Sie abschließend den Status des installierten MySQL 8.0.
systemctl status mysqld

OK, das grüne Licht leuchtet, alles ist normal! Als nächstes konfigurieren Sie den MySQL-Server.
Google Cloud Server-Konfiguration MySQL
laufen mysql_secure_installation Skript, das einige sicherheitsrelevante Aktionen ausführt und das MySQL-Root-Passwort festlegt:
sudo mysql_secure_installation

Die Komponente „Passwort validieren“ dient zum Testen von Passwörtern und zur Verbesserung der Sicherheit. Sie prüft die Stärke von Passwörtern und ermöglicht es Benutzern, nur solche Passwörter festzulegen,
Sicher genug. Möchten Sie die Komponente „Passwort validieren“ festlegen?
eingeben:Y , drücken Sie die Eingabetaste, um die Konfiguration aufzurufen.

Wählen Sie die Richtlinienebene für die Kennwortüberprüfung aus und geben Sie Folgendes ein: 0 (niedrig)
Geben Sie ein neues Passwort ein. Das Passwort muss mehr als 8 Zeichen lang sein und Großbuchstaben, Kleinbuchstaben, Zahlen und Sonderzeichen enthalten. Bestätigen Sie anschließend das von Ihnen festgelegte Passwort.

Bestätigen Sie, ob Sie das angegebene Passwort weiterhin verwenden möchten, und geben Sie Folgendes ein:Y

MySQL-Installationen verfügen standardmäßig über einen anonymen Benutzer, der es jedem ermöglicht, sich anzumelden, ohne ein Benutzerkonto erstellen zu müssen. Dieser Benutzername dient nur zu Testzwecken und um die Installation zu vereinfachen. Sie sollten ihn entfernen, bevor Sie in eine Produktionsumgebung wechseln.
Möchten Sie anonyme Benutzer entfernen? Geben Sie Folgendes ein: Y

Deaktivieren Sie die Remote-Anmeldung bei MySQL mit root. Geben Sie Folgendes ein: N

MySQL verfügt standardmäßig über eine Datenbank namens „Test“, auf die jeder zugreifen kann. Diese dient ebenfalls nur zu Testzwecken und sollte vor dem Einsatz in einer Produktionsumgebung entfernt werden.
Entfernen Sie die Testdatenbankeingabe, die mit MySQL geliefert wird:Y

Durch das Neuladen der Berechtigungstabellen wird sichergestellt, dass alle bisher vorgenommenen Änderungen sofort wirksam werden.
Um die Berechtigungstabelle neu zu laden, geben Sie Folgendes ein:Y
MySQL 8.0 ist standardmäßig eingestelltutf8mb4Zeichensatz, sodass der Zeichensatz nicht mehr geändert wird. MySQL wurde in diesem Schritt erfolgreich konfiguriert!
Konfigurieren Sie die MySQL-Remoteanmeldung
Hinweis: Wenn Sie die Remote-Anmeldung für das Root-Konto einrichten müssen, wiederholen Sie den vorherigen Schritt, erlauben Sie dann die Remote-Anmeldung für Root und setzen Sie sie auf „Y“.
Nächste Verwendung mysql -u root -p Führen Sie den Befehl aus, um sich bei MySQL anzumelden, und setzen Sie das Hostfeld des Root-Benutzers auf „%“, was bedeutet, dass Anmeldeanforderungen von allen IP-Adressen des Root-Benutzers akzeptiert werden.
UPDATE USER SET host='%' WHERE user='root';
Starten Sie nach der Einstellung den MySQL-Dienst neu:
systemctl startet mysqld neu
MySQL-Konsolenbefehle
Starten: systemctl start mysqld Stoppen: systemctl stop mysqld Neustarten: systemctl restart mysqld Start festlegen: systemctl enable mysqld Start deaktivieren: systemctl disable mysqld Dienststatus anzeigen: systemctl status mysqld
Damit ist die Installation abgeschlossen! Die Linux-Umgebung von PHP, MySQL und Nginx wurde erfolgreich erstellt.
Sehr empfehlenswert: Google Cloud Server ist der bisher leistungsstärkste kostenlose Cloud-Server, der die tatsächlichen Anforderungen der meisten Websites erfüllen kann!