搭建LNMP实现分离(二)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 搭建LNMP实现分离

搭建知乎WeCenter

1. 下载并解压wecenter包到/zh下并解压授权。

1. [root@nginx ~]# mkdir /zh
2. 
3. [root@nginx ~]# cp -rp /media/WeCenter_3-3-4.zip /zh
4. 
5. [root@nginx ~]# cd /zh
6. 
7. [root@nginx zh]# unzip WeCenter_3-3-4.zip
8. 
9. [root@nginx zh]# chmod -R 777 /zh

2. 创建虚拟主机配置文件

1. [root@nginx zh]# vim /etc/nginx/conf.d/zh.conf
2. 
3. server {
4. 
5.         listen 80;
6. 
7.         server_name www.zh.com;
8. 
9.         root /zh;
10. 
11.         index index.php index.html;
12. 
13. 
14. 
15.         location ~ \.php$ {
16. 
17.                 root /zh;
18. 
19.                 fastcgi_pass 127.0.0.1:9000; //php服务器地址,如分离需要指定PHP服务器。
20. 
21.                 fastcgi_index index.php;
22. 
23.                 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
24. 
25.                 include fastcgi_params;
26. 
27.                 }
28. 
29.         }
30. 
31. [root@nginx zh]# systemctl restart nginx

3. 创建blog数据库和管理用户

1. [root@nginx ~]# mysql -uroot -p123
2. 
3. //省略部分内容
4. 
5. mysql> create database zh;
6. 
7. Query OK, 1 row affected (0.00 sec)
8. 
9. 
10. 
11. mysql> grant all on zh.* to wangwu@localhost identified by '123456';
12. 
13. Query OK, 0 rows affected (0.00 sec)
14. 
15. 
16. 
17. mysql> exit
18. 
19. Bye

4. 通过客户端服务器验证

注意:下面使用测试机1.10访问。

       前面已经安装了wordpress,使用IP访问的话优先访问wordpree论坛,所以需要修改测试机的本地hosts文件或配置DNS域名解析。如两者只安装一个可以忽略域名方式访问,使用IP访问即可。访问http://zh.benet.com登录后台为http://zh.benet.com/?/admin

1. [root@client ~]# echo "192.168.1.4 www.blog.com" >> /etc/hosts
2. 
3. [root@client ~]# echo "192.168.1.4 www.zh.com" >> /etc/hosts

       浏览器访问http://www.zh.com,进入安装页面,拉到最下面确认没问题,点击下一步。

 

       修改下面四项内容,端口默认3306,如使用其他端口需添加上去,完成后点击现在安装。

       根据要求创建管理员用户密码,输入邮箱后点击完成。

       完成后点击访问网站首页即可。

       输入用户密码后登录论坛首页即可。

LNMP实现动静分离

       根据以上操作,lnmp搭建论坛就完成了,下面将进行拆分lnmp。

LNMP数据库的迁移

       1. 为了实现mysql独立运行,现需要把nginx服务器中的mysql数据库迁移到1.5mysql服务器中。打开1.5mysql服务器,安装mysql,配置密码。

1. [root@mysql ~]# rpm -ivh /media/mysql5.6-rpm/*.rpm --nodeps --force
2. 
3. [root@mysql ~]# systemctl start mysqld
4. 
5. [root@mysql ~]# systemctl enable mysqld
6. 
7. [root@mysql ~]# mysqladmin -uroot password
8. 
9. New password:
10. 
11. Confirm new password:

       2. 把nginx服务器(192.168.1.4)中的mysql数据库文件导出,并复制到新的mysql服务器(192.168.1.5)中。

1. [root@nginx ~]# mysqldump -uroot -p123 --all-databases > my.sql
2. 
3. Warning: Using a password on the command line interface can be insecure.
4. 
5. [root@nginx ~]# scp my.sql root@192.168.1.5:/root
6. 
7. The authenticity of host '192.168.1.5 (192.168.1.5)' can't be established.
8. 
9. ECDSA key fingerprint is SHA256:i7pBmvf3GlxXGmjiEWzSfTD1J8gwQ32anS7qK/jbMbM.
10. 
11. ECDSA key fingerprint is MD5:80:da:11:52:72:6d:4e:08:3f:b7:64:25:8c:8f:49:14.
12. 
13. Are you sure you want to continue connecting (yes/no)? yes
14. 
15. Warning: Permanently added '192.168.1.5' (ECDSA) to the list of known hosts.
16. 
17. root@192.168.1.5's password: //输入mysql服务器的root密码
18. 
19. my.sql                                                         100% 1757KB  38.3MB/s   00:00

       3. 在新的mysql服务器上导入数据库文件。

