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コアファイルおよびインストールディレクトリ構造 を確認するソースパケットからプロファイル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 起動スクリプト の構成
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解凍パッケージ 構成コンパイルオプション cd nginx-1.12.1 ./configure --prefix=/usr/local/nginx コンパイルおよびインストール make && make install のインストールに成功し、nginxディレクトリ構造とコアファイル を表示プロファイル を修正、確認するスクリプトリファレンス:https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/etc_init.d_nginx
コピーリファレンススクリプトの保存を終了します.起動スクリプトを編集し、755権限に変更します.起動リストに参加し、起動を設定する:nginxサービス を起動する Nginxプロファイル を変更
プロファイルスクリプトリファレンス:https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/nginx.conf?public=true
プロセスの表示
テスト:
LNMPはLinuxシステムの下でNginx+MySQL+PHPというウェブサイトのサーバーアーキテクチャを表しています.NginxにおけるPHPはfastcgiとしてNginxを結合しており,NginxがPHPをエージェントしたfastcgiと理解できる.
2、サーバが要求を受け取った後、Nginxサービスは静的要求を処理し、例えばピクチャ、cssなどである.
3、Nginxは動的要求をphp-fpmサービスに送り、彼が処理する.
4、php-fpmはmysqlとデータベースのインタラクションを行う.
5、Nginxは静的動的要求処理結果をユーザに返す.
NginxはApacheよりも静的処理性能が優れており,特に画像の多いサイトのユーザが同時に数万人に達することができる.Apacheではこれくらいの性能はできません
1、MySQLインストール
2、PHP取付
[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
[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紹介
4、Nginxインストール
[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
[root@localhost src]# cd nginx-1.12.1/
[root@localhost nginx-1.12.1]# ./configure --prefix=/usr/local/nginx
[root@localhost nginx-1.12.1]# make && make install
make -f objs/Makefile
[root@localhost nginx-1.12.1]# echo $?
0
[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
[root@localhost nginx]# vim /etc/init.d/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):
[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]#