LNMP
是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python。
LNMP部署流程
一、数据库迁移流程:
第一个历程:将数据进行备份(web)
1.打包 + 定时任务 +rsync
2.备份:
备份全部表:
mysqldump -uroot -p -A >/root/all.sql
备份wordpress表:
mysqldump -uwordpress -p123456 -A >/root/wordpress.sql
3.备份并压缩
mysqldump -uroot -p -A|gzip >/root/all-gzip.sql.gz
4.将备份的数据库恢复:
mysql -uroot -p </root/all.sql
第二个历程:将数据进行迁移(web)
scp -rp /tmp/bak.sql 172.16.1.51:/root/
第三个历程:将数据进行恢复(db01)
安装 yum install -y mariadb-server mariadb
重启 systemctl start mariadb.service
自启 systemctl enable mariadb.service
将数据恢复 mysql -uroot </root/all.sql
第四个历程: 对数据进行检查(mysql)
查看数据库信息 show databases;
查看用户信息 select user,host from mysql.user;
第五个历程:关闭web服务器上本地数据库服务,连接新的数据库服务(web)
systemctl stop mariadb.service
systemctl disable mariadb.service
第六个历程:重新连接数据库 == 重新配置网站链接数据库的代码信息
wordpress:
find . -type f -name '*.php'|xargs grep -i "123456"
vim /usr/share/nginx/html/blog/wp-config.php
/** MySQL hostname */
define( 'DB_HOST', '172.16.1.51' );
wecenter:
find . -type f -name '*.php'|xargs grep -i "123456"
./system/config/database.php
'host' => '172.16.1.51',
第七个历程:配置数据库用户授权信息
grant all on wecenter.* to 'wecenter'@'172.16.1.%' identified by '123456';
grant all on wordpress.* to 'wordpress'@'172.16.1.%' identified by '123456';
grant all on wecenter.* to 'wecenter'@'localhost' identified by '123456';
grant all on wordpress.* to 'wordpress'@'localhost' identified by '123456';
记得删除空表drop user ''@'localhost';
二、将网站web服务器与NFS服务器建立联系
wordpress存储用户上传数据信息位置:wp-content/uploads
wecenter存储用户上传数据信息位置:uploads/article/
第一个历程:部署搭建NFS服务器(nfs01)
[root@nfs01 ~]# yum install -y rpcbind nfs-utils
[root@nfs01 ~]# mkdir -p /data/{blog,zh}
[root@nfs01 ~]# chown nfsnobody.nfsnobody /data/*
[root@nfs01 ~]# ll /data/
total 0
drwxr-xr-x 2 nfsnobody nfsnobody 6 Jun 9 13:31 blog
drwxr-xr-x 2 nfsnobody nfsnobody 19 Jun 9 13:34 zh
[12:47 root@nfs01 ~]# vim /etc/exports
#nfs with blog
/data/blog 172.16.1.0/24(rw,all_squash,sync)
#nfs with zhihu
/data/zh 172.16.1.0/24(rw,all_squash,sync)
[root@nfs01 ~]# systemctl restart rpcbind nfs
[root@nfs01 ~]# showmount -e localhost
Export list for localhost:
/data/zh 172.16.1.0/24
/data/blog 172.16.1.0/24
第二个历程:确认web服务器上网站本地存储目录,并进行挂载
将本地数据进行迁移(blog):
[root@web01 blog]# pwd
/usr/share/nginx/html/blog
[root@web01 blog]# mv wp-content/uploads/* /tmp/blog_tmp/
[root@web01 blog]# ll wp-content/uploads/
total 0
[root@web01 blog]# ll /tmp/blog_tmp/
total 0
drwxr-xr-x 3 nginx nginx 16 Jun 6 19:40 2019
将本地数据进行迁移(zh):
[root@web01 zh]# pwd
/usr/share/nginx/html/zh
[root@web01 zh]# mkdir /tmp/zh_tmp
[root@web01 zh]# mv uploads/article/* /tmp/zh_tmp/
[root@web01 zh]# ll uploads/article/
total 0
[root@web01 zh]# ll /tmp/zh_tmp/
total 0
drwxr-xr-x 2 nginx nginx 50 Jun 9 11:54 20190609
第三个历程:
挂载blog:
mount -t nfs 172.16.1.31:/data/blog /usr/share/nginx/html/blog/wp-content/uploads
挂载zh:
mount -t nfs 172.16.1.31:/data/zh /usr/share/nginx/html/zh/uploads/article
第四个历程:将原有备份存储数据迁移还原
[root@web01 blog]# mv /tmp/blog_tmp/* /wp-content/uploads/
[root@web01 zh]# mv /tmp/zh_tmp/* uploads/article/
常见问题:nfs服务器被挂载上之后,用户无法上传数据
直接修改nfs服务器配置文件添加参数信息(/etc/exports)
/data/blog 172.16.1.0/24(rw,sync,all_squash)修改nfs服务端存储目录权限(和worker进程用户保持一致)
chown -R nginx.nginx /data/
如果造成root用户无法存储数据,修改配置文件:
/data/blog 172.16.1.0/24(rw,sync,anonuid=worker进程用户uid,anongid=worker进程用户gid