Introduction de l'architecture LNMP et déploiement de l'architecture

Déploiement de l'architecture LNMP

Brève description de l'architecture LNMP

La plate-forme LNMP est une combinaison de Linux, Ngnix, MySQL et PHP. Elle nécessite un serveur Linux, une base de données MySQL et un environnement d'analyse PHP.
Nginx est un serveur proxy HTTP et inversé hautes performances, ainsi qu'un serveur proxy IMAP / POP3 / SMTP. Mysql est un petit système de gestion de base de données relationnelle. PHP est un langage de script qui est exécuté sur le serveur et intégré dans des documents HTML.
Dans ce cas, l'environnement LNMP est déployé sur un seul serveur

One, compilation et installation de Nginx

1. Les packages dépendants de l'environnement d'installation ont
besoin de gcc, gcc-c ++, make outils de compilation, pcre, zlib et d'autres logiciels pris en charge

 [root@localhost ~]# yum -y install gcc gcc-c++ make pcre-devel zlib-devel

2. Créez et exécutez des utilisateurs et des groupes. Le
programme de service Nginx s'exécute en tant que personne par défaut. Il est recommandé de créer un compte d'utilisateur spécial pour qu'il contrôle plus précisément les autorisations d'accès, augmente la flexibilité et réduit les risques de sécurité.

 [root@localhost ~]# useradd -M -s /sbin/nologin nginx

3. Compilez et installez le
répertoire d'installation de Nginx dans / usr / local / nginx, l'utilisateur et le groupe en cours d'exécution sont tous les deux nginx et le module de statistiques http_stub_status_module est activé (pour compter le nombre de visiteurs)

 [root@localhost ~]# cd /opt
[root@localhost opt]# ls
nginx-1.12.2.tar.gz
[root@localhost opt]# tar zxf nginx-1.12.2.tar.gz
[root@localhost opt]# cd nginx-1.12.2
[root@localhost nginx-1.12.2]# ./configure \
--prefix=/usr/local/nginx \       
--user=nginx \
--group=nginx \
--with-http_stub_status_module
[root@localhost nginx-1.12.2]# make && make install

4. Optimisation du chemin
Afin de rendre le fonctionnement du serveur Nginx plus pratique, vous pouvez créer un fichier de connexion pour le programme principal nginx, afin que l'administrateur puisse exécuter directement la commande "nginx" pour appeler le programme principal de Nginx

 [root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@localhost nginx-1.12.2]# ll /usr/local/sbin
总用量 0
lrwxrwxrwx. 1 root root 27 86 20:12 nginx -> /usr/local/nginx/sbin/nginx

5. Vérifier le fichier de configuration
Similaire au programme principal d'Apache httpd, le programme principal de Nginx fournit également l'option "-t" pour vérifier le fichier de configuration afin de découvrir une configuration incorrecte ou incorrecte. Le fichier de configuration nginx.conf se trouve par défaut dans le sous-répertoire conf / du répertoire d'installation. Pour vérifier les fichiers de configuration situés à d'autres emplacements, vous pouvez utiliser l'option "-c" pour spécifier le chemin.

 [root@localhost nginx-1.12.2]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

6. Démarrez et arrêtez Nginx
Exécutez Nginx directement pour démarrer le serveur Nginx. Cette méthode utilisera le fichier de configuration par défaut. Si vous souhaitez utiliser un autre fichier de configuration, vous devez ajouter l'option "-c chemin du fichier de configuration" pour spécifier le chemin. Il convient de noter que si un autre logiciel de service Web tel que httpd est déjà installé sur le serveur, des mesures (modifier le port, désactiver ou désinstaller) doivent être prises pour éviter les conflits.

 [root@localhost ~]# nginx     ##启动nginx
[root@localhost ~]# netstat -ntap | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      9676/nginx: master
[root@localhost ~]# pkill nginx             ##停止nginx
[root@localhost ~]# killall -3 nginx       ##停止nginx

7. Ajouter un service système Nginx
Afin de rendre l'opération de démarrage, d'arrêt et de rechargement du service nginx plus pratique, vous pouvez écrire un fichier de contrôle de service basé sur Centos7.6 et utiliser l'outil systemctl pour le gérer.

