LAMP-Architektur(Auf demselben Server erstellt) 1.LampeneinführungLamp ist ein Open-Source-Softwarepaket für dynamische Websites oder Server, das aus Linux+Apache+MySQL/MariaDB+PHP/Perl/Python besteht. Abgesehen von Linux sind die anderen Teile verschiedene unabhängige Programme, die häufig zusammen verwendet werden und eine starke Kompatibilität aufweisen, wodurch eine leistungsstarke Webanwendungsplattform entsteht. Linux (Betriebssystem), Apache (HTTP-Server), Mysql (MariaDB, Datenbanksoftware), PHP (Perl oder Python), Erstellen einer Webanwendungsplattform 2. Webservice-WorkflowWebserverressourcen werden in zwei Kategorien unterteilt: statische und dynamische RessourcenStatische Ressourcen: Statischer Inhalt. Die Ausdrucksform der vom Client vom Server erhaltenen Ressourcen ist dieselbe wie die Quelldatei. Es handelt sich um die Ressourcen, die direkt im Dateisystem gespeichert sind (.mp3/.mp4/.jpg/.gif). Dynamische Ressourcen: normalerweise Programmdateien, die auf dem Server ausgeführt werden müssen und dann die ausgeführte Struktur an den Client zurückgeben (.php/.asp/.py/.net) Wie verarbeitet ein Webserver Clientanfragen? Phase 1 zeigt, dass der HTTPD-Server (Apache) und der PHP-Server über das FastCGI-Protokoll kommunizieren und PHP als separater Serviceprozess ausgeführt wird. Phase 2 zeigt, dass der PHP-Server und der MySQL-Server über das MySQL-Protokoll kommunizieren. PHP hat keine Verbindung zu MySQL selbst, aber in PHP geschriebene Programme können mit MySQL interagieren. Ebenso können in Python und Perl geschriebene Programme mit MySQL-Datenbanken interagieren. 2.1cgi und fastcgiCGI (gemeinsame Gateway-Schnittstelle)CGI ist der Schnittstellenstandard zwischen externen Anwendungen (CGI-Programmen) und Webdiensten und bezeichnet den Prozess der Informationsübertragung zwischen CGI-Programmen und Webservern. Die CGI-Spezifikation ermöglicht es Webservern, externe Programme auszuführen und ihre Ausgabe an den Webserver zu senden, wodurch eine Reihe einfacher statischer Hypermediadokumente im Web in ein komplettes interaktives Medium umgewandelt wird. FastCGI (Fast common Gateway Interface) ist eine verbesserte Version von CGICGI verarbeitet jede Aufgabenanforderung, indem es einen Interpreterprozess startet, was zeitaufwändig und ressourcenintensiv ist. FastCGI verarbeitet jede Anforderung in einer Master-Worker-Form. Es startet einen Masterprozess und je nach Konfiguration mehrere Workerprozesse. Wenn eine Anforderung eingeht, wählt der Master einen aus den Workerprozessen aus, um die Anforderung zu verarbeiten. Dadurch wird eine wiederholte Generierung und häufige CPU-Auslastung durch Killerprozesse vermieden. 2.2 Kombination aus httpd und PHPDrei Möglichkeiten für PHP und httpd:
Am häufigsten wird FastCGI verwendet, und nur wenige Leute nutzen CGI zum Laden dynamischer Ressourcen. 2.3 Web-Workflow
3.LAMP-PlattformkonstruktionUmfeld:
Die Reihenfolge der Lampeninstallation:
Beachten Sie, dass für PHP die Installation von httpd mithilfe von Prefock MPM erforderlich ist und dass für die Installation Lamp verwendet wird. 3.1 Installieren Sie httpd#redhat-Quelle[root@clq ~]# cat /etc/yum.repos.d/CentOS-Stream- CentOS-Stream-AppStream.repo CentOS-Stream-HighAvailability.repo CentOS-Stream-BaseOS.repo CentOS-Stream-Media.repo CentOS-Stream-Debuginfo.repo CentOS-Stream-PowerTools.repo CentOS-Stream-Extras.repo CentOS-Stream-RealTime.repo #Epel-Quelle installieren [root@clq ~]# yum -y install epel-release #Paketgruppe anzeigen [root@clq ~]# yum grouplist #Paketgruppe installieren [root@clq ~]# dnf -y groups mark install "Development Tools" #Apache-Benutzer erstellen [root@clq ~]# useradd -r -M -s /sbin/nologin apache #Installieren Sie abhängige Pakete (openssl-devel: Modul für verschlüsselte Übertragung) [root@cb ~]# yum -y installiere openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ make #Laden Sie apr, apr-util und httpd herunter und installieren Sie sie [root@cb ~]# cd /usr/src/ #Verwenden Sie wget, um drei Pakete herunterzuladen#Tar dekomprimieren Sie das Paket#Geben Sie das zu ändernde apr-Paket ein [root@cb apr-1.7.0]# vim configure cfgfile="${ofile}T" Falle "$RM \"$cfgfile\"; Ausgang 1" 1 2 15 $RM "$cfgfile" #Löschen oder kommentieren Sie diese Zeile #apr-Kompilierung in drei Schritten./configure --prefix=/usr/local/apr machen installieren #apr-util kompilieren Sie drei Schritte./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr machen installieren #httpd kompilieren drei Schritte./configure --prefix=/usr/local/apache \ --sysconfdir=/etc/httpd24 \ --enable-so \ --enable-ssl \ --enable-cgi \ --enable-rewrite \ --mit-zlib \ --mit-pcre \ --with-apr=/usr/local/apr \ --with-apr-util=/usr/local/apr-util/ \ --enable-modules=die meisten \ --enable-mpms-shared=alle \ --with-mpm=Vorverzweigung machen installieren #Konfigurieren Sie nach der Installation die Umgebungsvariablen: echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/apache.sh Lesen: Quelle /etc/profile.d/httpd.sh Header-Dateizuordnung: ln -s /usr/local/apache/include /usr/include/httpd Hilfedokument: vim /etc/man_db.conf 22 MANDATORY_MANPATH /usr/local/share/man 23 MANDATORY_MANPATH /usr/local/apache/man #ServerName auskommentieren (die Warnmeldung ist irrelevant) [root@cb src]# vim /etc/httpd24/httpd.conf ServerName #Apache starten [root@cb src]# systemctl stoppe Firewall [root@cb src]# systemctl deaktiviert Firewall [root@cb src]# /usr/local/apache/bin/apachectl start [root@cb src]# ss -antl Status Recv-Q Send-Q Lokale Adresse:Port Peer-Adresse:Port Prozess LISTEN 0 128 0.0.0.0:22 0.0.0.0:* HÖREN 0 128 *:80 *:* HÖREN 0 128 [::]:22 [::]:* #Hinweis zum Löschen des systemeigenen Apache #Schreiben Sie die Servicedatei, um den automatischen Start zu realisieren. #Schreiben Sie die Datei httpd.service: vim /etc/systemd/system/httpd.service Zwei spezifische Pfade in der Datei: .Konfigurationsdateipfad: /etc/httpd24/httpd.conf .Programmdateipfad: /usr/local/apache/bin/httpd #Systemladedatei: systemctl daemon-reload #Starten Sie systemctl start httpd #Selbststart systemctl enable httpd [root@clq ~]# vim /etc/systemd/system httpd.service [root@clq-System]# cat httpd.service [Einheit] Beschreibung=httpd starten [Service] Typ=einfach EnvironmentFile=/etc/httpd24/httpd.conf ExecStart=/usr/local/apache/bin/httpd -k start -DFOREGROUND ExecReload=/usr/local/apache/bin/httpd -k ordnungsgemäß ExecStop=/bin/kill -WINCH ${MAINPID} [Installieren] WantedBy=Mehrbenutzer.Ziel 3.2 MySQL installieren#Abhängige Pakete installieren (cmake: Tool zur automatischen Konfiguration kompilieren) dnf -y installiere ncurses-devel openssl-devel openssl cmake mariadb-devel #Benutzer erstellen useradd -r -M -s /sbin/nologin mysql #Laden Sie das mysql5.7.31-Paket herunter. #Entpacken Sie es und legen Sie es in /usr/local ab. #Ändern Sie den Namen für eine einfachere Bedienung. cd /usr/local mv mysql5.7.31 mysql #Eigentümer ändern chown -R mysql.mysql mysql/ #Umgebungsvariable echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh Quelle /etc/profile.d/mysql.sh #Headerdatei-Zuordnung ln -s /usr/local/mysql/include /usr/include/mysql #Bibliotheksdatei vim /etc/ld.so.conf.d/mysql.conf /usr/local/mysql/lib ldconfig #Lesen Sie das Hilfedokument vim /etc/man_db.conf noch einmal 23 MANDATORY_MANPATH /usr/local/apache/man 24 MANDATORY_MANPATH /usr/local/mysql/man #Datenverzeichnis erstellen mkdir /opt/data chown -R mysql.mysql /opt/data # Initialisieren Sie mysqld --initialize --user=mysql --datadir=/opt/data #Konfigurationsdatei cat >/etc/my.cnf <<EOF schreiben [mysqld] basedir = /usr/local/mysql #Installationsverzeichnisdatadir = /opt/data #Datenverzeichnissocket = /tmp/mysql.sock #socketuser = mysql #Benutzerport = 3306 #Portnummerpid-file = /opt/data/mysql.pid #Prozessnummer fileskip-name-resolve #Domänennamenauflösung überspringenEOF exit#Skript schreibencp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld vim /etc/init.d/mysqld Datenverzeichnis=/opt/Daten basedir=/usr/local/mysql #Starten Sie MySQL Dienst MySQLD starten ss-antl #Installieren Sie das Paket libncurses.so.5 yum whatprovides libncurses.so.5 yum -y installiere ncurses-compat-libs #MySQL-Passwort ändern: setze Passwort = Passwort ('Centos8.0!') # Stellen Sie sicher, dass chkconfig --add mysqld beim Booten automatisch gestartet wird chkconfig mysqld auf chkconfig --list 3.3 PHP installieren#centos8 kann PHP mit yum installieren. PHP ist eine Sprache. Installieren Sie Version 7.2 oder höher. yum -y install php* 3.4 PHP konfigurieren#php-Konfiguration vim /etc/php-fpm.d/www.conf 38 ;listen = /run/php-fpm/www.sock #Kommentare entfernen 39 listen = 127.0.0.1:9000 #Diese Zeile hinzufügen 65 listen.allowed_clients = 127.0.0.1 mkdir -p /data/php #PHP-Verzeichnis erstellen chown -R apache.apache /data/ #Eigentümer ändern vim /data/php/index.php #Datei index.php schreiben phpinfo(); ?> #System neu startenctl restart php-fpm.service 3.4.4PHP-Kompilierung und -InstallationCentOS 8 und frühere Versionen //Yum-Quelle konfigurieren [root@localhost ~]# wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm [root@localhost ~]# rpm -Uvh remi-release-7.rpm [root@localhost ~]# yum makecache --enablerepo=remi-php74 //Abhängige Pakete installieren [root@localhost ~]# yum -y installiere libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libicu-devel libjpeg libjpeg-devel libpng libpng-devel openldap-devel pcre-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel mhash mhash-devel php72-php-mysqlnd Der Installationsvorgang ist kurz … //PHP herunterladen [root@localhost ~]# cd /usr/src/ [root@localhost src]# wget http://cn.php.net/distributions/php-7.2.8.tar.xz Downloadvorgang kurz zusammengefasst.... // PHP kompilieren und installieren [root@localhost src]# tar xf php-7.2.8.tar.xz [root@localhost src]# cd php-7.2.8 [root@localhost php-7.2.8]# ./configure --prefix=/usr/local/php7 \ --with-config-file-path=/etc \ --enable-fpm \ --enable-inline-optimization \ --disable-debug \ --disable-rpath \ --enable-shared \ --enable-soap \ --mit-openssl \ --enable-bcmath \ --mit-iconv \ --mit-bz2 \ --enable-calendar \ --mit-curl \ --enable-exif \ --enable-ftp \ --mit-gd \ --with-jpeg-dir \ --with-png-dir \ --with-zlib-dir \ --with-freetype-dir \ --mit-gettext \ --enable-json \ --enable-mbstring \ --enable-pdo \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --mit-readline \ --enable-shmop \ --enable-simplexml \ --enable-sockets \ --enable-zip \ --enable-mysqlnd-compression-support \ --mit-Birne \ --enable-pcntl \ --enable-posix [root@localhost php-7.2.8]# make -j $(cat /proc/cpuinfo |grep Prozessor|wc -l) Der Kompilierungsprozess wird ausgelassen [root@localhost php-7.2.8]# make install Installationsvorgang ausgelassen // Konfiguration nach der Installation [root@localhost ~]# echo 'export PATH=/usr/local/php7/bin:$PATH' > /etc/profile.d/php7.sh [root@localhost ~]# Quelle /etc/profile.d/php7.sh //Konfiguration nach der Installation [root@localhost ~]# echo 'export PATH=/usr/local/php7/bin:$PATH' > /etc/profile.d/php7.sh [root@localhost ~]# Quelle /etc/profile.d/php7.sh [root@localhost php-7.2.8]# welches php /usr/local/php7/bin/php [root@localhost php-7.2.8]# php -v PHP 7.2.8 (cli) (erstellt: 16. August 2018 13:27:30) (NTS) Copyright (c) 1997-2018 Die PHP-Gruppe Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies //php-fpm konfigurieren [root@localhost php-7.2.8]# cp php.ini-Produktion /etc/php.ini [root@localhost php-7.2.8]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm [root@localhost php-7.2.8]# chmod +x /etc/rc.d/init.d/php-fpm [root@localhost php-7.2.8]# cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf [root@localhost php-7.2.8]# cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf //Bearbeiten Sie die php-fpm-Konfigurationsdatei (/usr/local/php7/etc/php-fpm.conf): //Konfigurieren Sie die fpm-bezogenen Optionen auf die Werte, die Sie benötigen: [root@localhost ~]# vim /usr/local/php7/etc/php-fpm.conf ..... ..... pm.max_children = 50; Bis zu 50 Prozesse gleichzeitig bereitstellen und 50 gleichzeitige Dienste bereitstellen pm.start_servers = 5; 5 Prozesse beim Start starten pm.min_spare_servers = 2; Mindestanzahl inaktiver Prozesse pm.max_spare_servers = 8; Maximale Anzahl inaktiver Prozesse [root@localhost ~]# tail /usr/local/php7/etc/php-fpm.conf ; Datei. ; Es können auch relative Pfade verwendet werden. Diese werden mit folgendem Präfix versehen: ; - das globale Präfix, falls es gesetzt wurde (Argument -p) ; - andernfalls /usr/local/php7 include=/usr/local/php7/etc/php-fpm.d/*.conf pm.max_kinder = 50 pm.start_servers = 5 pm.min_spare_servers = 2 pm.max_spare_servers = 8 //Starten Sie php-fpm [root@localhost ~]# Dienst php-fpm start Starten von php-fpm abgeschlossen //Standardmäßig lauscht fpm auf Port 9000 von 127.0.0.1. Sie können auch den folgenden Befehl verwenden, um zu überprüfen, ob es auf dem entsprechenden Socket lauscht [root@localhost ~]# ss -antl Status Recv-Q Send-Q Lokale Adresse:Port Peer-Adresse:Port HÖREN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 127.0.0.1:9000 *:* HÖREN 0 128 :::80 :::* HÖREN 0 128 :::22 :::* HÖREN 0 100 ::1:25 :::* HÖREN 0 80 :::3306 :::* [root@localhost ~]# ps -ef|grep php root 81070 1 0 14:13 ? 00:00:00 php-fpm: Masterprozess (/usr/local/php7/etc/php-fpm.conf) niemand 81071 81070 0 14:13 ? 00:00:00 php-fpm: Pool www niemand 81072 81070 0 14:13 ? 00:00:00 php-fpm: Pool www niemand 81073 81070 0 14:13 ? 00:00:00 php-fpm: Pool www niemand 81074 81070 0 14:13 ? 00:00:00 php-fpm: Pool www niemand 81075 81070 0 14:13 ? 00:00:00 php-fpm: Pool www root 81079 83354 0 14:15 Punkte/1 00:00:00 grep --color=auto php 3.5 Apache konfigurierenApache 2.4 und höher hat eine Implementierung für FastCGI, das Modul ist mod_proxy_fcgi.so, es ist eigentlich eine Erweiterung des Moduls mod_proxy.so, also müssen beide Module geladen werden, bearbeiten Sie die Datei httpd.conf, heben Sie die Kommentierung der beiden Zeilen auf vim /etc/httpd24/httpd.conf Lademodul proxy_module module/mod_proxy.so Lademodul proxy_fcgi_module module/mod_proxy_fcgi.so Oder ändern mit sed: sed -i '/proxy_module/s/#//g' /etc/httpd24/httpd.conf sed -i '/proxy_fcgi_module/s/#//g' /etc/httpd24/httpd.conf Dateipfad der Apache Yum-Installationswebseite: /var/www/html Dateipfad der Installationswebseite des Apache-Quellcodes: /usr/local/apache/htdocs Konfigurieren virtueller Hosts Fügen Sie dem virtuellen Host, der fcgi verwenden muss, zwei Zeilen hinzu: ProxyRequests Off #Weiterleitungsproxy ProxyPassMatch ausschalten ^/(.*\.php)$ fcgi://127.0.0.1:9000/网页目录/redhat.com/$1 #Die obigen Einstellungen bedeuten, dass Dateien mit der Endung .php an den php-fpm-Prozess gesendet werden. php-fpm muss mindestens das Verzeichnis und die URL des laufenden Prozesses kennen. Diese beiden Parameter sind nach fcgi benannt. Andere Parameter werden von mod——proxy_fcgi.so gekapselt und müssen nicht manuell angegeben werden. #redhat ist der Domänenname#$1 bedeutet, dass alle httpd-Anfragen mit der Endung .php übereinstimmen. /etc/httpd24/httpd.conf #Hauptkonfigurationsdatei [root@clq ] vim /etc/httpd24/httpd.conf #Geben Sie die Hauptkonfigurationsdatei ein, um eine Konfigurationsdatei für den virtuellen Host hinzuzufügen [root@clq ] vim /etc/httpd24/extra/vhosts.conf #Bearbeiten Sie die Konfigurationsdatei für den virtuellen Host <VirtualHost *:80> DocumentRoot "/data/php/" #Dateispeicherpfad ServerName www.clq.com #Domänenname DirectoryIndex index.php ProxyRequests aus ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/data/php/$1 <Verzeichnis "/data/php/"> Optionen keine AllowOverride keine Erfordern alle gewährten </Verzeichnis> </VirtualHost> [root@clq] vim /etc/httpd24/httpd.conf 203 ServerName 0.0.0.0.com:80 #Ändern 261 DirectoryIndex index.php index.html #Index.php in der Mitte hinzufügen 399 AddType application/x-httpd-php .php #Fügen Sie diese Zeile hinzu 400 AddType application/x-httpd-php-source .phps #Fügen Sie diese Zeile hinzu 488 # 489 Include /etc/httpd24/httpd/extra/vhosts.conf #Fügen Sie diese Zeile hinzu#Starten Sie systemctl restart httpd neu 4. Blog-Erstellung 1Download-Adresse: https://wordpress.org/download/#download-install #Entpacken Sie das Paket [root@clq ~]# unzip wordpress-5.7.2.zip #Legen Sie alle entpackten Pakete in /data/php ab [root@clq ~]# mv wordpress/* /data/php/ Besuchen Sie uns noch einmal: #Datenbankberechtigungenmysql> gewähre alles auf *.* an root@'192.168.136.219', identifiziert durch 'huawei@123'; Abfrage OK, 0 Zeilen betroffen, 1 Warnung (0,00 Sek.) mysql> Berechtigungen leeren; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) #Datenbank WordPress erstellen mysql> Datenbank WordPress erstellen; 5. Selektive Verwendung der DienststartkonfigurationOben finden Sie den detaillierten Inhalt des Tutorials zur Installation des LAMP-Quellcodes für Unternehmen. Weitere Informationen zur Installation des LAMP-Quellcodes für Unternehmen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung zur JavaScript-Datenabflachung
>>: So rufen Sie mit dem Flash-Plugin die Kamera des PCs auf und binden diese in die TML-Seite ein
Suchen Sie immer noch nach einer Möglichkeit, Hyp...
Erstens weiß ich nicht, warum ich mich über die B...
Was ist eine Tabelle? Es besteht aus Zellenzellen...
HTTP-Header-Erklärung 1. Akzeptieren: Informiert d...
1. Grundlegende Syntaxstruktur der HTML-Senden- u...
In diesem Artikel wird der spezifische Code des W...
Das neue Projekt ist im Grunde abgeschlossen. Es ...
Bei Datenbanken, die schon lange laufen, besteht ...
1. Laden Sie die MySQL-Tar-Datei herunter: https:...
Grundlegende Konzepte Vor dem Betrieb müssen Sie ...
Lösen Sie das Problem, dass der vom Server nach d...
Inhaltsverzeichnis 1. Softwarepaket 2. Installier...
Zu den MySQL-Variablen zählen Systemvariablen und...
Inhaltsverzeichnis 1. Docker-Konfiguration 2. Ers...
1. Einleitung Ob die Erstellungszeit einer Datei ...