14.LNMP

1.1LNMP架构说明

1)使前端web服务和后端存储服务进行串联
2)主要实现处理PHP程序动态请求

1.2LNMP架构工作原理

14.LNMP

nginx是处理静态资源的,这里与php结合,可用于处理动态资源
首先nginx请求通过fastCGI接口传送给phpServer
其中php-fpm进程会接收fastCGI请求,
然后交给wrapper进程处理,
php解析器进行解析,
解析后交给wrapper进程处理,
处理后交给php-fpm进程,
php-fpm进程吧结果交给fastCGI接口,返回给用户

1.3LNMP架构部署

1.3.1安装LNMP相关软件

说明,以下Nginx,mysql都安装在了172.16.1.7一台服务器上
①. 部署Linux系统
基础优化操作要完成(防火墙关闭 关闭selinux /tmp权限为1777)
②. 部署nginx服务
暂时忽略
③. 部署mysql服务
yum部署软件  编译安装软件 二进制包方式部署mysql服务,glibc是二进制包
第一个里程:下载并解压mysql软件程序
www.mysql.com--DOWNLOAD--Community--Other Download--Mysql Mirrors--japan找到下面的地址,其中glibc是二进制包
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

第二个里程:创建软件程序软链接
-f 不管连接是否存在,依旧创建连接
ln -sf /application/mysql-5.6.34/ /application/mysql

第三个里程:创建数据库管理用户,并授权数据目录
useradd mysql -M -s /sbin/nologin 
chown -R mysql.mysql /application/mysql/data/

第四个里程:对数据库服务进行初始化
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql
看到两个OK说明没问题

第五个里程:启动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 "oldboy123"
使用用户密码进入数据库
/application/mysql/bin/mysql -uroot -poldboy123

④. 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
cd ../

#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
看到Thank you for using PHP.说明配置过程没问题

##防错(以下信息可以不进行配置,不过后面也会有报错信息提示进行如下操作,这里操作了可以防止报错)
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.conf

第四个里程:启动php程序服务
/application/php/sbin/php-fpm
netstat -lntup|grep php
tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      6251/php-fpm

1.3.2进行软件结合

nginx与php结合:编写nginx配置文件
location ~* .*\.(php|php5)?$ {
   fastcgi_pass  127.0.0.1:9000;
   fastcgi_index index.php;
   include fastcgi.conf;
}

php与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();
                }
?>

[root@web01 conf]# curl blog.etiantian.org/test_info.php
mysql successful by oldboy !

1.3.3部署一个真的网站

第一个里程:下载与上传网站代码

第二个里程:解压程序代码,将程序代码保存到站点目录并进行授权
tar xf wordpress-4.7.3-zh_CN.tar.gz 
mv wordpress/* /application/nginx/html/blog/
chown -R www.www /application/nginx/html/blog/

[root@web01 nginx]# cat conf/nginx.conf
server {
        listen       80;
        server_name  blog.etiantian.org;
        root   html/blog;
        index index.php  index.html index.htm;
        location ~* .*\.(php|php5)?$ {
           fastcgi_pass  127.0.0.1:9000;
           fastcgi_index index.php;
           include fastcgi.conf;
        }
    }

第三个里程:直接访问blog网站,进行初始化操作
访问10.0.0.7

14.LNMP

创建数据库:
create database wordpress;
show databases;

创建连接数据用户信息
grant all on wordpress.* to 'wordpress'@'localhost' identified by 'oldboy123';
select user,host from mysql.user;

14.LNMP

1.4LNMP架构迁移数据库说明

迁移数据库:利用数据库备份命令(mysql mysqladmin mysqldump)
在bd01-51上搭建数据库,把web01-7上的数据库中的数据迁移到51上

1.备份数据库数据库信息
mysqldump -uroot -poldboy123 --all-databases >/tmp/bak.sql
ll /tmp/bak.sql -h
scp /tmp/bak.sql 172.16.1.51:/tmp/

2.恢复数据库数据库信息
##db01 
mysql -uroot -poldboy123 </tmp/bak.sql
###db01添加新的用户
grant all on wordpress.* to wordpress@'172.16.1.0/255.255.255.0' identified by 'oldboy123';
flush privileges;
mysql -uwordpress -poldboy123 -h 172.16.1.51

3.数据库迁移完毕,修改网站连接数据库的配置文件
mysql -uwordpress -poldboy123 -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

1.5LNMP架构数据迁移到NFS存储说明

1.先将原有目录中数据移出
[root@web01 uploads]# cd /application/nginx/html/blog/wp-content/uploads
数据迁移前,要进行数据的备份
[root@web01 uploads]# mkdir /tmp/wordpress_backup -p
[root@web01 uploads]# mv ./* /tmp/wordpress_backup/
[root@web01 uploads]# ll
total 0
[root@web01 uploads]# pwd
/application/nginx/html/blog/wp-content/uploads

数据存储到本地什么位置,获取方法
①. 通过网站页面右键点击,获取资源地址信息
②. find命令利用-mmin 5 
③. 利用inotify服务监控目录数据变化

2.NFS服务器上配置创建共享目录
[root@nfs01 data]# vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash)
[root@nfs01 data]# showmount -e 172.16.1.31
[root@nfs01 data]# mount -t nfs 172.16.1.31:/data /mnt/

3.web01服务器上创建挂载
[root@web01 uploads]# cd /application/nginx/html/blog/wp-content/uploads
[root@web01 uploads]# showmount -e 172.16.1.31
[root@web01 uploads]# mount -t nfs 172.16.1.31:/data ../uploads
[root@web01 wp-content]# df -h
Filesystem         Size  Used Avail Use% Mounted on
/dev/sda3          8.8G  3.9G  4.5G  47% /
tmpfs              238M     0  238M   0% /dev/shm
/dev/sda1          190M   40M  141M  22% /boot
172.16.1.31:/data  8.8G  1.6G  6.8G  19% /application/nginx/html/blog/wp-content/uploads

4.把备份的数据放回来
[root@web01 uploads]# mv /tmp/wordpress_backup/* ./ 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值