基于kvm的lamp实现

基于kvm的lamp搭建

环境linux服务器一台可以连接外部网络IP:172.18254.66

Centos 7的镜像

关闭selinux清空防火墙

需要搭建的环境kvm虚拟机三台,踏板机上的三个网桥

要求:

http服务器:网址为172.18.254.66和10.10.0.66,并且只提供httpd服务,别的任何服务不提供,不可以访问外部网络,外部网络可以访问它,以及httpd安装包

php-fpm服务器:只对http服务器提供php服务,php-fpm安装包

mysql服务器:只对php服务器提供mysql服务,mariadb-server安装包

踏板机:可通过踏板机访问控制三台服务器

一、kvm环境的搭建

检查自己的内核是否支持kvm搭建

grep -i -E '(vmx|svm|lm)' /proc/cpuinfo 若过滤出lm与vmx/svm则表示支持kvm搭建

注意:若在VMware等虚拟机上显现本实验则需勾选虚拟化

modprobe kvm   加载kvm模块

yum install qemu-kvm libvirt-daemon-kvm libvirt virt-manager   安装所需软件包

systemctl start libvirtd.service                           启动服务

二、在踏板机上创建2个net桥与一个物理桥

创建http与php的net0桥

cd /etc/libvirt/qemu/networks/

cp default.xml net0.xml

vim net0.xml

<network>

  <name>net0</name>

  <uuid>06a6d52e-6c03-4b29-bdf7-2cfe6d5e937a</uuid>            这一项必须要要修改,也可以删除

  <bridge name='net0' stp='on' delay='0'/>

  <mac address='52:54:00:c6:21:33'/>                             也要修改也可删除

  <ip address='10.10.0.1' netmask='255.255.255.0'>

    <dhcp>

      <range start='10.0.10.2' end='10.10.0.254'/>

    </dhcp>

  </ip>

</network>

virsh net-define /etc/libvirt/qemu/networks/net0.xml          根据文件创建net0

virsh net-start net0                                      开启net0

virsh net-autostart net0                    默认开启net0

创建php-mysql的网桥net1

cd /etc/libvirt/qemu/networks/

cp httpfpm.xml phpmysql.xml

vim httpfpm.xml 

<network>

  <name>net1</name>

  <uuid>06a6d52e-6c03-4b29-bdf7-2cfe6d5e937b</uuid>            修改

  <bridge name='net1' stp='on' delay='0'/>

  <mac address='52:54:00:c6:21:34'/>                    修改

  <ip address='20.20.0.1' netmask='255.255.255.0'>

    <dhcp>

      <range start='20.20.0.2' end='20.0.0.254'/>

    </dhcp>

  </ip>

</network>

virsh net-define /etc/libvirt/qemu/networks/net1.xml

virsh net-start net1

irsh net-autostart net1

创建连接http与外网的物理网桥ph0

nmcli connection add type bridge con-name ph0 ifname br0

nmcli connection modify ph0 ipv4.method manual ipv4.addresses 172.18.254.108/16 ipv4.gateway

nmcli connection up ph0

nmcli connection add type bridge-slave ifname ens33 master ph0

nmcli connection up bridge-slave-ens33

三、创建模板机

qemu-img create –f qcwl –o size=80G,preallocation=metadata compat=1.1 /app/kvm/centos/centos.img   创建虚拟磁盘                              创建虚拟磁盘

virt-manager                      打开图形化界面

我们一般选择最小化安装这样会缺少很多命令,我们应该在模板机内装好我们需要的命令以及配好yum仓库,以方便我们的克隆剩下的就和创建VMware虚拟机一样

管理ip的 rpm -qf $(which ifconfig)
vim  yum -y install vim
lftp yum -y install lftp
补全nmcli的   yum -y install bash-completion

你可以继续通过virt-manager命令控制虚拟机,这里我提供另一个工具wok

安装wod需要wok-2.5.0-0.el7.centos.noarch.rpm与kimchi-2.5.0-0.el7.centos.noarch.rpm包

这个网站有各种各样的管理kvm的工具https://www.linux-kvm.org/page/Management_Tools

yum localinstall  wok-2.5.0-0.el7.centos.noarch.rpm  kimchi-2.5.0-0.el7.centos.noarch.rpm

systemctl  start wokd                      起服务

有可能ngix没有伴随启动我们可以先启动ngix

然后就可以进入浏览器访问https://IP地址:9001  访问wok

 

账号密码就是你centos本机的密码

登录后点击virtualzation,找到模板选项可以看到添加模板如果你的网络比较好可以选择下面的模板,这样你最初的模板机都不用装,内有就放模板机的路径填入

 

这样我们就可以根据模板快速创建其余的虚拟机了

用wod还有一个好处就是可以在网页页面访问本机命令行客户端

 

http服务器

yum –y install httpd

vim /etc/httpd/conf/httpd.conf

在这个里面加入index.php

Cd /etc/httpd/conf.d/

vim pma.conf                               创建虚拟主机

 <VirtualHost *:80>                     

         ServerName coco.magedu.com

         DocumentRoot /vhosts/pam/htdocs                         静态页面访问地址

         ProxyRequests Off                                   

         ProxyPassMatch ^/(.*\.php)$  fcgi://10.10.0.67:9000/var/www/wordpress/$1         动态页面访问地址远程访问

         <Directory "/vhosts/pam/htdocs">

                   Options None                                                          

                   AllowOverride None                                     

                   Require all granted                                    

         </Directory>                                   

</VirtualHost>

systemctl restart httpd         重启服务

当然这里还要修改网络配置我就不写了,前面的博客有如何修改网络配置

php-fpm服务器

在这里我们装一个wordpress

yum  -y install   php-fpm  php-mysql

tar xf wordpress-4.9.4-zh_CN.tar.gz

mv  wordpress-4.9.4-zh  /var/www/ wordpress

chown -R apache.apache wordpress                修改文件属主属组

vim /etc/php-fpm.d/www.conf

  listen = 0.0.0.0:9000                           修改为监听在所有网址的9000端口

  ;listen.allowed_clients = 127.0.0.0/16             注释这一行

systemctl restart php-fpm                重启服务

这时我们访问172.168.254.66就应该可以进入wordpress

Mysql服务器

yum -y install php-mbstring

systemctl restart php-fpm

mysql                          创建一个表和可远程连接的账号

MariaDB [(none)]> create database wpdb;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on *.* to 'root'@'%' identified by 'magedu' with grant option;

Query OK, 0 rows affected (0.00 sec)

访问172.18.254.66在网页输入表名,账号 密码,远程连接主机的地址

 

如果要做访问控制只需添加iptables规则就可以了,前面博客介绍的有iptables规则如何添加

        

猜你喜欢

转载自www.cnblogs.com/angge/p/9921257.html