前面通过三篇实现了Web服务器的搭建、网页开发环境PHP的安装配置和SQL关系数据库的安装。
我们大概理解了,网站其实就是存放了一系列页面并通过入口、交互接口供我们访问和交互的页面。
首先,存放这些页面的地方就是我们搭建的Web服务器;入口就是访问页面的IP地址或域名网站来找到我们的Web服务器;交互的数据比如登录的用户名密码存储在SQL数据库中(不知道这样理解对不)
我们走到了搭建网站的最后一个环节:为Apache设置虚拟主机。
Apache虚拟主机是指在一台服务器上仅运行一个httpd后台程序而运行多个网站,如某公司财务部门有一台Web服务器名为account.yourdomain.com,同时又想为销售部门建立网站,网站内容也放在这台服务器上,是通过sales.yourdomain.com访问,这就要用到虚拟主机设置。
关于虚拟主机,有两种类型,一种基于名称,一种基于IP,有篇文章讲解比较好https://www.yiibai.com/apache_http/apache-virtual-host.html,看过以后也就理解了后面我们为什么要对配置做对应修改。这个文章是我设置完虚拟主机,开始写文章时才看到的,对于一个计算机小白,看过很多Apache虚拟主机的配置教程都是讲操作1,2,3等,我也就囫囵吞枣的照做了,而这类原理文章是告诉你虚拟主机的所以然让你更好的理解并记住。
--------------------------------------------------- 我是配置步骤的分割线 ----------------------------------------------
1. 修改httpd-2.4.46-o111i-x64-vc15\Apache24\conf\httpd.conf文件
搜索Virtual hosts一项(大概是512行),删除掉“Include conf/extra/httpd-vhosts.conf”前面的#,表示加载httpd-vhosts.conf这个文件。
2. 很多教程里忽略的步骤——准备要访问的虚拟主机Web页面
可能很多教程都默认我们都知道要事先存放Web页面,所以就没有写。
我们在一个文件夹里放置等会要访问的html格式页面,如我这里文件夹路径为D:\2_Job\tools\Web,而html格式页面就把之前安装 Apache时的测试页面httpd-2.4.46-o111i-x64-vc15\Apache24\htdocs\index.html复制到D:\2_Job\tools\Web里面就可以了。
为了以示区分,可以在html页面里改些内容,到时候访问时你就知道是访问的Apache默认路径Apache24\htdocs还是自己存放的虚拟主机页面了。
3. 修改httpd-2.4.46-o111i-x64-vc15\Apache24\conf\extra\httpd-vhosts.conf
复制以下代码,覆盖原来的所有内容
<VirtualHost *:80>
DocumentRoot "D:\2_Job\tools\httpd-2.4.46-o111i-x64-vc15\Apache24\htdocs"
ServerName localhost
<Directory "D:\2_Job\tools\httpd-2.4.46-o111i-x64-vc15\Apache24\htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "D:\2_Job\tools\Web"
ServerName www.myBlog.com
<Directory "D:\2_Job\tools\Web">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
其中第一个VirtualHost是Apache默认路径,因为要加载httpd-vhosts.conf文件则必须在httpd-vhosts.conf中添加Apache默认路径,否则我们之前https://blog.csdn.net/qq_38250687/article/details/112653476的默认路径httpd-2.4.46-o111i-x64-vc15\Apache24\htdocs里的Web页面不能被访问。
第二个则是我们添加的另一个虚拟主机的目录,其中DocumentRoot表示该虚拟主机的文件目录;ServerName表示该虚拟主机的域名。这里我的DocumentRoot是"D:\2_Job\tools\Web",ServerName www.myBlog.com。
<VirtualHost *:80>
DocumentRoot "D:\2_Job\tools\httpd-2.4.46-o111i-x64-vc15\Apache24\htdocs"
ServerName localhost
<Directory "D:\2_Job\tools\httpd-2.4.46-o111i-x64-vc15\Apache24\htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "D:\2_Job\tools\Web"
ServerName www.myBlog.com
<Directory "D:\2_Job\tools\Web">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
4. 修改C:\Windows\System32\drivers\etc\host映射关系
使用文本编辑器如notepad++打开,添加自己想访问的域名(模拟外网),修改好后ctrl+s保存。如果权限不够不能保存,会提示请以管理员身份进行编辑和保存,这时以管理员权限保存即可。
5. 重启Apache服务
由于修改了与Apache服务相关的httpd文件,需要重启apache服务。重启方法可以参考搭建网站之一——Windows环境安装Apache服务器软件(附安装时提示端口被占用的问题解决)的步骤4。建议使用命令行启动,可以查看报错信息。
例如我这里显示如下报错:AH00072: make_sock: could not bind to address [::]:443
通过查询得知是443端口被占用了。
需要修改D:\2_Job\tools\httpd-2.4.46-o111i-x64-vc15\Apache24\conf\extra文件夹的httpd-ahssl.conf和httpd-ssl.conf。将两个文件里的443全文搜索替换为444或442(443出现可能不止一处)
修改完成后,重启apache服务正常。
6. 测试
1) 在浏览器中输入http://www.myblog.com/并访问,显示如下页面代表成功 (这里我将php的index.html稍做了修改,如在代码中添加了一行Hello mysql)
2) 这时在浏览器中输入http://localhost/并访问,显示仍然是之前的php测试页面。
3) 也可以在放置网页的文件夹下再放个index1.html,并做稍微修改,访问为http://www.myblog.com/index1.html,这里显示为我修改过的页面。
到这里网站搭建就结束了,但真正的学习还没有结束,下面我们可以继续学习网页知识哦,然后做出更多适合自己的网站。
相比很多网站搭建教程,一上来可能都会介绍阿里云之类的域名购买网站,但我觉得刚开始学习时,我们可能还没做好搭建一个完整网站的准备,所以使用自己的电脑搭建一个简单的网站,是有利于自己学习和理解的。等我们知识储备完善了,再购买一个域名,那时可能更合适。