[root@localhost ~]# vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx                          ##描述
After=network.target                      ##描述服务类别
[Service]
Type=forking                                                       ##后台运行形式
PIDFile=/usr/local/nginx/logs/nginx.pid               ##PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx                 ##启动服务
ExecReload=/usr/bin/kill-s HUP $MAINPID        ##根据PID重载配置
ExecStop=/usr/bin/kill-s QUIT $MAINPID           ##根据PID终止进程
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[root@localhost ~]# chmod 754 /lib/systemd/system/nginx.service
[root@localhost system]# systemctl enable nginx.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

8. Vérifiez si le service Nginx peut être démarré, arrêté, redémarré et rechargé normalement via la commande systemctl.

[root@localhost ~]# killall -3 nginx
[root@localhost ~]# systemctl start nginx
[root@localhost ~]# netstat -ntap | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      28358/nginx: master

Deux, installation et configuration de Mysql

1. Installez le package de dépendances de l'environnement mysql Vous avez
besoin du support de gcc, gcc-c ++, make outils de compilation, pcre, zlib et d'autres packages logiciels.

[root@localhost ~]# yum -y install gcc gcc-c++ make pcre-devel zlib-devel

2. Créez et exécutez des utilisateurs et des groupes. Le
programme de service Nginx s'exécute en tant que personne par défaut. Il est recommandé de créer un compte d'utilisateur spécial pour qu'il contrôle plus précisément les autorisations d'accès, augmente la flexibilité et réduit les risques de sécurité.

[root@localhost ~]# useradd -M -s /sbin/nologin nginx

3. Compilez et installez le
répertoire d'installation de Nginx dans / usr / local / nginx, l'utilisateur et le groupe en cours d'exécution sont tous deux nginx, activez

http_stub_status_module统计模块(统计多少人访问)
[root@localhost ~]# cd /opt
[root@localhost opt]# ls
nginx-1.12.2.tar.gz
[root@localhost opt]# tar zxf nginx-1.12.2.tar.gz
[root@localhost opt]# cd nginx-1.12.2
[root@localhost nginx-1.12.2]# ./configure \
--prefix=/usr/local/nginx \       
--user=nginx \
--group=nginx \
--with-http_stub_status_module
[root@localhost nginx-1.12.2]# make && make install

4. Optimisation du chemin
Afin de rendre le fonctionnement du serveur Nginx plus pratique, vous pouvez créer un fichier de connexion pour le programme principal nginx, afin que l'administrateur puisse exécuter directement la commande "nginx" pour appeler le programme principal de Nginx

[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@localhost nginx-1.12.2]# ll /usr/local/sbin
总用量 0
lrwxrwxrwx. 1 root root 27 8月   6 20:12 nginx -> /usr/local/nginx/sbin/nginx

5. Vérifier le fichier de configuration
Similaire au programme principal d'Apache httpd, le programme principal de Nginx fournit également l'option "-t" pour vérifier le fichier de configuration afin de découvrir une configuration incorrecte ou incorrecte. Le fichier de configuration nginx.conf se trouve par défaut dans le sous-répertoire conf / du répertoire d'installation. Pour vérifier les fichiers de configuration situés à d'autres emplacements, vous pouvez utiliser l'option "-c" pour spécifier le chemin.

[root@localhost nginx-1.12.2]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

6. Démarrez et arrêtez Nginx
Exécutez Nginx directement pour démarrer le serveur Nginx. Cette méthode utilisera le fichier de configuration par défaut. Si vous souhaitez utiliser un autre fichier de configuration, vous devez ajouter l'option "-c chemin du fichier de configuration" pour spécifier le chemin. Il convient de noter que si un autre logiciel de service Web tel que httpd est déjà installé sur le serveur, des mesures (modifier le port, désactiver ou désinstaller) doivent être prises pour éviter les conflits.

[root@localhost ~]# nginx     ##启动nginx
[root@localhost ~]# netstat -ntap | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      9676/nginx: master
[root@localhost ~]# pkill nginx             ##停止nginx
[root@localhost ~]# killall -3 nginx       ##停止nginx

7. Ajouter un service système Nginx
Afin de rendre l'opération de démarrage, d'arrêt et de rechargement du service nginx plus pratique, vous pouvez écrire un fichier de contrôle de service basé sur Centos7.6 et utiliser l'outil systemctl pour le gérer.

