Heim > Backend-Entwicklung > PHP-Tutorial > Super detailliert! Erstellen Sie eine LNMP-Umgebung mithilfe des Quellcodes

Super detailliert! Erstellen Sie eine LNMP-Umgebung mithilfe des Quellcodes

藏色散人
Freigeben: 2023-04-11 14:00:02
nach vorne
3069 Leute haben es durchsucht

Dieser Artikel vermittelt Ihnen hauptsächlich die Verwendung von Quellcode zum Erstellen einer LNMP-Umgebung. Ich hoffe, dass er für alle hilfreich ist.

Super detailliert! Erstellen Sie eine LNMP-Umgebung mithilfe des Quellcodes

Erstellen Sie eine LNMP-Umgebung mit Quellcode

1. Installieren Sie RedHat8

Centos8 oder etwas anderes. Die virtuelle Maschine ist VMware. Es gibt Online-Installationsanleitungen, daher werde ich hier nicht auf Details eingehen.

2. Konfigurieren Sie das lokale Software-Repository

// 把系统镜像挂载到/media/cdrom目录。
mkdir -p /media/cdrom
mount /dev/cdrom /media/cdrom
// mount: /media/cdrom: WARNING: device write-protected, mounted read-only.


// 创建软件仓库的配置文件
 ~]# vi /etc/yum.repos.d/rhel8.repo
[BaseOS]
name=BaseOS
baseurl=file:///media/cdrom/BaseOS
enabled=1
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///media/cdrom/AppStream
enabled=1
gpgcheck=0
Nach dem Login kopieren

Testen und installieren Sie vim, wget

3. Installieren Sie die für die Kompilierung erforderlichen Tools

dnf install vim wget -y
Nach dem Login kopieren

Füge es in das Verzeichnis /lnmp ein. 5. Rpcsvc-proto installieren

dnf -y install apr* autoconf automake numactl bison bzip2-devel cpp curl-devel fontconfig-devel freetype-devel gcc gcc-c++ gd-devel gettext-devel kernel-headers keyutils-libs-devel krb5-devel libcom_err-devel  libpng-devel  libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libxml2-devel libXpm* libxml* libXaw-devel libXmu-devel libtiff* make openssl-devel patch pcre-devel perl php-common php-gd telnet zlib-devel libtirpc-devel gtk* ntpstat na* bison* lrzsz cmake ncurses-devel libzip-devel libxslt-devel gdbm-devel readline-devel gmp-devel
Nach dem Login kopieren

6. Installieren Sie Nginx

Erstellen Sie ein Konto für den Betrieb von Nginx

Das Programm wird aus Sicherheitsgründen natürlich nicht als Root ausgeführt.

Und es ist kein Home-Verzeichnis oder Login erforderlich, es wird nur zum Ausführen von Nginx verwendet.

mkdir /lnmp
cd /lnmp

wget https://www.linuxprobe.com/Software/rpcsvc-proto-1.4.tar.gz

wget https://www.linuxprobe.com/Software/nginx-1.16.0.tar.gz

wget https://www.linuxprobe.com/Software/mysql-8.0.18.tar.xz

wget https://www.linuxprobe.com/Software/php-7.3.5.tar.gz

wget https://www.linuxprobe.com/Software/wordpress.tar.gz
Nach dem Login kopieren
Nginx installieren
tar xzvf rpcsvc-proto-1.4.tar.gz
cd rpcsvc-proto-1.4/
./configure
make
make install
cd ..
Nach dem Login kopieren

Nginx konfigurieren

Verwenden Sie den Präfixparameter, um den Installationspfad anzugeben, dann befindet sich die Nginx-Konfigurationsdatei unter /usr/local/nginx.

Geben Sie den Besitzer des Benutzers an, der das Programm ausführt, und den Besitzer der Gruppe

useradd nginx -M -s /sbin/nologin // -M 不创建家目录,-s 指定 shell
id nginx // 查询是否创建成功了
uid=1000(nginx) gid=1000(nginx) 组=1000(nginx)
Nach dem Login kopieren

Fügen Sie in Zeile 45 index.php zur Indexkonfiguration hinzu (die Datei, die als Standard-Homepage verwendet werden kann).

lnmp]# tar zxvf nginx-1.16.0.tar.gz
lnmp]# cd nginx-1.16.0/
nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module  // --prefix指定安装目录, --with-开启http_ssl_module模块
nginx-1.16.0]# make
nginx-1.16.0]# make install
nginx-1.16.0]# cd ..
Nach dem Login kopieren

