LNMP集羣架構篇

 

一.LNMP介紹

1.使前端web服務和後端存儲服務進行串聯php

2.主要實現處理php動態請求html

工做原理:前端

L:linux  N:nginx  M:mysql   P:phpmysql

2、lnmp部署

個人環境:centos6.9+nginx+mysql5.6+php5  文件存儲系統NFSlinux

1.部署安裝linux系統(這裏不介紹了)

  基礎優化操做要完成(防火牆關閉,關閉selinuxn 將/tmp目錄權限設爲1777)nginx

2.部署nginx服務

  這裏暫時忽略...................web

3.安裝部署mysql

  三種安裝方式:yum部署,源碼編譯安裝,二進制包安裝sql

  本次介紹下二進制安裝方法:數據庫

  第一個里程:下載並解壓mysql安裝包vim

    mysql官方下載連接地址:ftp://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/

    上傳mysql軟件程序,進行利用xftp軟件進行上傳

    tar xf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz

    mv mysql-5.6.34-linux-glibc2.5-x86_64 /application/mysql-5.6.34 (個人安裝目錄爲/application/mysql  你隨意)

  第二里程: 建立程序軟連接

    ln -sf /application/mysql-5.6.34/ /application/mysql

  第三里程:建立數據庫管理用戶,並受權給數據目錄

    useradd -s mysql /sbin/nologin -M

    chown -R mysql.mysql /application/mysql/data/

  第四個里程:對數據庫服務進行初始化

    /application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql

  第五個里程:啓動mysql服務

  

cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld

sed -ri 's#/usr/local#/application#g' /etc/init.d/mysqld /application/mysql/bin/mysqld_safe (將默認的路徑改爲你本身安裝目錄)

cp /application/mysql/support-files/my-default.cnf /etc/my.cnf

/etc/init.d/mysqld start

 

  第六個里程:設置數據庫root用戶登陸密碼

    /application/mysql/bin/mysqladmin -uroot password "密碼=="

    /application/mysql/bin/mysql -uroot -poldboy123  (嫌難敲本身設置軟連接)

4. 安裝部署PHP

  第一里程:解決PHP軟件的依賴關係 

    yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel

    libiconv軟件安裝---字符集轉換庫(默承認以不進行安裝了)

    cd /server/tools

     #wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

    tar zxf libiconv-1.14.tar.gz

    cd libiconv-1.14

    ./configure --prefix=/usr/local/libiconv

    make && make install

    若是用yum安裝的話,注意更新下yum源

    #wget -O /etc/yum.repos.d/epel.repo         
           http://mirrors.aliyun.com/repo/epel-6.repo

    yum -y install libmcrypt-devel mhash mcrypt

    rpm -qa libmcrypt-devel mhash mcrypt

 

 

  第二個里程:下載解壓PHP軟件

    php官方網站下載:php.net

     cd /server/tools/

    tar xf php-5.5.32.tar.gz

    cd php-5.5.32

    ./configure \
    --prefix=/application/php-5.5.32 \
    --with-mysql=/application/mysql-5.6.34 \
    --with-pdo-mysql=mysqlnd \
    --with-iconv-dir=/usr/local/libiconv \
    --with-freetype-dir \
    --with-jpeg-dir \
    --with-png-dir \
    --with-zlib \
    --with-libxml-dir=/usr \
    --enable-xml \
    --disable-rpath \
    --enable-bcmath \
    --enable-shmop \
    --enable-sysvsem \
    --enable-inline-optimization \
    --with-curl \
    --enable-mbregex \
    --enable-fpm \
    --enable-mbstring \
    --with-mcrypt \
    --with-gd \
    --enable-gd-native-ttf \
    --with-openssl \
    --with-mhash \
    --enable-pcntl \
    --enable-sockets \
    --with-xmlrpc \
    --enable-soap \
    --enable-short-tags \
    --enable-static \
    --with-xsl \
    --with-fpm-user=www \
    --with-fpm-group=www \
    --enable-ftp \
    --enable-opcache=no

    ##爲了防錯(配置下如下信息)

    ln -s /application/mysql/lib/libmysqlclient.so.18  /usr/lib64/

    touch ext/phar/phar.phar

    #編譯安裝

    make && make install

    ln -s /application/php-5.5.32/ /application/php

 

   第三個里程:設置PHP程序配置文件

    php.ini php-fpm.ini
    cp php.ini-production /application/php-5.5.32/lib/
    cd /application/php/etc/
    cp php-fpm.conf.default php-fpm.con

 

  第四個里程:啓動php程序服務

    /application/php/sbin/php-fpm
    netstat -lntup|grep php

 

