天天看點

LNMP架構介紹、MySQL安裝、PHP安裝、Nginx介紹

LNMP架構介紹

    LNMP:linux+nginx+mysql+php的架構;php的動态處理交給php-fpm(127.0.0.1:9000),靜态處理直接由nginx處理

工作模式:

<a href="https://s1.51cto.com/oss/201711/14/9ceb820b6a9fd7668bfde054c4744c55.png-wh_500x0-wm_3-wmp_4-s_508204070.png" target="_blank"></a>

1、在lamp中php作為獨立的服務(php-fpm)存在

2、nginx支援高并發,動态請求轉給php-fpm

MySQL安裝

PHP安裝(php-fpm)

1、[root@centos7 package]# wget http://cn2.php.net/distributions/php-5.6.30.tar.gz

2、[root@centos7 package]# tar zxf php-5.6.30.tar.gz

[root@centos7 package]# useradd -s /sbin/nologin php-fpm

[root@centos7 php-5.6.30]# yum install  -y  gcc gcc-c++ libxml2-devel openssl-devel libcurl-devel libjpeg-devel libpng-devel freetype libmcrypt-devel

[root@centos7 package]# cd php-5.6.30

[root@centos7 php-5.6.30]# make clean

[root@centos7 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

[root@centos7 php-5.6.30]# make &amp;&amp; make install

[root@centos7 php-5.6.30]# echo $?

[root@centos7 php-5.6.30]# cp php.ini-production /usr/local/php-fpm/etc/php.ini

[root@centos7 php-5.6.30]# vi /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

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@centos7 php-5.6.30]# /usr/local/php-fpm/sbin/php-fpm -t

啟動:

[root@centos7 php-5.6.30]# chmod 755 /etc/init.d/php-fpm

[root@centos7 php-5.6.30]#  chkconfig --add php-fpm

[root@centos7 php-5.6.30]#  chkconfig php-fpm on

[root@centos7 php-5.6.30]# service php-fpm start

Starting php-fpm  done

[root@centos7 php-5.6.30]# ps aux| grep php-fpm

Nginx介紹

Nginx應用場景:web服務、反向代理、負載均衡

Nginx著名分支,淘寶基于Nginx開發的Tengine,使用上和Nginx一緻,服務名,配置檔案名都一樣,和Nginx的最大差別在于Tenging增加了一些定制化子產品,在安全限速方面表現突出,另外它支援對js,css合并

Nginx對比apache的優點:

1、輕量級,同樣起web 服務,比apache 占用更少的記憶體及資源

2、靜态處理,Nginx 靜态處理性能比 Apache 高 3倍以上

3、抗并發,nginx 處理請求是異步非阻塞的,而apache則是阻塞型的,在高并發下nginx 能保持低資源低消耗高性能。在Apache+PHP(prefork)模式下,如果PHP處理慢或者前端壓力很大的情況下,很容易出現Apache程序數飙升,進而拒絕服務的現象。

4、高度子產品化的設計,編寫子產品相對簡單

5、社群活躍,各種高性能子產品出品迅速啊

apache對比nginx的優點

1、rewrite,比nginx 的rewrite 強大

2、子產品超多,基本想到的都可以找到

3、少bug,nginx的bug相對較多

4、超穩定

5、Apache對PHP支援比較簡單,Nginx需要配合其他後端用

選擇Nginx的優勢所在

作為Web伺服器: Nginx處理靜态檔案、索引檔案,自動索引的效率非常高。

作為代理伺服器,Nginx可以實作無緩存的反向代理加速,提高網站運作速度。

作為負載均衡伺服器,Nginx既可以在内部直接支援Rails和PHP,也可以支援HTTP代理伺服器對外進行服務,同時還支援簡單的容錯和利用算法進行負載均衡。

在性能方面,Nginx是專門為性能優化而開發的,在實作上非常注重效率。它采用核心Poll模型(epoll and kqueue ),可以支援更多的并發連接配接,最大可以支援對50 000個并發連接配接數的響應,而且隻占用很低的記憶體資源。

在穩定性方面,Nginx采取了分階段資源配置設定技術,使得CPU與記憶體的占用率非常低。Nginx官方表示,Nginx保持10 000個沒有活動的連接配接,而這些連接配接隻占用2.5MB記憶體,是以,類似DOS這樣的攻擊對Nginx來說基本上是沒有任何作用的。

在高可用性方面,Nginx支援熱部署,啟動速度特别迅速,是以可以在不間斷服務的情況下,對軟體版本或者配置進行更新,即使運作數月也無需重新啟動,幾乎可以做到7×24小時不間斷地運作。

同時使用Nginx和Apache

由于Nginx和Apache各自的優勢,現在很多人選擇了讓兩者在伺服器中共存。在伺服器端讓Nginx在前,Apache在後。由Nginx做負載均衡和反向代理,并且處理靜态檔案,講動态請求(如PHP應用)交給Apache去處理。

本文轉自 iekegz 51CTO部落格,原文連結:http://blog.51cto.com/jacksoner/1981734,如需轉載請自行聯系原作者