Löschen Sie das Kommentarzeichen # vor den Zeilen 65 bis 71, um die virtuelle Hostfunktion zu aktivieren, und ändern Sie dann das entsprechende Website-Stammverzeichnis nach Zeile 69 in /usr/local/nginx/html, wo der Parameter fastcgi_script_name verwendet wird angeben Der Skriptname ist die vom Benutzer angeforderte URL. Nur wenn die Informationen korrekt ausgefüllt sind, kann Nginx die Benutzeranfrage korrekt analysieren. Andernfalls wird auf der besuchten Seite der Fehler „404 Not Found“ angezeigt.

vim /usr/local/nginx/conf/nginx.conf
// 打开文件后,我们在英文模式下,按下 shift + 冒号,输入2,回车,定位到第2行。
// 连按两次 ESC,取消当前使用模式
// 再次 shift + 冒号,输入 set nu,回车,我们可以显示行号

1 
2 user  nginx nginx; // 第二行,修改为这样
Nach dem Login kopieren

Die aus dem Quellcode kompilierte und installierte Software kann standardmäßig nicht von systemctl verwaltet werden. Wir können sie direkt mit /usr/local/nginx/sbin/nginx verwalten. Es wird empfohlen, den Pfad /usr/local/nginx/sbin zur Umgebungsvariablen PATH hinzuzufügen, damit wir nginx direkt eingeben können, ohne einen Pfad hinzuzufügen.

Verwenden Sie dann den Quellbefehl, damit diese Änderung sofort wirksam wird.

 43         location / {
 44             root   html;
 45             index  index.php index.html index.htm;
 46         }
Nach dem Login kopieren

Öffnen Sie den Browser, um auf 192.168.89.128 (meine virtuelle Maschinenadresse) zuzugreifen. Der Zugriff ist fehlgeschlagen.

Schließen Sie die Firewall.

63         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
 64         #
 65         location ~ \.php$ {
 66             root           html;
 67             fastcgi_pass   127.0.0.1:9000;
 68             fastcgi_index  index.php;
 69             fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
 70             include        fastcgi_params;
 71         }
Nach dem Login kopieren

Besuchen Sie es erneut und stellen Sie fest, dass es funktioniert.

7. MySQL installieren

Erstellen Sie einen MySQL-Benutzer, der für die Ausführung der MySQL-Datenbank verantwortlich ist. Dieser Benutzer muss sich auch nicht anmelden.

lnmp]# vim ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/nginx/sbin // 这里加上 Nginx 的 sbin 路径

export PATH

lnmp]# source ~/.bash_profile // 让修改立即生效
lnmp]# nginx // 启动 nginx 服务
Nach dem Login kopieren

Installation

systemctl status firewalld.service // 查看是否在运行
systemctl stop firewalld.service // 临时停止
systemctl disable firewalld.service // 永久关闭
Nach dem Login kopieren

/usr/local/mysql ist der Pfad, in dem MySQL-Programmdateien gespeichert werden, /usr/local/mysql/data ist der Ort, an dem Daten gespeichert werden, und jede Datenbank ist ein Verzeichnis darunter. Wir müssen es auch manuell erstellen.

lnmp]# useradd mysql -M -s /sbin/nologin
Nach dem Login kopieren
Initialisieren Sie MySQL, autorisieren Sie das Verzeichnis und stellen Sie sicher, dass der MySQL-Benutzer auf die Daten zugreifen kann. Verwenden Sie vor der Initialisierung den Befehl mysqld, um den Benutzernamen für die Verwaltung des MySQL-Dienstes, das Datenspeicherverzeichnis und die Codierungsinformationen zu bestätigen . Nachdem die Informationen korrekt sind, starten Sie die Initialisierung. Nach der Initialisierung weist das System dem Benutzer ein anfängliches temporäres Passwort zu. Denken Sie daran, es zu speichern.

Das im Beispiel unten zugewiesene Passwort lautet qfroRs,Ei4Ls.

// 解压MySQL安装软件包
lnmp]# tar xvf mysql-8.0.18.tar.xz

// 将解压出的程序目录改名并移动到/usr/local目录下
lnmp]# mv mysql-8.0.18-linux-glibc2.12-x86_64 mysql
lnmp]# mv mysql /usr/local
Nach dem Login kopieren

Ähnlich wie bei Nginx werden einige binäre ausführbare Befehle von MySQL in /usr/local/mysql/bin in einem eigenen Programmverzeichnis gespeichert. Wir können sie für einen einfachen Zugriff auch zur Umgebungsvariablen PATH hinzufügen.

lnmp]# cd /usr/local/mysql
mysql]# mkdir data
Nach dem Login kopieren

Fügen Sie das Startskript mysql.server in /etc/init.d ein, damit die Datenbank bei jedem Neustart des Servers automatisch gestartet werden kann. und erteilen Sie ausführbare Berechtigungen.

Die Datei libtinfo.so.5 ist eine wichtige Funktionsbibliotheksdatei, die nach MySQL 8.0 neu hinzugefügt wurde, aber standardmäßig nicht vorhanden ist. Sie müssen die Datei libtinfo.so.6.1 kopieren oder als Linkdatei verwenden, um normal zu starten :

