Heim >Backend-Entwicklung >PHP-Tutorial >Super detailliert! Erstellen Sie eine LNMP-Umgebung mithilfe des Quellcodes
Dieser Artikel vermittelt Ihnen hauptsächlich die Verwendung von Quellcode zum Erstellen einer LNMP-Umgebung. Ich hoffe, dass er für alle hilfreich ist.
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
Testen und installieren Sie vim, wget
3. Installieren Sie die für die Kompilierung erforderlichen Tools
dnf install vim wget -y
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
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.gzNginx installieren
tar xzvf rpcsvc-proto-1.4.tar.gz cd rpcsvc-proto-1.4/ ./configure make make install cd ..Nginx konfigurierenVerwenden 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)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 ..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; // 第二行,修改为这样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 }Ö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 }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 服务Installation
systemctl status firewalld.service // 查看是否在运行 systemctl stop firewalld.service // 临时停止 systemctl disable firewalld.service // 永久关闭/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/nologinInitialisieren 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Ä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 dataFü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,Ei4LsStartdatei 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_profileAber 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
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>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;Add Der PHP-Dienst im Startelement wird auch nach dem Neustart wirksam zum testen
<?php phpinfo();
浏览器访问地址即可。
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/
为了能够让网站文件被 Nginx 服务程序顺利读取,应设置目录所有权的身份及可读写的权限:
[root@linuxprobe lnmp]# chown -Rf nginx:nginx /usr/local/nginx/html [root@linuxprobe lnmp]# chmod -Rf 777 /usr/local/nginx/html
输入虚拟机 IP 地址访问 WordPress 网站的首页面。
后面按说明一步步操作下去即可。
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!