[root@localhost ~]# vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx                          ##描述
After=network.target                      ##描述服务类别
[Service]
Type=forking                                                       ##后台运行形式
PIDFile=/usr/local/nginx/logs/nginx.pid               ##PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx                 ##启动服务
ExecReload=/usr/bin/kill-s HUP $MAINPID        ##根据PID重载配置
ExecStop=/usr/bin/kill-s QUIT $MAINPID           ##根据PID终止进程
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[root@localhost ~]# chmod 754 /lib/systemd/system/nginx.service
[root@localhost system]# systemctl enable nginx.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

8. Vérifiez si le service Nginx peut être démarré, arrêté, redémarré et rechargé normalement via la commande systemctl.

[root@localhost ~]# killall -3 nginx
[root@localhost ~]# systemctl start nginx
[root@localhost ~]# netstat -ntap | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      28358/nginx: master

2. Installation et configuration de Mysql
1. Installez le package de dépendance de l'environnement mysql

[root@localhost ~]# yum -y install ncures ncures-devel bison cmake

2. Créez un utilisateur en cours d'exécution

[root@localhost ~]# useradd -s /sbin/nologin mysql

3. Compilez et installez
Upload mysql-boost-5.7.20.tar.gz dans le répertoire / opt, boost est une bibliothèque C ++

[root@localhost ~]# cd /opt
[root@localhost opt]# tar zxf mysql-boost-5.7.20.tar.gz
[root@localhost opt]# cd mysql-5.7.20/
[root@localhost mysql-5.7.20]# cmake \
-DMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1

4. Ajustez les autorisations du répertoire de la base de données

[root@localhost local]# chown -R mysql.mysql /usr/local/mysql/

5. Ajustez le fichier de configuration

[root@localhost local]# vim /etc/my.cnf
[client]
port=3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock

[mysql]
port=3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock

[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
character_set_server=utf8
pid-file=/usr/local/mysql/mysql.pid
socket=/usr/local/mysql/mysql.sock
server-id=1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

6. Définir les variables d'environnement

[root@localhost ~]# 
echo "PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH" >> /etc/profile
[root@localhost ~]# echo "export PATH" >> /etc/profile
[root@localhost ~]# source /etc/profile

7. Initialisez la base de données

[root@localhost ~]# cd /usr/local/mysql/
[root@localhost mysql]# bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

[root@localhost ~]# cd /usr/local/mysql/
[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/        ##将mysql服务启动脚本复制到systemd管理工具的目录下,便于使用systemctl管理

8. Ouvrez la base de données, vérifiez l'état

[root@localhost mysql]# systemctl enable mysqld
[root@localhost mysql]# systemctl start mysqld
[root@localhost mysql]# netstat -ntap |grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      11260/mysqld

9. Définissez le mot de passe mysql

[root@localhost mysql]# mysqladmin -u root -p password
Enter password:          ##初始密码为空,直接回车
New password:           ##输入新密码“abc123”
Confirm new password:  ##确认新密码“abc123”

10. Connectez-vous à la base de données

[root@localhost mysql]# mysql -u root -p   ##密码是刚才设置的abc123

Troisièmement, l'installation de l'environnement d'analyse PHP

● Configurer la séparation dynamique et l'analyse de PHP de la page Web. Il y a deux façons de choisir.
Utilisez le module FPM de PHP pour
transférer la requête Web vers la page PHP vers le serveur Apache pour traitement.
● La nouvelle version de PHP a son propre module FPM pour analyser les exemples PHP Gérez et optimisez l'efficacité de l'analyse
FastCGI sépare Http Server et le langage de script dynamique.
Nginx est spécialisé dans le traitement des requêtes statiques et transmet les requêtes dynamiques.
PHP-FPM est spécialisé dans l'analyse des requêtes dynamiques PHP.
● L'architecture LNMP à serveur unique utilise généralement FPM pour analyser PHP
● Les étapes de compilation et d'installation PHP
1. Packages dépendant de l'environnement d'installation

[root@localhost ~]# yum -y install \
libjpeg \
libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

2. Compilez et installez

[root@localhost opt]# tar xjvf php-7.1.10.tar.bz2	
[root@localhost opt]# cd php-7.1.10
[root@localhost php-7.1.10]# ./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \       ##连接数据库
--with-mysqli \                   ##客户端
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \                ##开启php-fpm模块,使nginx能支持动态页面
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip
make && make install

3.php a trois fichiers de configuration, le fichier de configuration principal de php.ini, le fichier de configuration du service de processus php-fpm.conf, le fichier de configuration étendu www.conf

[root@localhost php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini
[root@localhost php-7.1.10]# vim /usr/local/php/lib/php.ini
mysqli.default_socket = /usr/local/mysql/mysql.sock   ##位于1170行
date.timezone = Asia/Shanghai      ##位于939行

/usr/local/php/bin/php -m   ##用于验证安装的模块

4. Configurer et optimiser le module fpm

[root@localhost php-7.1.10]# cd /usr/local/php/etc/
[root@localhost etc]# ls
pear.conf  php-fpm.conf.default  php-fpm.d
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf
[root@localhost etc]# cd php-fpm.d/
[root@localhost php-fpm.d]# cp www.conf.default www.conf
[root@localhost php-fpm.d]# cd /usr/local/php/etc/
[root@localhost etc]# vim php-fpm.conf
pid = run/php-fpm.pid     ##前面的 ; 去掉

[root@localhost etc]# /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
[root@localhost etc]# netstat -ntap | grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      9981/php-fpm: maste
[root@localhost etc]# ln -s /usr/local/php/bin/* /usr/local/bin/
[root@localhost etc]# ps aux | grep -c "php-fpm"   ##查看php-fpm进程数

5. Configurez Nginx pour prendre en charge les fonctions PHP.
Insérez le contenu suivant près du modèle dans la section serveur {} du fichier de configuration principal (il y a un modèle, faites attention au nom du répertoire du site)

[root@localhost etc]# vim /usr/local/nginx/conf/nginx.conf  
location ~ \.php$ {
      root           html;
      fastcgi_pass   127.0.0.1:9000;
      fastcgi_index  index.php;
      fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
      include        fastcgi_params;
   }
[root@localhost ~]# vim /usr/local/nginx/html/index.php
<?php
phpinfo();
?>
[root@localhost ~]# systemctl restart nginx
在网页测试“http://14.0.0.40/index.php”

6. Vérifiez si la base de données fonctionne correctement

[root@localhost ~]# mysql -u root -p
Enter password:
mysql> create database test;
mysql> grant all on test.* to 'testuser'@'%' identified by 'abc123';
mysql> grant all on test.* to 'bbsuser'@'localhost' identified by 'abc123';
mysql> flush privileges;
将原来的测试网页内容更改如下:
[root@localhost ~]# vim /usr/local/nginx/html/index.php
<?php
$link=mysqli_connect('14.0.0.40','testuser','abc123');
if($link) echo "<h1>Success!</h1>";
else echo "Fail!!";
?>
[root@localhost ~]# systemctl restart nginx
在网页测试“http://14.0.0.40/index.php”

7. Déployez Discuz! Application Web du forum communautaire

[root@localhost ~]# cd /opt
[root@localhost opt]# unzip Discuz_X3.4_SC_UTF8.zip
[root@localhost opt]# cd dir_SC_UTF8
[root@localhost dir_SC_UTF8]# ls
readme  upload  utility
[root@localhost dir_SC_UTF8]# cp -r upload /usr/local/nginx/html/test
[root@localhost dir_SC_UTF8]# cd /usr/local/nginx/html/test
##赋予安装论坛的文件权限##
[root@localhost test]# chown -R root:nginx ./config
[root@localhost test]# chown -R root:nginx ./data
[root@localhost test]# chown -R root:nginx ./uc_client
[root@localhost test]# chown -R root:nginx ./uc_server
[root@localhost test]# chmod -R 777 ./config
[root@localhost test]# chmod -R 777 ./data
[root@localhost test]# chmod -R 777 ./uc_client
[root@localhost test]# chmod -R 777 ./uc_server
[root@localhost test]# systemctl restart nginx

8. Entrez http://14.0.0.40/test/install/index.php pour installer le forum,
puis utilisez http://14.0.0.40/test/index.php pour vous connecter au forum et vous
Insérez la description de l'image ici
connecter http://14.0.0.40/test /admin.php peut entrer directement dans le centre de gestionInsérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/Houtieyu/article/details/109121493
conseillé
Classement