一.LNMP介紹 1.使前端web服務和後端存儲服務進行串聯 2.主要實現處理php動態請求 工作原理: L:linux N:nginx M:mysql P:php 二、lnmp部署 我的環境:centos6.9+nginx+mysql5.6+php5 文件存儲系統NFS 1.部署安裝linux系統 ...
一.LNMP介紹
1.使前端web服務和後端存儲服務進行串聯
2.主要實現處理php動態請求
工作原理:
L:linux N:nginx M:mysql P:php
二、lnmp部署
我的環境:centos6.9+nginx+mysql5.6+php5 文件存儲系統NFS
1.部署安裝linux系統(這裡不介紹了)
基礎優化操作要完成(防火牆關閉,關閉selinuxn 將/tmp目錄許可權設為1777)
2.部署nginx服務
這裡暫時忽略...................
3.安裝部署mysql
三種安裝方式:yum部署,源碼編譯安裝,二進位包安裝
本次介紹下二進位安裝方法:
第一個裡程:下載並解壓mysql安裝包
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.1、與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.2、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; }
6、部署一個網站
第一個裡程:下載與上傳網站代碼
第二個裡程:解壓程式代碼,將程式代碼保存到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/* ./ #將之前備份的數據還原