[root@linuxprobe mysql]# chown -R mysql:mysql /usr/local/mysql
[root@linuxprobe mysql]# cd bin
[root@linuxprobe bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
2021-05-06T07:07:06.243270Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.18) initializing of server in progress as process 7606
2021-05-06T07:07:08.116268Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: qfroRs,Ei4Ls
Nach dem Login kopieren

Startdatei und Initialisierungsarbeiten für den MySQL-Datenbankdienst ausführen. Aus Sicherheitsgründen erlaubt MySQL Benutzern seit Version 8.0 nicht mehr, temporäre Passwörter zur Verwaltung von Datenbankinhalten zu verwenden, und es ist auch nicht möglich, diese aus der Ferne zu steuern. Benutzer müssen das Initialisierungspasswort ändern, bevor sie die MySQL-Datenbank verwenden. Da die Datenbank ein wichtiger Bestandteil des Systems ist, wird nicht empfohlen, dass die Anzahl der Passwörter weniger als 20 Zeichen beträgt. Im Folgenden wird beispielsweise das Kennwort in „PObejCBeDzTRCncXwgBy“ geändert.

[root@linuxprobe bin]# vim ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/nginx/sbin:/usr/local/mysql/bin

export PATH
[root@linuxprobe bin]# source ~/.bash_profile
Nach dem Login kopieren

Aber das funktioniert immer noch nicht. Sie müssen immer noch zur MySQL-Datenbank wechseln und den Passwortwert des Benutzerformulars ändern. Dies ist auch eine neue Sicherheitsanforderung ab MySQL-Datenbankversion 8.0.

[root@linuxprobe bin]# cd /usr/local/mysql
[root@linuxprobe mysql]# cp -a support-files/mysql.server /etc/init.d/
[root@linuxprobe mysql]# chmod a+x /etc/init.d/mysql.server
[root@linuxprobe mysql]# ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5
Nach dem Login kopieren

8. PHP installieren

Entpacken Sie das PHP-Quellcodepaket, kompilieren und installieren Sie

[root@linuxprobe mysql]# /etc/init.d/mysql.server start 
Starting MySQL.Logging to '/usr/local/mysql/data/linuxprobe.com.err'.
. SUCCESS! 
[root@linuxprobe mysql]# mysql -u root -p
Enter password: 输入初始化时给的原始密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.18

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> alter user 'root'@'localhost' identified by 'PObejCBeDzTRCncXwgBy'; 
Query OK, 0 rows affected (0.01 sec)

mysql>
Nach dem Login kopieren

Kopieren Sie die generierte php.ini-Konfigurationsdatei in das Installationsverzeichnis (/usr/local/php/) und lassen Sie sie wirksam werden . Da nun die Hauptkonfigurationsdatei verfügbar ist, wird auch die php-fpm-Konfigurationsdatei benötigt. Diese befindet sich glücklicherweise auch im Verzeichnis /usr/local/php/etc/. Sie müssen nur die Vorlage kopieren:

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
| …………省略部分输出信息…………  |
+---------------------------+
33 rows in set (0.00 sec)

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PObejCBeDzTRCncXwgBy';
Query OK, 0 rows affected (0.01 sec)

// 创建一个数据库
create database linuxcool;
Nach dem Login kopieren

Add Der PHP-Dienst im Startelement wird auch nach dem Neustart wirksam zum testen

<?php
phpinfo();
Nach dem Login kopieren

浏览器访问地址即可。

9、搭建一个 WordPress

把 Nginx 服务程序根目录的内容清空后,将 WordPress 解压后的网站文件复制进去:

[root@linuxprobe php-7.3.5]# cd ..
[root@linuxprobe lnmp]# rm -f /usr/local/nginx/html/*
[root@linuxprobe lnmp]# tar xzvf wordpress.tar.gz 
[root@linuxprobe lnmp]# mv wordpress/* /usr/local/nginx/html/
Nach dem Login kopieren

为了能够让网站文件被 Nginx 服务程序顺利读取,应设置目录所有权的身份及可读写的权限:

[root@linuxprobe lnmp]# chown -Rf nginx:nginx /usr/local/nginx/html 
[root@linuxprobe lnmp]# chmod -Rf 777 /usr/local/nginx/html
Nach dem Login kopieren

输入虚拟机 IP 地址访问 WordPress 网站的首页面。

Super detailliert! Erstellen Sie eine LNMP-Umgebung mithilfe des Quellcodes

后面按说明一步步操作下去即可。

Das obige ist der detaillierte Inhalt vonSuper detailliert! Erstellen Sie eine LNMP-Umgebung mithilfe des Quellcodes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage