当前位置: 首页 > news >正文

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 webmaster@dophp.com    

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 webmaster@dophp.com    

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 webmaster@yourdomain.com    

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服务器的配置步骤。

相关文章:

PHP动态网站建设

如何配置虚拟主机 1. 学习提纲 本地发布与互联网发布&#xff1a;介绍了如何通过本地IP地址和互联网域名发布网站。 虚拟主机配置与访问&#xff1a;讲解了如何配置虚拟主机&#xff0c;并通过自定义域名访问不同的站点目录。 Web服务器配置&#xff1a;详细说明了如何配置A…...

【gRPC】Java高性能远程调用之gRPC详解

gRPC详解 一、什么是gRPC&#xff1f;二、用proto生成代码2.1、前期准备2.2、protobuf插件安装 三、简单 RPC3.1、开发gRPC服务端3.2、开发gRPC客户端3.3、验证gRPC服务 四、服务器端流式 RPC4.1、开发一个gRPC服务&#xff0c;类型是服务端流4.2、开发一个客户端&#xff0c;调…...

数据结构知识学习小结

一、动态内存分配基本步骤 1、内存分配简单示例&#xff1a; 个人对于示例的理解&#xff1a; 定义一个整型的指针变量p&#xff08;着重认为它是一个“变量”我觉得可能会更好理解&#xff09;&#xff0c;这个变量用来存地址的&#xff0c;而不是“值”&#xff0c;malloc函…...

分布式锁—2.Redisson的可重入锁一

大纲 1.Redisson可重入锁RedissonLock概述 2.可重入锁源码之创建RedissonClient实例 3.可重入锁源码之lua脚本加锁逻辑 4.可重入锁源码之WatchDog维持加锁逻辑 5.可重入锁源码之可重入加锁逻辑 6.可重入锁源码之锁的互斥阻塞逻辑 7.可重入锁源码之释放锁逻辑 8.可重入锁…...

