


Hyper détaillé ! Créer un environnement LNMP à l'aide du code source
Cet article vous apporte des connaissances pertinentes sur PHP. Il présente principalement comment utiliser le code source pour créer un environnement LNMP. Les amis intéressés peuvent y jeter un œil ci-dessous.
Créez un environnement LNMP à l'aide du code source
1 Installez RedHat8
Centos8, ou toute autre chose. La machine virtuelle est VMware. Il existe des tutoriels d'installation en ligne, je n'entrerai donc pas dans les détails ici.
2. Configurez le référentiel de logiciels local
// 把系统镜像挂载到/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
Testez et installez vim, wget
dnf install vim wget -y
3 Installez les outils requis pour la compilation
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
4. Téléchargez le package de code source du logiciel requis
. rassemblez-le dans le répertoire /lnmp.
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
5. Installez rpcsvc-proto
rpcsvc-proto est le nom d'un progiciel qui contient la prise en charge des fichiers de protocole rcpsvc. Le protocole rcpsvc doit être appelé lors du déploiement ultérieur des programmes de service Nginx et MySQL.
tar xzvf rpcsvc-proto-1.4.tar.gz cd rpcsvc-proto-1.4/ ./configure make make install cd ..
6. Installez Nginx
Créez un compte pour le fonctionnement de Nginx
Le programme est exécuté par un utilisateur pour des raisons de sécurité, bien sûr, il ne peut pas être root.
Et il ne nécessite pas de répertoire personnel ni de connexion, il est simplement utilisé pour exécuter Nginx.
useradd nginx -M -s /sbin/nologin // -M 不创建家目录,-s 指定 shell id nginx // 查询是否创建成功了 uid=1000(nginx) gid=1000(nginx) 组=1000(nginx)
Installez Nginx
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 ..
Configurez Nginx
Utilisez le paramètre préfixe pour spécifier le chemin d'installation, puis le fichier de configuration Nginx se trouve sous /usr/local/nginx.
Fournissez le propriétaire de l'utilisateur qui exécute le programme et le propriétaire du groupe
vim /usr/local/nginx/conf/nginx.conf // 打开文件后,我们在英文模式下,按下 shift + 冒号,输入2,回车,定位到第2行。 // 连按两次 ESC,取消当前使用模式 // 再次 shift + 冒号,输入 set nu,回车,我们可以显示行号 1 2 user nginx nginx; // 第二行,修改为这样
À la ligne 45, ajoutez index.php à la configuration de l'index (le fichier qui peut être utilisé comme page d'accueil par défaut).
43 location / { 44 root html; 45 index index.php index.html index.htm; 46 }
Supprimez le caractère de commentaire # devant les lignes 65 à 71 pour activer la fonction d'hôte virtuel, puis modifiez le répertoire racine du site Web correspondant après la ligne 69 en /usr/local/nginx/html, où le paramètre fastcgi_script_name est utilisé pour indiquer Le nom du script est l'URL demandée par l'utilisateur. Ce n'est que lorsque les informations sont correctement renseignées que Nginx peut analyser correctement la demande de l'utilisateur. Sinon, la page visitée affichera une erreur « 404 Not Found ».
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 }
Le logiciel compilé et installé à partir du code source ne peut pas être géré par systemctl par défaut. Nous pouvons directement utiliser son propre /usr/local/nginx/sbin/nginx pour le gérer. Il est recommandé d'ajouter le chemin /usr/local/nginx/sbin à la variable d'environnement PATH, afin que nous puissions entrer directement dans nginx sans ajouter de chemin.
Utilisez ensuite la commande source pour que cette modification prenne effet immédiatement.
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 服务
Ouvrez le navigateur pour accéder au 192.168.89.128 (l'adresse de ma machine virtuelle), l'accès a échoué
Fermez le pare-feu
systemctl status firewalld.service // 查看是否在运行 systemctl stop firewalld.service // 临时停止 systemctl disable firewalld.service // 永久关闭
Visitez à nouveau et constatez que cela fonctionne.
7. Installez MySQL
Créez un utilisateur MySQL responsable de l'exécution de la base de données MySQL. Cet utilisateur n'a pas non plus besoin de se connecter.
lnmp]# useradd mysql -M -s /sbin/nologin
Installation
// 解压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
/usr/local/mysql est le chemin où les fichiers du programme MySQL sont enregistrés, /usr/local/mysql/data est l'endroit où les données sont stockées et chaque base de données est un répertoire en dessous. Nous devons également le créer manuellement.
lnmp]# cd /usr/local/mysql mysql]# mkdir data
Initialisez MySQL, autorisez le répertoire et assurez-vous que les données sont accessibles par l'utilisateur mysql. Avant l'initialisation, utilisez la commande mysqld pour confirmer le nom d'utilisateur pour gérer le service MySQL, le répertoire de stockage des données et les informations d'encodage. . Une fois les informations correctes, démarrez l'initialisation. Après l'initialisation, le système attribuera un mot de passe temporaire initial à l'utilisateur. N'oubliez pas de le sauvegarder.
Le mot de passe attribué dans l'exemple ci-dessous est qfroRs,Ei4Ls.
[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
Semblable à nginx, certaines commandes exécutables binaires de MySQL sont stockées dans /usr/local/mysql/bin dans son propre répertoire de programme. Nous pouvons également les ajouter à la variable d'environnement PATH pour un accès facile.
[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
Placez le script de démarrage mysql.server dans /etc/init.d afin que la base de données puisse être automatiquement démarrée à chaque redémarrage du serveur. et accordez des autorisations exécutables.
Le fichier libtinfo.so.5 est un fichier de bibliothèque de fonctions important nouvellement ajouté après MySQL 8.0, mais il n'existe pas par défaut. Vous devez copier le fichier libtinfo.so.6.1 ou l'utiliser comme fichier de lien pour démarrer normalement. :
[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
Exécutez le fichier de démarrage du service de base de données MySQL et le travail d'initialisation. Pour des raisons de sécurité, MySQL ne permet plus aux utilisateurs d'utiliser des mots de passe temporaires pour gérer le contenu de la base de données depuis la version 8.0, et il ne peut pas non plus être contrôlé à distance. Les utilisateurs doivent modifier le mot de passe d'initialisation avant de pouvoir utiliser la base de données MySQL. La base de données étant un composant important du système, il est recommandé que le nombre de mots de passe ne soit pas inférieur à 20 caractères. Par exemple, ce qui suit modifie le mot de passe en « PObejCBeDzTRCncXwgBy ».
[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>
Mais cela ne fonctionne toujours pas. Vous devez toujours basculer vers la base de données mysql et modifier la valeur du mot de passe du formulaire utilisateur. Il s'agit également d'une nouvelle exigence de sécurité à partir de la version 8.0 de la base de données MySQL.
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;
8. Installez PHP
Décompressez le package de code source php, compilez et installez
[root@linuxprobe mysql]# cd /lnmp [root@linuxprobe lnmp]# tar xvf php-7.3.5.tar.gz [root@linuxprobe lnmp]# cd php-7.3.5/ [root@linuxprobe php-7.3.5]# ./configure --prefix=/usr/local/php --enable-fpm --with-mysqli --with-curl --with-pdo_mysql --with-pdo_sqlite --enable-mysqlnd --enable-mbstring --with-gd [root@linuxprobe php-7.3.5]# make [root@linuxprobe php-7.3.5]# make install
Copiez le fichier de configuration php.ini généré dans le répertoire d'installation (/usr/local/php/) et laissez-le prendre effet. . Maintenant que le fichier de configuration principal est disponible, le fichier de configuration php-fpm est également nécessaire. Heureusement, il est également fourni dans le répertoire /usr/local/php/etc/. Il vous suffit de copier le modèle :
[root@linuxprobe php-7.3.5]# cp php.ini-development /usr/local/php/lib/php.ini [root@linuxprobe php-7.3.5]# cd /usr/local/php/etc/ [root@linuxprobe etc]# mv php-fpm.conf.default php-fpm.conf // 复制一个模板文件到php-fpm.d的目录中,用于后续控制网站的连接性能: [root@linuxprobe etc]# mv php-fpm.d/www.conf.default php-fpm.d/www.conf
Add. le service php dans l'élément de démarrage, il prendra toujours effet après le redémarrage
[root@linuxprobe etc]# cd /lnmp/php-7.3.5 [root@linuxprobe php-7.3.5]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm [root@linuxprobe php-7.3.5]# chmod 755 /etc/init.d/php-fpm
Désactivez certaines fonctions
[root@linuxprobe php-7.3.5]# vim /usr/local/php/lib/php.ini 307 ; This directive allows you to disable certain functions for security reasons. 308 ; It receives a comma-delimited list of function names. 309 ; http://php.net/disable-functions 310 disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
Démarrez le processus php-fpm
[root@linuxprobe php-7.3.5]# /etc/init.d/php-fpm start Starting php-fpm done
Nous créons un fichier index.php sous /usr/local/nginx/html à tester
<?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 网站的首页面。
后面按说明一步步操作下去即可。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.