5.php與mysql和nginx進行軟件結合

5.一、與mysql進行結合

  編寫.php文件

  

<?php
    //$link_id=mysql_connect('主機名','用戶','密碼');
    //mysql -u用戶 -p密碼 -h 主機
    $link_id=mysql_connect('localhost','root','oldboy123') or mysql_error();
    if($link_id){
                 echo "mysql successful by oldboy !\n"; 
                }else{
                 echo mysql_error();
                }
?>

 

5.二、php與nginx結合

  編寫nginx配置文件 nginx.conf

 nginx與php結合:編寫nginx配置文件的location
       location ~* .*\.(php|php5)?$ {
          fastcgi_pass  127.0.0.1:9000; #php服務默認9000端口
          fastcgi_index index.php;
          include fastcgi.conf;
       }

 

  

六、部署一個網站

  第一個里程:下載與上傳網站代碼

  第二個里程:解壓程序代碼,將程序代碼保存到nginx站點目錄並進行受權

  例如:

       tar xf wordpress-4.7.3-zh_CN.tar.gz 
       mv wordpress/* /application/nginx/html/blog/
       chown -R www.www /application/nginx/html/blog/

 

 

 

   第三個里程:直接訪問網站,進行初始化操做

    建立數據庫:

    create database 

    建立鏈接數據用戶信息

     grant all on wordpress.* to '用戶名'@'localhost' identified by '密碼'; 

     select user,host from mysql.user;  

 

7. LNMP架構中數據遷移

   在企業生產環境中咱們最後須要將數據遷移至後端的存儲服務器中,實現動靜態資源的分離

   這裏簡單的介紹哈!!!

  01. LNMP架構數據庫服務的遷移

   遷移數據庫:利用數據庫備份命令(mysql mysqladmin mysqldump)

   1) 備份數據庫數據庫信息   

例如:
mysqldump -uroot -p密碼 --all-databases >/tmp/bak.sql
ll /tmp/bak.sql -h
scp /tmp/bak.sql 172.16.1.51:/tmp/ #推送到至遠程數據庫服務器

 

   2) 恢復數據庫數據庫信息   

mysql -uroot -poldboy123 </tmp/bak.sql
###db01添加新的用戶
grant all on wordpress.* to 用戶名@'172.16.1.0/255.255.255.0' identified by '密碼';
flush privileges;
mysql -uwordpress -poldboy123 -h 172.16.1.51

  3) 數據庫遷移完畢,修改網站鏈接數據庫的配置文件

    我此處爲php程序鏈接數據庫配置文件

mysql -u用戶名 -p密碼 -h 172.16.1.51       <-- 修改配置文件以前,先測試網站web服務器與遷移後的數據庫連通性    
vim wp-config.php                                  <-- 修改wordpress上的數據庫鏈接參數信息
/** MySQL主機 */
 define('DB_HOST','172.16.1.51')                    <-- 修改鏈接的主機信息,將localhost修改成172.16.1.51
 說明:web服務器數據庫此時能夠關閉了

 

  4)中止nginx服務器上MySQL服務  

 /etc/init.d/mysql stop

 

 

  02. LNMP架構數據遷移到NFS存儲說明

    01:先將原有目錄中數據移出

cd /application/nginx/html/blog/wp-content/uploads #個人站點目錄下的文件資源路徑
mkdir /tmp/wordpress_backup -p
mv ./* /tmp/wordpress_backup/

 

  注意:

    數據存儲到本地什麼位置,獲取方法
    ①. 經過網站頁面右鍵點擊,獲取資源地址信息
    ②. find命令利用-mmin 5
    ③. 利用inotify服務監控目錄數據變化

  02:NFS服務器上配置建立共享目錄

  

vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash)
showmount -e 172.16.1.31
mount -t nfs 172.16.1.31:/data /mnt/

#在web服務器上        
showmount -e 172.16.1.31
mount -t nfs 172.16.1.31:/data/ ./uploads/ #將nfs共享服務器上的目錄掛載到本地
 mv /tmp/wordpress_backup/* ./  #將以前備份的數據還原
相關文章
相關標籤/搜索