计算机毕业设计SpringBoot+Vue.js球队训练信息管理系统(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

FFmpeg入门:最简单的音视频播放器

FFmpeg入门&#xff1a;最简单的音视频播放器 前两章&#xff0c;我们已经了解了分别如何构建一个简单和音频播放器和视频播放器。 FFmpeg入门&#xff1a;最简单的音频播放器 FFmpeg入门&#xff1a;最简单的视频播放器 本章我们将结合上述两章的知识&#xff0c;看看如何融…...

java 查找两个集合的交集部分数据

利用了Java 8的Stream API&#xff0c;代码简洁且效率高 import java.util.stream.Collectors; import java.util.List; import java.util.HashSet; import java.util.Set;public class ListIntersection {public static List<Long> findIntersection(List<Long> …...

【系统架构设计师】以数据为中心的体系结构风格

目录 1. 说明2. 仓库体系结构风格3. 黑板体系结构风格 1. 说明 1.以数据为中心的体系结构风格主要包括仓库体系结构风格和黑板体系结构风格。 2. 仓库体系结构风格 1.仓库&#xff08;Repository&#xff09;是存储和维护数据的中心场所。2.在仓库风格中&#xff0c;有两种不…...

通过HTML有序列表(ol/li)实现自动递增编号的完整解决方案

以下是通过HTML有序列表(ol/li)实现自动递增编号的完整解决方案&#xff1a; <!DOCTYPE html> <html> <head> <style> /* 基础样式 */ ol {margin: 1em 0;padding-left: 2em; }/* 方案1&#xff1a;默认数字编号 */ ol.default {list-style-type: dec…...

【Python 数据结构 4.单向链表】

目录 一、单向链表的基本概念 1.单向链表的概念 2.单向链表的元素插入 元素插入的步骤 3.单向链表的元素删除 元素删除的步骤 4.单向链表的元素查找 元素查找的步骤 5.单向链表的元素索引 元素索引的步骤 6.单向链表的元素修改 元素修改的步骤 二、Python中的单向链表 ​编辑 三…...

基于 vLLM 部署 LSTM 时序预测模型的“下饭”(智能告警预测与根因分析部署)指南

Alright,各位看官老爷们,准备好迎接史上最爆笑、最通俗易懂的 “基于 vLLM 部署 LSTM 时序预测模型的智能告警预测与根因分析部署指南” 吗? 保证让你笑出猪叫,看完直接变身技术大咖!🚀😂 咱们今天的主题,就像是要打造一个“智能运维小管家”! 这个小管家,不仅能提…...

Java多线程与高并发专题——ConcurrentHashMap 在 Java7 和 8 有何不同?

引入 上一篇我们提到HashMap 是线程不安全的&#xff0c;并推荐使用线程安全同时性能比较好的 ConcurrentHashMap。 而在 Java 8 中&#xff0c;对于 ConcurrentHashMap 这个常用的工具类进行了很大的升级&#xff0c;对比之前 Java 7 版本在诸多方面都进行了调整和变化。不过…...

NL2SQL-基于Dify+阿里通义千问大模型,实现自然语音自动生产SQL语句

本文基于Dify阿里通义千问大模型&#xff0c;实现自然语音自动生产SQL语句功能&#xff0c;话不多说直接上效果图 我们可以试着问他几个问题 查询每个部门的员工数量SELECT d.dept_name, COUNT(e.emp_no) AS employee_count FROM employees e JOIN dept_emp de ON e.emp_no d…...

LeetCode 1328.破坏回文串:贪心

【LetMeFly】1328.破坏回文串&#xff1a;贪心 力扣题目链接&#xff1a;https://leetcode.cn/problems/break-a-palindrome/ 给你一个由小写英文字母组成的回文字符串 palindrome &#xff0c;请你将其中 一个 字符用任意小写英文字母替换&#xff0c;使得结果字符串的 字典…...

计算机视觉|ViT详解:打破视觉与语言界限

一、ViT 的诞生背景 在计算机视觉领域的发展中&#xff0c;卷积神经网络&#xff08;CNN&#xff09;一直占据重要地位。自 2012 年 AlexNet 在 ImageNet 大赛中取得优异成绩后&#xff0c;CNN 在图像分类任务中显示出强大能力。随后&#xff0c;VGG、ResNet 等深度网络架构不…...

//定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果

import java.util.Scanner; public class cha{ public static void main(String[] args){//定义一个方法&#xff0c;把int数组中的数据按照指定的格式拼接成一个字符串返回&#xff0c;调用该方法&#xff0c;并在控制台输出结果//eg&#xff1a; 数组为&#xff1a;int[] arr…...

Python快捷手册

Python快捷手册 后续会陆续更新Python对应的依赖或者工具使用方法 文章目录 Python快捷手册[toc]1-依赖1-词云小工具2-图片添加文字3-BeautifulSoup网络爬虫4-Tkinter界面绘制5-PDF转Word 2-开发1-多线程和队列 3-运维1-Requirement依赖2-波尔实验室3-Anaconda3使用教程4-CentO…...

QT5 GPU使用

一、问题1 1、现象 2、原因分析 出现上图错误&#xff0c;无法创建EGL表面&#xff0c;错误&#xff1d;0x300b。申请不上native window有可能是缺少libqeglfs-mali-integration.so 这个库 3、解决方法 需要将其adb push 到小机端的/usr/lib/qt5/plugins/egldeviceintegrat…...

如何在Spring Boot中读取JAR包内resources目录下文件

精心整理了最新的面试资料和简历模板&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 以下是如何在Spring Boot中读取JAR包内resources目录下文件的教程&#xff0c;分为多种方法及详细说明&#xff1a; 方法1&#xff1a;使用 ClassPathResour…...

《张一鸣,创业心路与算法思维》

张一鸣&#xff0c;多年如一日的阅读习惯。 爱读人物传记&#xff0c;称教科书式人类知识最浓缩的书&#xff0c;也爱看心理学&#xff0c;创业以及商业管理类的书。 冯仑&#xff0c;王石&#xff0c;联想&#xff0c;杰克韦尔奇&#xff0c;思科。 《乔布斯传》《埃隆马斯…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...