LNMPアーキテクチャの紹介とアーキテクチャの展開

LNMPアーキテクチャの展開

LNMPアーキテクチャの簡単な説明

LNMPプラットフォームは、Linux、Ngnix、MySQL、およびPHPの組み合わせです。これには、Linuxサーバー、MySQLデータベース、およびPHP解析環境が必要です
。Nginxは、高性能HTTPおよびリバースプロキシサーバーであり、IMAP / POP3 / SMTPプロキシサーバーでもあります。Mysqlは、小さなリレーショナルデータベース管理システムです。PHPは、サーバー上で実行され、HTMLドキュメントに埋め込まれるスクリプト言語です。
この場合、LNMP環境は単一のサーバーにデプロイされます

1つは、Nginxのコンパイルとインストールです。

1.インストール環境に依存するパッケージに
は、gcc、gcc-c ++、makeコンパイルツール、pcre、zlib、およびその他のソフトウェアパッケージのサポートが必要です。

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

2.ユーザーとグループの作成と実行
Nginxサービスプログラムは、デフォルトでは誰も実行しません。アクセス許可をより正確に制御し、柔軟性を高め、セキュリティリスクを軽減するために、特別なユーザーアカウントを作成することをお勧めします。

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

3.
/ usr / local / nginxにあるNginxインストールディレクトリをコンパイルしてインストールします。実行中のユーザーとグループは両方ともnginxであり、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.パスの最適化
Nginxサーバーの操作をより便利にするために、メインプログラムnginxの接続ファイルを作成して、管理者が「nginx」コマンドを直接実行して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.構成ファイルの確認
メインのApacheプログラムhttpdと同様に、メインのNginxプログラムには、不適切または間違った構成を見つけるために構成ファイルを確認するための「-t」オプションもあります。構成ファイルnginx.confは、デフォルトでインストールディレクトリのconf /サブディレクトリにあります。別の場所にある構成ファイルを確認するには、「-c」オプションを使用してパスを指定できます。

 [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.Nginxの起動と停止Nginxを
直接実行してNginxサーバーを起動します。この方法ではデフォルトの構成ファイルが使用されます。別の構成ファイルを使用する場合は、「-c構成ファイルパス」オプションを追加してパスを指定する必要があります。httpdなどの他のWebサービスソフトウェアがすでにサーバーにインストールされている場合は、競合を回避するための対策(ポートの変更、無効化、またはアンインストール)を行う必要があることに注意してください。

 [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. Nginxシステムサービスの追加nginxサービス
の開始、停止、および再ロードの操作をより便利にするために、Centos7.6に基づくサービス制御ファイルを作成し、systemctlツールを使用してそれを管理できます。

[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. systemctlコマンドを使用して、Nginxサービスを正常に開始、停止、再起動、および再ロードできるかどうかを確認します。

[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、Mysqlのインストールと構成

1. mysql環境依存パッケージをインストールします
。gcc、gcc-c ++のサポート、makeコンパイルツール、pcre、zlib、およびその他のソフトウェアパッケージが必要です。

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

2.ユーザーとグループの作成と実行
Nginxサービスプログラムは、デフォルトでは誰も実行しません。アクセス許可をより正確に制御し、柔軟性を高め、セキュリティリスクを軽減するために、特別なユーザーアカウントを作成することをお勧めします。

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

3.
/ usr / local / nginxにあるNginxインストールディレクトリをコンパイルしてインストールします。実行中のユーザーとグループは両方ともnginxであり、有効にします。

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.パスの最適化
Nginxサーバーの操作をより便利にするために、メインプログラムnginxの接続ファイルを作成して、管理者が「nginx」コマンドを直接実行して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.構成ファイルの確認
メインのApacheプログラムhttpdと同様に、メインのNginxプログラムには、不適切または間違った構成を見つけるために構成ファイルを確認するための「-t」オプションもあります。構成ファイルnginx.confは、デフォルトでインストールディレクトリのconf /サブディレクトリにあります。別の場所にある構成ファイルを確認するには、「-c」オプションを使用してパスを指定できます。

[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.Nginxの起動と停止Nginxを
直接実行してNginxサーバーを起動します。この方法ではデフォルトの構成ファイルが使用されます。別の構成ファイルを使用する場合は、「-c構成ファイルパス」オプションを追加してパスを指定する必要があります。httpdなどの他のWebサービスソフトウェアがすでにサーバーにインストールされている場合は、競合を回避するための対策(ポートの変更、無効化、またはアンインストール)を行う必要があることに注意してください。

[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. Nginxシステムサービスの追加nginxサービス
の開始、停止、および再ロードの操作をより便利にするために、Centos7.6に基づくサービス制御ファイルを作成し、systemctlツールを使用してそれを管理できます。

[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. systemctlコマンドを使用して、Nginxサービスを正常に開始、停止、再起動、および再ロードできるかどうかを確認します。

[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.Mysqlのインストールと構成
1.mysql環境依存パッケージをインストールします

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

2.実行中のユーザーを作成します

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

3.コンパイルしてインストールし
ます。Uploadmysql-boost-5.7.20.tar.gzを/ optディレクトリにアップロードします。boostは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.データベースディレクトリの権限を調整します

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

5.構成ファイルを調整します

[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.環境変数を設定します

[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.データベースを初期化します

[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.データベースを開き、ステータスを確認します

[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.mysqlパスワードを設定します

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

10.データベースにログインします

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

第三に、PHP解析環境のインストール

●Webページの動的分離とPHPの解析を構成します。選択には2つの方法があります
。PHPのFPMモジュールを使用し
て、Web要求をPHPページに転送して処理します。
●新しいバージョンのPHPには、PHPの例を分析するための独自のFPMモジュールがあります。分析効率の管理と最適化
FastCGIはHttpServerと動的スクリプト言語を分離します。Nginxは
静的リクエストの処理と動的リクエストの転送を
専門としてい
ます。PHP -FPMはPHP動的リクエストの解析を専門としています。●シングルサーバーLNMPアーキテクチャは通常FPMを使用してPHPを解析します
●PHPのコンパイルとインストールの手順
1.インストール環境に依存するパッケージ

[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.コンパイルしてインストールします

[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には、php.iniコア構成ファイル、php-fpm.confプロセスサービス構成ファイル、www.conf拡張構成ファイルの3つの構成ファイルがあります。

[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.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. PHP機能をサポートするようにNginxを構成します。
メイン構成ファイルのserver {}セクションのテンプレートの近くに次のコンテンツを挿入します(テンプレートがあります。サイトのディレクトリ名に注意してください)。

[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.データベースが正しく機能しているかどうかをテストします

[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. Discuzをデプロイします!コミュニティフォーラムWebアプリケーション

[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. http://14.0.0.40/test/install/index.phpと入力してフォーラムをインストールし、http://14.0.0.40/test/index.phpを
使用してフォーラムに
ここに写真の説明を挿入
ログインしてhttp://14.0.0.40/testログインします。 /admin.phpは管理センターに直接入ることができますここに写真の説明を挿入

おすすめ

転載: blog.csdn.net/Houtieyu/article/details/109121493