LNMP環境構成LNMPアーキテクチャ紹介MySQL PHP Nginx紹介インストール

24454 ワード

LNMPアーキテクチャの紹介
LNMPはLinuxシステムの下でNginx+MySQL+PHPというウェブサイトのサーバーアーキテクチャを表しています.NginxにおけるPHPはfastcgiとしてNginxを結合しており,NginxがPHPをエージェントしたfastcgiと理解できる.
  • はLAMPとは異なり、LNMPでウェブサービスを提供するのはNginxである.
  • LNMPアーキテクチャにおいてPHPは、php−fpmと呼ばれる独立したサービスとして存在する.
  • Nginx直接処理静的要求(サポートされている同時処理がより高く、速度がApacheよりも速い)、動的要求がphp-fpm処理LNMP処理要求プロセスに転送される:
  • 1、ユーザーブラウザがアクセス要求を開始する.
    2、サーバが要求を受け取った後、Nginxサービスは静的要求を処理し、例えばピクチャ、cssなどである.
    3、Nginxは動的要求をphp-fpmサービスに送り、彼が処理する.
    4、php-fpmはmysqlとデータベースのインタラクションを行う.
    5、Nginxは静的動的要求処理結果をユーザに返す.
    NginxはApacheよりも静的処理性能が優れており,特に画像の多いサイトのユーザが同時に数万人に達することができる.Apacheではこれくらいの性能はできません
    1、MySQLインストール
  • LNMP環境とLAMP環境でMySQLをインストールする方法は同じ
  • です.
  • 参照:https://blog.csdn.net/xou6363/article/details/80796230
  • cd/usr/local/src//ソースパッケージをダウンロードするディレクトリ
  • に切り替え
  • wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
  • tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz//解凍
  • mv mysql-5.6.35-linux-glibc2.5-x86_64/usr/local/mysql//名前を変更し、/usr/local/mysql
  • に配置
  • cd/usr/local/mysql//このディレクトリの下に
  • useradd mysql//mysqlユーザー
  • を作成
  • mkdir/data///mysqlのデータを格納するためにディレクトリを作成し、このディレクトリの下にデータディレクトリを置く
  • ./scripts/mysql_install_db--user=mysql--datadir=/data/mysql//初期化とは、mysqlを生成することです.mysqlを起動するには、まずmysqlという独自のライブラリが必要です.mysql
  • というライブラリがあります.
  • cp support-files/my-default.cnf/etc/my.cnf//プロファイルを/etc/にコピーしmyと名前を変更します.cnf
  • cp support-files/mysql.server/etc/init.d/mysqld//起動スクリプトを起動ディレクトリ
  • にコピー
  • 権限変更:chmod 755/etc/init.d/mysqld
  • chkconfig--add mysqld//システムサービスに追加して電源を入れて起動してもコマンドでサービスを起動できます:/etc/init.d/mysqld startまたはservicemysqld start
  • vi/etc/init.d/mysqld//定義vi/etc/initを編集する.d/mysqld//-basedirとdatadirパス
  • を定義
    2、PHP取付
  • とLAMPインストールPHPには違いがあり、php-fpmサービス
  • を開く必要がある.
  • ディレクトリへ:cd/usr/local/src/
  • PHP 5をダウンロードする.6パック:wgethttp://cn2.php.net/distributions/php-5.6.30.tar.gz
  • 解凍:tar zxvf php-5.6.30.tar.gz
  • アカウントの作成:useradd-s/sbin/nologin php-fpm
  • ディレクトリへ:cd php-5.6.30
  • PHP 5をコンパイルする.6:[root@localhost src]# cd php-5.6.30 [root@localhost php-5.6.30]# ./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl
  • その後:make&&make install
  • PHPのインストールで欠落したパッケージが発生する可能性があります.
  • yum install -y libxml2-devel//XML2
  • yum install-y openssl-devel//OpenSSLが欠けている
  • yum install-y bzip 2-devel//BZip 2が欠けている
  • yum install-y libjpeg-devel//libjpeg
  • 欠落
  • yum install-y libpng-devel//libpng-develが欠けている
  • yum install-y freetype-devel//freetype-develが欠けている
  • yum install-y libcurl-devel//libcurl-develが欠けている
  • yum install-y epel-release&&yum install-y libmcrypt-devel//libmcrypt-develが欠けている
  • make clean:既存のmake構成をクリアします.PHPがインストールされているためです.
  • php-fpmコアファイルおよびインストールディレクトリ構造
  • を確認する
    [root@localhost ~]# ls /usr/local/php-fpm/
    bin  etc  include  lib  php  sbin  var 
    [root@localhost ~]# ls /usr/local/php-fpm/sbin/
    php-fpm       //php-fpm        
    [root@localhost ~]# ls /usr/local/php-fpm/var/
    log  run     //log        、run  pid   
  • ソースパケットからプロファイルphpをコピーする.iniからphp-fpm/etc/ディレクトリ:php-fpmを編集する.confプロファイル
  • プロファイルリファレンス:https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/php-fpm.conf?public=true
  • [root@localhost ~]# vim /usr/local/php-fpm/etc/php-fpm.conf
    global]
    #      
    pid = /usr/local/php-fpm/var/run/php-fpm.pid
    error_log = /usr/local/php-fpm/var/log/php-fpm.log
    [www]
    listen = /tmp/php-fcgi.sock
    #    ,    :listen = 127.0.0.1::9000,    ,       IP:port
    #         Nginx PHP   Nginx  PHP   
    listen.mode = 666
    #     socket         ,    .sock     
    user = php-fpm
    group = php-fpm
    #  php-fpm     
    pm = dynamic
    pm.max_children = 50
    pm.start_servers = 20
    pm.min_spare_servers = 5
    pm.max_spare_servers = 35
    pm.max_requests = 500
    rlimit_files = 1024
    #           
  • 起動スクリプト
  • の構成
               :
    [root@localhost php-5.6.30]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
          :
    [root@localhost php-5.6.30]# chmod 755 /etc/init.d/php-fpm
           :
    [root@localhost php-5.6.30]# chkconfig --add php-fpm
          :
    [root@localhost php-5.6.30]# chkconfig php-fpm on
      php-fpm  :
    [root@localhost php-5.6.30]# service php-fpm start
    Starting php-fpm  done

    3、Nginx紹介
  • Nginxはロシア人が開発した小型で強力なwebサービスで、公式サイトにダウンロードできます:nginx.orgの最新バージョンは1.15で、安定バージョンは1.12 stable
  • です.
  • nginxには、Webサービス、逆エージェント、負荷等化など、多くのアプリケーションシーンがあります.
  • nginxの静的ファイル処理性能はApacheよりずっと強い.宝を洗うウェブサイトはnginx+tomcatでjava環境
  • を構築するためです
  • nginxには有名な分岐点がある:淘宝網はnginxカスタマイズ開発のTengineに基づいて、彼の配置ファイル名とサービス名は基本的にnginxと一致して、nginxの基礎の上でいくつかのカスタマイズ化のモジュールを増加して、安全制限の面で比較的に際立った性能があって、またjs、cssの合併をサポートして、淘宝サイトは大型のショッピングプラットフォームであるため、多くの商品が展示されているページには、大量の静的ファイルが含まれており、これらのファイルの統合をサポートし、リソースの要求を大幅に削減し、サーバの処理効率を高めることができます.
  • nginxのコアコンポーネント+lua関連モジュールは、luaの高性能をサポートするwebコンテナopenresty
  • を構成することもできる.
    4、Nginxインストール
  • インストールパッケージ
  • をダウンロードして解凍する
  • cd/usr/local/src///ディレクトリ
  • wget http://nginx.org/download/nginx-1.12.1.tar.gz//Nginxパッケージ
  • をダウンロード
  • tar zxvf nginx-1.12.1.tar.gz解凍パッケージ
  • [root@localhost ~]# cd /usr/local/src/
    [root@localhost src]# wget http://nginx.org/download/nginx-1.12.1.tar.gz
    --2018-07-01 16:01:23--  
    
    [root@localhost src]# ls
    apr-1.6.3               httpd-2.4.29.tar.gz                           php-5.6.30.tar.gz
    apr-1.6.3.tar.gz        mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz  php-7.1.6
    apr-util-1.6.1          mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz     php-7.1.6.tar.bz2
    apr-util-1.6.1.tar.bz2  nginx-1.12.1.tar.gz                           phpredis-develop
    httpd-2.4.29            php-5.6.30                                    phpredis-develop.zip
    [root@localhost src]# tar zxf nginx-1.12.1.tar.gz
  • 構成コンパイルオプション
  • cd nginx-1.12.1
  • ./configure --prefix=/usr/local/nginx
  • [root@localhost src]# cd nginx-1.12.1/
    [root@localhost nginx-1.12.1]# ./configure --prefix=/usr/local/nginx
  • コンパイルおよびインストール
  • make && make install
  • [root@localhost nginx-1.12.1]# make && make install
    make -f objs/Makefile
    [root@localhost nginx-1.12.1]# echo $?
    0
  • のインストールに成功し、nginxディレクトリ構造とコアファイル
  • を表示
    [root@localhost nginx-1.12.1]# cd /usr/local/nginx/
    [root@localhost nginx]# ls
    conf  html  logs  sbin  //         、    、    、    
    [root@localhost nginx]# ls -l sbin/nginx  //       
    -rwxr-xr-x. 1 root root 3659680 7    1 16:49 sbin/nginx
  • プロファイル
  • を修正、確認する
  • スクリプトリファレンス:https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/etc_init.d_nginx
  • [root@localhost nginx]# vim /etc/init.d/nginx

    コピーリファレンススクリプトの保存を終了します.
  • 起動スクリプトを編集し、755権限に変更します.起動リストに参加し、起動を設定する:nginxサービス
  • を起動する
    [root@localhost nginx]# chmod 755 /etc/init.d/nginx  //   755  
    [root@localhost nginx]# ls -l /etc/init.d/nginx
    -rwxr-xr-x. 1 root root 1133 7    1 17:02 /etc/init.d/nginx
    [root@localhost nginx]# chkconfig --add nginx //        
    [root@localhost nginx]# chkconfig nginx on  //      
    [root@localhost nginx]# /etc/init.d/nginx start //  nginx  
    Starting nginx (via systemctl):
  • Nginxプロファイル
  • を変更

  • プロファイルスクリプトリファレンス:https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/nginx.conf?public=true
  • [root@localhost conf]# vim nginx.conf
    [root@localhost conf]# /usr/local/nginx/sbin/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
    [root@localhost conf]# /etc/init.d/nginx start  //    

    プロセスの表示
    [root@localhost conf]# ps aux |grep nginx
    root     13170  0.0  0.0  20540   620 ?        Ss   17:20   0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    nobody   13171  0.0  0.3  22984  3204 ?        S    17:20   0:00 nginx: worker process
    nobody   13172  0.0  0.3  22984  3204 ?        S    17:20   0:00 nginx: worker process
    root     13175  0.0  0.0 112720   980 pts/0    S+   17:21   0:00 grep --color=auto nginx

    テスト:
    Nginx  :
    [root@localhost conf]# curl localhost -I
    HTTP/1.1 200 OK
    Server: nginx/1.12.1
    Date: Sun, 01 Jul 2018 09:28:32 GMT
    Content-Type: text/html
    Content-Length: 612
    Last-Modified: Sun, 01 Jul 2018 08:49:36 GMT
    Connection: keep-alive
    ETag: "5b3895a0-264"
    Accept-Ranges: bytes
    PHP  :
    [root@localhost conf]# vim /usr/local/nginx/html/1.php //  php
    [root@localhost conf]# curl localhost/1.php
    this is nginx test page 
    [root@localhost conf]#