原创文章,转载、引用请注明出处!
目标
在VMWare Workstation之上安装CentOS或Ubuntu操作系统(或其他操作系统)。为虚拟机环境中运行的CentOS或Ubuntu配置网络使之可以访问互联网。在虚拟机中的CentOS或Ubuntu环境中安装Apache服务,并在宿主机中访问Apache提供的Web服务。为VMWare Workstation、CentOS或Ubuntu系统编写安装和配置手册,其中包括故障提示及使用到的一些Linux命令。
介绍
Apache
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。
它可以运行在几乎所有广泛使用的计算机平台上。
Vmware Workstation/Fusion
VMware Workstation(中文名“威睿工作站”)是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试 、部署新的应用程序的最佳解决方案。VMware Workstation可在一部实体机器上模拟完整的网络环境,以及可便于携带的虚拟机器,其更好的灵活性与先进的技术胜过了市面上其他的虚拟计算机软件。对于企业的 IT开发人员和系统管理员而言, VMware在虚拟网路,实时快照,拖曳共享文件夹,支持 PXE 等方面的特点使它成为必不可少的工具。
VMware Fusion允许基于Intel的Mac在虚拟机上运行Microsoft Windows,Linux,NetWare或Solaris等操作系统。
过程
环境
本地环境
VMware Fusion
虚拟机环境
uname -a
:查看内核/操作系统/CPU信息。head -n 1 /etc/issue
:查看操作系统版本。cat /proc/cpuinfo
:查看CPU信息:四核,编号为0-3。
Apache框架
安装
Apache在Ubuntu的默认软件库中可用,因此将使用传统的软件包管理工具进行安装。
sudo apt-get update
:更新本地包索引。sudo apt-get install apache2
:安装apache2。
如果不进行本地包的更新,在安装Apache时可能会报各种各样的错误,一般都与依赖项有关。
调整防火墙
在测试Apache之前,需要修改防火墙,允许外部访问默认的Web端口。
sudo ufw app list
:获得防火墙允许的应用程序配置文件列表。可以看到,有三种可用于Apache的配置文件:(1)Apache :此配置文件仅打开端口80(正常,未加密的Web流量);(2)Apache Full:此配置文件打开端口80(正常,未加密的Web流量)和端口443(TLS/SSL加密流量);(3)Apache Secure :此配置文件仅打开端口443(TLS/SSL加密流量)。sudo ufw allow 'Apache Full'
:允许Apache Full配置文件的传入流量。sudo ufw status
:验证防火墙的更改。
如果显示status:inactive,需要
sudo ufw enable
。
检查安装
sudo systemctl status apache2
:验证安装结果。在上述安装过程结束时,Apache会自动启动默认的Web服务器,所以直接运行该命令就能看到结果,无需使用sudo systemctl start apache2
。
看到绿色的active(running)
证明Apache框架已经正常的安装并启动了。
在虚拟机的浏览器(火狐)键入127.0.0.1
(默认),会看到apache的初始网页。
在Apache框架下配置新的站点
新站点配置
sudo /etc/init.d/apache2 restart
:停止当前的服务器之后再次启动。
重启Apache服务器后,按照以下步骤配置一个新的网点:jfy_test。
sudo mkdir -p /var/www/jfy_test.com/public_html
:第一步是创建目录结构,其中包含将为访客提供的网站数据。document root(Apache寻找内容服务将以此作为根目录)将被设置为/var/www
,命名为jfy_test.com
。在这个目录下,再创建一个public_html
,存放要提供的文件。sudo chown -R $USER:$USER /var/www/jfy_test.com/public_html
:上述目录结构为当前虚拟机下root用户所拥有。如果希望普通用户也能够修改web目录中的文件,可以通过chown
更改权限。$USER
给出当前登录用户的id。sudo chmod -R 755 /var/www
:修改当前用户在/var/www
下的读取权限。
如果当前用户的权限足够,那么修改权限的这两条指令可以跳过。
nano /var/www/jfy_test.com/public_html/index.html
:使用nano在第一步给出的目录中创建一个将要展示的网页文件,如下所示:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/jfy_test.com.conf
:虚拟主机文件是指定虚拟主机的实际配置的文件,并指示Apache Web服务器如何响应各种域请求。Apache附带一个默认的虚拟主机文件:000-default.conf
。这里,将这个默认的虚拟主机文件复制一份,以要新配置的站点为命名。这样做的目的是方便修改。sudo nano /etc/apache2/sites-available/jfy_test.com.conf
:使用nano打开刚才新建的.conf虚拟主机文件,并做如下修改:
sudo a2ensite jfy_test.com.conf
:使用a2ensite
启用新的站点。sudo a2dissite 000-default.conf
:使用a2dissite
禁用定义的默认站点000-default.conf
。
上面的两条关于虚拟主机文件指定的指令没有先后。
完成上述操作后,再次重启服务器使上述命令生效。
检查新配置
在虚拟机的浏览器中键入127.0.0.1
,就可以看到新配置的站点。
在宿主机中使用虚拟机的ip就可以访问到该站点。
ifconfig
:查看ip地址。
在宿主机的浏览器(Safari)中键入虚拟机ip172.16.43.132
,可以看到新配置的站点。
sudo nano /etc/hosts
:设置本地主机文件,将请求jfy_test.com发送到172.16.43.132
。
然后就可以使用www.jfy_test.com
来访问站点。
设置本地主机文件不是必选项。
感想
Apache这个框架在安装方面还是比较友好的,只要安装过程不报错,一条指令就解决。
Linux默认的系统权限并不足以完成上述工作,这一点比较烦。对于这类Unix系统的权限还需要进一步的学习。
可以在虚拟机环境下以预设好的网址来访问站点,但是并没有做到在宿主机上以这个网址做访问。这一步如果能做到的话就更完美了。
参考资料
百度百科:apache: https://baike.baidu.com/item/Apache/6265
百度百科:VMware Workstation: https://baike.baidu.com/item/VMware%20Workstation/9884359?fr=aladdin
百度百科:VMware Fusion: https://baike.baidu.com/item/VMware%20Fusion/5661746?fr=aladdin
如何在Ubuntu 16.04上安装Apache Web服务器: https://www.cnblogs.com/lfri/p/10522392.html
如何设置Ubuntu的16.04截至Apache的虚拟主机: https://www.howtoing.com/how-to-set-up-apache-virtual-hosts-on-ubuntu-16-04/