Kvm虚拟机上实现amp分机搭建
Posted zkwjl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kvm虚拟机上实现amp分机搭建相关的知识,希望对你有一定的参考价值。
Kvm虚拟机上实现amp分机搭建
##实验前提
在搭建之前,我们需要做好一个amp的实验图。
如上图所示,需要上三台kvm虚拟机,(分别为装载这httpd服务的虚拟机,装载php-fpm服务的虚拟机,装载着mysql服务的虚拟机),
一台跳板机,作为连接kvm虚拟机的机器(用本机的centos即可)。
一台连接外网和内网的windows电脑(装载centos的笔记本)。
一个物理桥br0(centos7上可以连接外网的网卡修改成物理桥,实现httpd服务器可以被访问),
一个httpfpm网桥(使得http服务和php服务可以连接),
一个phpmysql网桥(使得php和mysql可以连接)。
一:搭建网桥
我们首先要安装一些kvm和网桥相关的包
yum -y install libvirt-daemon-kvm qemu-kvm virt-manager libvirt systemctl restart libvirtd
1:搭建http-fpm网桥(网桥都搭建在跳板机上
<network> <name>httpfpm</name> <uuid>06a6d52e-6c03-4b29-bdf7-2cfe6d5e937a</uuid> <bridge name=‘httpfpm‘ stp=‘on‘ delay=‘0‘/> <mac address=‘52:54:00:c6:21:33‘/> <ip address=‘10.0.0.1‘ netmask=‘255.255.255.0‘> <dhcp> <range start=‘10.0.0.2‘ end=‘10.0.0.254‘/> </dhcp> </ip> </network>
进入到/etc/libvirt/qemu/networks/目录下,ls
Default.xml是一个默认模板,我们将他拷贝为httpfpm,然后vim编辑httpfpm.xml
搭建一个httpfpm网桥,需要修改下面的东西
<network> <name>httpfpm</name> <uuid>06a6d52e-6c03-4b29-bdf7-2cfe6d5e937a</uuid> <bridge name=‘httpfpm‘ stp=‘on‘ delay=‘0‘/> <mac address=‘52:54:00:c6:21:33‘/> <ip address=‘10.0.0.1‘ netmask=‘255.255.255.0‘> <dhcp> <range start=‘10.0.0.2‘ end=‘10.0.0.254‘/> </dhcp> </ip> </network>
保存退出,然后启动这个网桥。
virsh net-define /etc/libvirt/qemu/networks/httpfpm.xml
virsh net-start httpfpm
virsh net-autostart httpfpm
我们可以通过 brctl show查看网桥。
上图是我搭建好的所有网桥。
2:搭建php-masql网桥
同理http-fpm网桥,拷贝为phpmysql.xml,然后编辑
<network> <name>phpmysql</name> <uuid>06a6d52e-6c03-4b29-bdf7-2cfe6d5e937b</uuid> <bridge name=‘phpmysql‘ stp=‘on‘ delay=‘0‘/> <mac address=‘52:54:00:c6:21:34‘/> <ip address=‘20.0.0.1‘ netmask=‘255.255.255.0‘> <dhcp> <range start=‘20.0.0.2‘ end=‘20.0.0.254‘/> </dhcp> </ip> </network>
启动网桥。
virsh net-define /etc/libvirt/qemu/networks/phpmysql.xml virsh net-start phpmysql virsh net-autostart phpmysql
3;创建物理桥
物理桥的创建通过centos7的nmcli命令创建
nmcli connection add type bridge con-name br0 ifname br0 nmcli connection modify br0 ipv4.method manual ipv4.addresses 172.18.251.81/16 ipv4.gateway 172.18.0.1 ipv4.dns 172.18.0.1 nmcli connection up br0 nmcli connection add type bridge-slave ifname ens33 master br0 nmcli connection up bridge-slave-ens33.
mkdir -pv /virtualmachines/centos7_base Qemu-img creat -f qcow2 -o size=80G,preallocation=metadata,compat=1.1 /virtualmachines/cent os7_base/centos7.img mount 172.18.0.1:/var/ftp/pub /mnt/
网桥搭建完成后,需要搭建每台kvm虚拟机的虚拟磁盘文件,命令如下
mkdir -pv /virtualmachines/centos7_base Qemu-img creat -f qcow2 -o size=80G,preallocation=metadata,compat=1.1 /virtualmachines/cent os7_base/centos7.img mount 172.18.0.1:/var/ftp/pub /mnt/
二:安装kvm虚拟机
此时装备工作完成,开始通过kvm管理工具(virt-managerzui在虚拟机本机操作,不要通过xshell连接)创建第一台kvm机器(模板机器)。
创建新的kvm虚拟机
选择自己iso镜像安装
然后 在第四步
选择刚才创建的虚拟磁盘
开始安装。安装完成后。开机进入,将模板机添加到vro物理桥上实现,网络通讯,可以通过yum仓库安装需要的软件。
在这台模板机上,安装我们amp所需要的软件包和一些基本命令(看安装系统时,是否选择centos光盘的最简安装)
yum -y install httpd php-fpm php-mysql mariadb-server net-tools vim .
安装完成后 关机 ,回到centos跳板机上操作。
找到刚刚创建的虚拟磁盘文件
cd /virtualmachines/centos7_base
将centos7_base 目录下的img文件,拷贝到同级目录下的其他几个目录下,并改名为
httpd.img php.img mysql.img,当作三台虚拟机的系统(在选择安装虚拟机的第一步 选择导入现有磁盘印象,三台虚拟机分别选择对应的img文件,开始安装 。 然后启动虚拟机)。
虚拟器启动玩后,就需要去根据我们创建的网络图加入各自的网桥。修改一下主机名和选择的img文件对应。
http 虚拟机加入 br0 和http-fpm网桥
Php虚拟机加入http-fpm 和php-mysql网桥
Mysql虚拟机加入php-mysql网桥。
然后查看各自ip 是否 成功分配ip地址。
此时我们的三台虚拟机完成构建。
三:搭建服务
1.httpd服务
进入http主机。开启httpd服务。
进入到httpd配置文件里
cd /etc/httpd/conf.d/
ls
然后添加一个虚拟主机的配置文件,如上图pma.conf
DirectoryIndex index.php <VirtualHost *:80> ServerName pma.magedu.com DocumentRoot /vhost/pam/htdocs ProxyRequests Off ProxyPassMatch ^/(.*.php)$ fcgi://10.0.0.190:9000/vhost/pam/htdocs/$1 <Directory "/vhosts/pam/htdoc"> Options None AllowOverride None Require all granted </Directory> </VirtualHost>
重启httpd服务(需要注意的是我们需要在本机同样创建/vhost/pam/htdocs目录 里面不需要放文件)
2.php服务
进入php主机,安装php-mysql模块。启动php服务
进入配置目录vim /etc/php-fpm.d/www.conf
修改监听端口ip和客户端ip
vim /etc/php-fpm.d/www.conf
注释掉listen.allowed_clients:
保存退出。
重启服务。
php的动态网页wordpress 放在php主机的 /vhost/pam/ 下
做一个软连接 htdocs 链接到 wordpress 。
3.mysql服务。
进入mysql主机,启动mariadb 服务。进入mysql数据库。
创建一个wpdb的库,创建一个wpuser用户,wppass密码。授权库的权限。
grant all on wpdb.* to ‘wpuser‘@‘20.0.0.%.%‘ identified by ‘wppass‘;
四:开始实践
将三台机器的防火墙关掉 ,seliunx关掉。
访问httpd主机的ip地址 效果如下:
开始注册
注册成功开始登陆。
实验完成。
以上是关于Kvm虚拟机上实现amp分机搭建的主要内容,如果未能解决你的问题,请参考以下文章