1. [root@mysql ~]# mysql -uroot -p123 < /root/my.sql 
2. 
3. Warning: Using a password on the command line interface can be insecure.
4. 
5. [root@mysql ~]# systemctl restart mysqld

       4. 在新的mysql服务器上创建相同的管理用户和密码。

1. [root@mysql ~]# mysql -uroot -p123 //登录mysql
2. 
3. //省略部分内容
4. 
5. mysql> grant all on blog.* to lisi@'%' identified by '123456'; //创建用户lisi密码123456
6. 
7. Query OK, 0 rows affected (0.00 sec)
8. 
9. 
10. 
11. mysql> grant all on zh.* to wangwu@'%' identified by '123456'; //创建用户wangwu密码123456
12. 
13. Query OK, 0 rows affected (0.00 sec)
14. 
15. mysql> exit
16. 
17. Bye

       5. 在原服务器(nginx服务器1.4)中修改blog和zh的配置文件,重新指定数据库服务器ip。

(1)修改blog配置文件

1. [root@nginx ~]# grep -R 123456 /wordpress //查找blog的配置文件,查看后发现wp-config.php文件
2. 
3. [root@nginx ~]# vim /wordpress/wp-config.php //下面只需要修改服务器IP地址
4. 
5. /** WordPress数据库的名称 */
6. 
7. define('DB_NAME', 'blog');
8. 
9. 
10. 
11. /** MySQL数据库用户名 */
12. 
13. define('DB_USER', 'lisi');
14. 
15. 
16. 
17. /** MySQL数据库密码 */
18. 
19. define('DB_PASSWORD', '123456');
20. 
21. 
22. 
23. /** MySQL主机 */
24. 
25. define('DB_HOST', '192.168.1.5'); //新的mysql服务器的主机地址。

(2)修改zh文件    

1. [root@nginx ~]# grep -R 123456 /zh //查找zh的配置文件,查看后发现/zh/system/config/database.php的配置文件
2. 
3. [root@nginx ~]# vim /zh/system/config/database.php
4. 
5.   'host' => '192.168.1.5',         //该配置文件中依旧只需要修改为新的mysql主机地址。

        以上步骤就完成了mysql的拆分,下面将进行php的拆分。

LNMP的PHP迁移

       1. 打开新的linux服务器,安装PHP。

[root@php ~]# rpm -ivh /media/php-rpm/*.rpm --nodeps --force

       2. 修改nginx服务器(192.168.1.4)中的配置文件,重新指向新的php服务器,blog和zh配置文件都需要修改。

1. [root@nginx ~]# vim /etc/nginx/conf.d/blog.conf
2. 
3.  fastcgi_pass 192.168.1.6:9000; //修改该行配置中的IP为PHP服务器的地址。
4. 
5. [root@nginx ~]# vim /etc/nginx/conf.d/zh.conf
6. 
7. fastcgi_pass 192.168.1.6:9000; //同上
8. 
9. [root@nginx ~]# systemctl restart nginx

       3. 修改PHP服务器(192.168.1.6)的配置文件。

1. [root@php ~]# vim /etc/php-fpm.d/www.conf
2. 
3. listen = 192.168.1.6:9000 //PHP服务器IP
4. 
5. listen.allowed_clients = 192.168.1.4 //web服务器IP,表示允许web主机访问php服务器
6. 
7. [root@php ~]# systemctl restart php-fpm

       4. 复制wordpress和zh安装目录到php根下。

1. [root@php ~]# scp -rp root@192.168.1.4:/wordpress /
2. 
3. root@192.168.1.4's password: //1.4root密码
4. 
5. [root@php ~]# scp -rp root@192.168.1.4:/zh /
6. 
7. root@192.168.1.4's password: //1.4root密码

       5. 客户端(192.168.1.10)验证

       访问http://www.blog.com登录用户验证成功。

       访问http://www.zh.com登录用户验证成功。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
关系型数据库 Java MySQL
|
关系型数据库 MySQL 应用服务中间件
分离部署lnmp架构
分离部署lnmp架构
136 0
分离部署lnmp架构
|
关系型数据库 应用服务中间件 数据库
|
关系型数据库 测试技术 应用服务中间件
|
关系型数据库 应用服务中间件 PHP
|
Web App开发 关系型数据库 应用服务中间件
|
关系型数据库 MySQL 应用服务中间件
|
12月前
|
关系型数据库 MySQL 应用服务中间件
手动部署LNMP环境(Alibaba Cloud Linux 2)
本场景带您体验如何在Alibaba Cloud Linux 2.1903 LTS 64位操作系统的云服务器上搭建LNMP环境。
265 0
|
4月前
|
关系型数据库 应用服务中间件 nginx
基于Docker的LNMP环境微服务搭建
基于Docker的LNMP环境微服务搭建
基于Docker的LNMP环境微服务搭建