PHP动态网站建设

如何配置虚拟主机

1. 学习提纲

  • 本地发布与互联网发布:介绍了如何通过本地IP地址和互联网域名发布网站。

  • 虚拟主机配置与访问:讲解了如何配置虚拟主机,并通过自定义域名访问不同的站点目录。

  • Web服务器配置 :详细说明了如何配置Apache服务器,包括修改hosts文件、httpd.conf文件以及虚拟主机配置文件。

2. 知识架构

  • Web服务器配置 :包括修改hosts文件、配置虚拟主机、访问权限控制等。

  • 虚拟主机配置 :通过修改httpd.confhttpd-vhosts.conf文件,实现多域名多站点的配置。

  • 访问权限控制 :通过<Directory>指令控制目录的访问权限,增强服务器的安全性。

3. 虚拟主机配置步骤

  • 1.配置虚拟主机:以XAMPP的Apache为例,默认情况下,Apache只有D:\xampp\htdocs目录下的这一个站点。( Web服务器配置------修改hosts文件,将域名解析到本地)通过虚拟主机,可以实现用自定义的域名来访问,并且可以为不同的域名指定不同的站点目录。(1). 配置IP地址和域名的映射关系:申请真实的域名需要一定的费用,为了方便开发,可以通过修改hosts文件来实现将任意域名解析到本地。在C:\Windows\System32\drivers\etc的hosts文件中配置IP地址和域名的映射关系。
  • 第一步:修改hosts文件,将域名解析到本地。配置IP地址和域名的映射关系
  • 第二步:启动Apache
  • 第三步:修改httpd.conf文件,启用虚拟主机配置文件
  • 第四步:找到并打开虚拟主机配置文件httpd-vhosts.conf
  • 第五步:在httpd-vhosts.conf配置文件中进行虚拟主机的配置。为不同的域名指定不同的站点目录
  • 第六步:创建对应的站点
  • 第七步:访问虚拟主机:在浏览器地址栏中输入域名www.cs.com,测试虚拟主机能否正常访问。
  • 注意:PHP页面没有预览效果,预览仅能看到默认文档流 效果,看不到复杂CSS样式

Web服务器配置

配置虚拟主机在:hosts文件中配置IP地址和域名的映射关系:

127.0.0.1 www.php.test

127.0.0.1 www.admin.test

配置虚拟主机:修改httpd.conf文件,启用虚拟主机配置文件,去掉"#"号:

#Include conf/extra/httpdvhv

配置虚拟主机:在httpd-vhosts.conf虚拟主机配置文件,添加虚拟主机的配置:

<VirtualHost *:80>

DocumentRoot "c:/web/apache2.4/htdocs"

ServerName localhost

</VirtualHost>

<VirtualHost *:80>

DocumentRoot "C:/web/apache2.4/htdocs/www.php.test"

ServerName www.php.test </VirtualHost>

<VirtualHost default:80>

DocumentRoot "${SRVROOT}/htdocs"

#ServerName www.example.com:80

</VirtualHost>

配置虚拟主机:启动XAMPP的Apache,在htdocs目录中创建www.php.test目录 创建index.html,内容为"Welcome www.php.test",访问两个虚拟主机。

**访问权限控制:**在Apache的主配置文件httpd.conf中,默认已经添加了一些目录的配置,这些配置写在<Directory>指令中,一共有两处目录配置。‌ 第1处是根目录配置,表示拒绝所有对根目录的访问请求,进一步增强了服务器的安全性。当用户访问某个目录时,Apache会查找该目录的配置和所有上级目录的配置,该目录的配置会覆盖上级目录的配置。

4. 访问权限控制

  • 根目录配置:默认拒绝所有访问,增强安全性。

  • htdocs目录配置:允许访问,启用目录浏览功能。

  • 案例练习:配置一个虚拟主机,关闭目录浏览功能,开启分布式配置文件,只允许本地访问。

C:\xampp\apache\conf\extra\httpd-vhosts.conf

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot "/dophp"

ServerName dophp.com

ServerAlias www.dophp.com

ErrorLog "/logs/.com-error_log"

CustomLog "/logs/dophp.com-access_log" common

<Directory "/dophp">

Options Indexes FollowSymLinks

AllowOverride All

Order allow,deny

Allow from all

Require all granted

</Directory>

</VirtualHost>

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot "/htdocs/dophp"

ServerName dophp.com

ServerAlias www.dophp.com

ErrorLog "/logs/.com-error_log"

CustomLog "/logs/dophp.com-access_log" common

<Directory "/htdocs/dophp">

Options Indexes FollowSymLinks

AllowOverride All

Order allow,deny

Allow from all

Require all granted

</Directory>

</VirtualHost>

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot "/var/www/yourdomain"

ServerName yourdomain.com

ServerAlias www.yourdomain.com

ErrorLog "/var/log/httpd/yourdomain.com-error_log"

CustomLog "/var/log/httpd/yourdomain.com-access_log" common

<Directory "/var/www/yourdomain">

Options Indexes FollowSymLinks

AllowOverride All

Order allow,deny

Allow from all

Require all granted

</Directory>

</VirtualHost>

5. XAMPP环境搭建

索引方式: 80端口下的 默认根目录 的索引 Index of/

  • 安装Apache:配置Apache的安装路径和服务器域名。

  • 安装MySQL:创建配置文件,初始化MySQL,设置root用户密码。

  • 安装PHP:配置PHP模块,测试PHP是否安装成功。

6. 小结

  • 虚拟主机配置与访问:通过虚拟主机实现多站点管理。

  • 访问权限设置:通过配置文件控制目录访问权限,增强安全性。

  • Web服务器配置:详细讲解了Apache服务器的配置步骤。

相关推荐
He_k9 分钟前
‘js@https://registry.npmmirror.com/JS/-/JS-0.1.0.tgz‘ is not in this registry
开发语言·javascript·ecmascript
星夜98214 分钟前
C++回顾 Day6
开发语言·数据结构·c++·算法
UpUpUp……2 小时前
C++复习
开发语言·c++·笔记
艾莉丝努力练剑3 小时前
深入详解编译与链接:翻译环境和运行环境,翻译环境:预编译+编译+汇编+链接,运行环境
c语言·开发语言·汇编·学习
开发者工具分享5 小时前
Lua 的速度为什么比 Python 快
开发语言·python·lua
蔗理苦5 小时前
2025-05-28 Python&深度学习8——优化器
开发语言·pytorch·python·深度学习·优化器
格子衫-20035 小时前
Java八股-Java优缺点,跨平台,jdk、jre、jvm关系,解释和编译
java·开发语言·jvm
Yurko135 小时前
【C语言】函数指针及其应用
c语言·开发语言·学习
zhifanxu6 小时前
Android开发常用Kotlin高级语法
android·开发语言·kotlin
困惑阿三6 小时前
解决 iTerm2 中 nvm 不生效的问题(Mac 环境)
开发语言·前端·macos·bash