乐趣区

Tshare校园资源共享平台网站开发二之主机浏览器访问虚拟机apache

上一篇博客地址:Tshare 校园资源分享平台 (网站开发一之环境搭建)

回顾

上一篇博客我们已经在一个虚拟机上搭建好了 apache+mysql+php 的环境,并且在虚拟机的浏览器中成功的访问到了 web 站点中的 index.php。

新内容

本篇博客将会讲解如何在主机的浏览器中访问到虚拟机的 apache 服务,毕竟虚拟机流畅性不如主机,而且主机是 Windows 系统或 mac os 系统,可以方便地下载安装自己喜欢地浏览器(这里建议使用 Chrome 浏览器)。

  • 让虚拟机和主机能够互 ping

前面说过,我选择的是 VMware 虚拟机,在 VMware 上实现虚拟机和主机通讯并不需要繁琐的步骤。

1. 将虚拟机的网络连接模式设置为 NAT 模式 (网络地址转换)

2. 点击编辑,选择虚拟网络编辑器,点击右下角的更改设置,然后修改子网 ip 和子网掩码

3. 将多余的网络移除,只剩下 VMnet8

4. 选择 NAT 模式 (与虚拟机共享主机 IP),在点击 NAT 设置,设置网管 IP 为 192.168.10.2

5. 将两个钩选中,然后点击 DHCP 设置

6. 设置动态 IP 范围

7. 打开网络适配器中的 VMnet8 属性

8. 设置其 ip 地址和子网掩码

9. 重启虚拟机,打开终端输入 ifconfig 查看虚拟机 ip 地址,并尝试在主机的命令行下 ping 这个 ip

  • 主机通过虚拟机 ip 访问虚拟机的 apache 服务

centos 系统的防火墙会禁止外网访问某些端口,除非让防火墙开放端口。当然 seLinux 也是一个让人非常头疼的东西,很多时候即使防火墙开发端口,仍然不能访问,原因就是 selinux 在搞鬼。所以首先我们就把 selinux 关闭了。

vim /etc/selinux/config
#将 SELINUX=enforcing 改为 SELINUX=disable
#保存退出,重启虚拟机,开启 apache 服务,在主机浏览器中访问虚拟机 ip

访问成功!(如果访问失败,可能是防火墙没有开启 80 端口,可以百度如何让防火墙开放端口的指令)

  • 主机上连接 mysql

如果你的主机上下载 mysql 的图形操作界面 (navicat for mysql),还可以在主机上远程连接虚拟机的 mysql(当然前提是虚拟机开启了 mysql 服务)

此时连接会报错,告诉我们 192.168.10.1 这个 ip 地址无法远程连接到虚拟机数据库,需要对虚拟机数据库做一些更改

# 登录 mysql
/var/mysql/bin/mysql -uroot -p
password: 此处输入密码

mysql> use mysql;
mysql> update user set host = '%' where user ='root';
mysql> flush privileges;

#重启 mysql 服务 

再次远程连接,即可连接到虚拟机的数据库。当然我这里直接使用了 root 用户登录,你可以创建一个新用户

总结

虚拟机和主机能够通讯是关键,然后是绕过防火墙,就能达到我们的目的了。
下一篇博客地址:Tshare 校园资源分享平台 (网站开发三之数据库连接)

退出移动版