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

LNMP 架構介紹

LNMP代表的就是:Linux系統下Nginx+MySQL+PHP這種網站服務器架構。Nginx中的PHP是以fastcgi的方式結合Nginx的,可以理解爲Nginx代理了PHP的fastcgi。

  • LNMP 工作模式

pp3DPS.png

  • 和LAMP不同的是,提供web服務的是Nginx
  • 並且php是作爲一個獨立服務存在的,這個服務叫做php-fpm
  • Nginx直接處理靜態請求,動態請求會轉發給php-fpm
  • 對於靜態文件處理上性能高於apache,用戶併發支持很大,可以上好幾萬,Apache做不到

MySQL 安裝

  • 下載並解壓源碼包

    下載包:
    [root@localhost src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36.tar.gz

    解壓:
    [root@localhost src]# tar -zxv -f mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

    移動解壓後的文件並修改文件名:
    將解壓出來的mysql-5.6.35-linux-glibc2.5-x86_64 文件移動到/usr/local/目錄下,並改名爲mysql。
    [root@localhost src]# mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql

    切換到/usr/lcoal/mysql/目錄
    [root@localhost src]# cd /usr/local/mysql/

    創建賬號和/data/目錄:
    [root@localhost mysql]# useradd mysql
    [root@localhost mysql]# mkdir /data/

  • 配置mysql

    [root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

    #如果在安裝過程中出現兩個ok,則安裝成功。或者使用命令echo $? 命令,輸出結果爲0則安裝成功。結果爲1則安裝失敗。

  • 拷貝配置文件

    配置文件的目錄爲:/usr/local/mysql/support-files/my-default.cnf
    [root@localhost mysql]# cp support-files/my-default.cnf /etc/my.cnf

    mysql的配置文件固定放在/etc/下,並且名字爲my.cnf(如果爲其它目錄需要去指定,否則系統只會去找/etc/my.cnf文件。)

    也不可以拷貝配置文件,直接使用現成的/etc/my.cnf 文件,編輯此文件,修改如下內容:
    datadir=/data/mysql
    socket=/tmp/mysql.sock
    註釋掉這三行:

    log-error=/var/log/mariadb/mariadb.log

    pid-file=/var/run/mariadb/mariadb.pid

    !includedir /etc/my.cnf.d

  • 啓動腳本

    啓動腳本目錄爲:/usr/local/mysql/support-files/mysql.server

    將啓動腳本拷貝到/etc/init.d/目錄下,改名爲:mysqld
    [root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld

    編輯/etc/init.d/mysqld文件:
    basedir=/usr/local/mysql
    datadir=/data/mysql
    (46,47行)

    權限變更:
    將文件權限改爲755(默認爲755,不需要改)
    chmod 755 /etc/init.d/mysqld

    設置開機啓動,將該服務加到系統服務列表中:
    [root@localhost mysql]# chkconfig --add mysqld
    [root@localhost mysql]# chkconfig --list

    注意:該輸出結果只顯示 SysV 服務,並不包含原生 systemd 服務。SysV 配置數據可能被原生 systemd 配置覆蓋。
    如果您想列出 systemd 服務,請執行 'systemctl list-unit-files'。
    欲查看對特定 target 啓用的服務請執行
    'systemctl list-dependencies [target]'。
    mysqld 0:關 1:關 2:開 3:開 4:開 5:開 6:關

    還可以直接用命令啓動:

    /etc/init.d/mysqld start

    service mysqld start

    [root@localhost mysql]# service mysqld start
    Starting MySQL.Logging to '/data/mysql/localhost.localdomain.err'.
    . SUCCESS! #啓動成功
    可以使用命令:
    ps aux | grep mysqld 查看進程
    netstat -lntp 查看監聽端口

    停止mysqld服務
    service mysqld stop

    命令行的方式啓動(&在後臺啓動):
    /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &

PHP 安裝

如果之前安裝過PHP,需要清除其原有的配置:
[root@localhost src]# cd php-5.6.30
[root@localhost src]# make clean
  • 下載並解壓PHP

    下載包:
    [root@localhost php]# wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2

    解壓包:
    [root@localhost php]# tar -jxv -f php-7.1.6.tar.bz2

    將包移動到/usr/local/下並重命名爲php
    [root@localhost php]# mv php-7.1.6 /usr/local/php

  • 配置

    [root@localhost src]# cd /usr/local/php/
    [root@localhost php]# ./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-pdo-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

    配置過程中可能會需要安裝其它包,詳見php安裝。

  • 編譯和安裝

    [root@localhost php]# make
    ......

    [root@localhost php]# echo $?
    0

    [root@localhost php]# make install
    ......

    [root@localhost php]# echo $?
    0

  • 查看php-fpm加載了哪些模塊

    [root@localhost php]# /usr/local/php-fpm/sbin/php-fpm -m

  • 檢查php-fpm配置文件

    [root@localhost php]# /usr/local/php-fpm/sbin/php-fpm -t

配置php-fpm

  • 創建php-fpm用戶

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

該賬號用來運行php-fpm服務,因爲在LNMP環境中,PHP是以一種服務的形式獨立存在的。

  • 將php配置文件添加到php-fpm配置文件目錄

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

  • 配置文件

    切換到/usr/lcoal/php-fpm/etc 目錄下:
    [root@localhost php]# cd /usr/local/php-fpm/etc

    添加php-fpm.conf文件,並加入如下內容:
    [root@localhost etc]# vim 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 etc]# /usr/local/php-fpm/sbin/php-fpm -t
    [02-Jan-2018 23:18:03] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful

  • 配置啓動腳本

    切換到/usr/local/php/目錄下
    [root@localhost etc]# cd /usr/local/php/

    將啓動腳本添加到系統配置文件中:
    [root@localhost php]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

    更改文件權限:
    [root@localhost php]# chmod 755 /etc/init.d/php-fpm

    設置開機啓動
    [root@localhost php]# chkconfig --add php-fpm
    [root@localhost php]# chkconfig php-fpm on

    啓動php-fpm服務:
    [root@localhost php]# service php-fpm start
    Starting php-fpm done

    查看服務是否啓動成功:
    [root@localhost etc]# ps aux | grep php

    Nginx介紹

Nginx("engine x")是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。其特點是佔有內存少,併發能力強,事實上nginx的併發能力確實在同類型的網頁服務器中表現較好,中國大陸使用nginx網站用戶有:百度、新浪、網易、騰訊、 淘寶等。

  • Nginx 應用場景:

    web服務器、反向代理、負載均衡

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章