关于PHP Apache - 多站点虚拟主机配置和PHP站点发布的教程

news/2025/3/5 6:26:14/文章来源:https://www.cnblogs.com/Axicell/p/18751855

多站点虚拟主机的含义

多站点虚拟主机: 是指在一台物理意义上的电脑(服务器)中,配置多个网站站点,并都可以对外提供“web访问服务”,外界看起来就是有多个站点(或多个服务器)的样子!每个站点,也就是类似一个主机,这就是虚拟主机。

什么是虚拟主机
虚拟主机是指在网络服务器上分出一定的磁盘空间,用户可以租用此部分空间,以供用户放置站点及应用组件,提供必要的数据存放和传输功能。 (简而言之就是服务器)

配置多站点虚拟主机

配置多站点虚拟主机可以分两步:

1、在apache的主配置文件(httpd.conf) ,引入多站点的配置文件(虚拟主机配置文件),在 httpd.conf 搜索 “httpd-vhosts.conf”,打开注释:

Virtual hosts
Include /private/etc/apache2/extra/httpd-vhosts.conf

httpd.conf 中还有一个文件 “mod_vhost_alias.so” ,这个文件专门解决多次或者重复配置的站点,也就是可以写一个站点模板,里面都是自适应填充站点内容找到对应文件,这个可以单独去了解一下,这里我就不打开了,但是推荐使用这个。

LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so

2、在虚拟主机配置文件 (httpd-vhosts.conf)中,再挨个网站进行配置(每个网站一段配置),我们找到 httpd-vhosts.conf 文件打开,我们把里面的所有东西都注释掉,自己来配置。

PHP中域名配置、站点配置、主机别名设置、目录别名设置、以及多站点设置

检测apache配置是否出现错误:
例:F:\amp\apache\conf\httpd.conf -t (若配置过环境变量即不用输入完整路径了)

先做域名配置,在做站点,这样站点的名字已经经过域名解析
域名配置:
1、安装完成apache服务器后,默认站点的安装位置是htdocs;
2、例:修改域名为www.php34.com可以访问和localhost同样的站点,只需要以管理员的身份打开hosts文件(位置:window操作系统目录/system32/drivers/etc/hosts),格式如下:127.0.0.1 localhost
127.0.0.1 www.php34.com
虚拟主机配置:
apache默认的端口为80,可以增加一个端口号;
例:在apache的配置文件http.conf中,找到Listen 80,在其下可以增加一个Listen 8080

1、站点配置:站点的本质对内就是一个文件夹(在apache的http.conf配置文件中设置)
主机(站点)的名字:ServerName “主机名”
主机(站点)的实际文件夹位置:DocumentRoot “站点的实际完整路径”
例:打开apache的配置文件进行配置
增加一个站点的名字 ServerName www.php34.com
站点的实际文件夹位置 DocumentRoot "F:/phplearning" (自己定义的文件夹)
2、设置访问权限(添加该文件夹的访问权限)
在apache的文件夹下加一段话
<Directory "F:\php34learning">
下一行用于设定“可显示文件列表”(当无可显示网页的时候)
Options Indexes
用于设定权限的判断顺序:先拒绝,后允许
Order deny,allow
允许所有(这里没有设定拒绝)
Allow from all

3、设定默认网页,在apache的配置文件中设置

DirectoryIndex index.html test.php(可以写新建该站点下的文件,作为要用的默认网页)

访问www.php34.com/day1即可得到test.php页面
注:对于没有指定要访问明确网页的请求,会按顺序从前往后找这些文件,找到后就“返回”给用户。但是,如果最终都没有找到,此时,Options中的Indexes就发挥作用了:显示该文件夹中的所有文件(和文件夹)

3.2、我们也可以将DirectoryIndex设置项放在一个单独的站点或单独的文件夹中,则只对该单独的站点或单独的文件夹起作用。
把 DirectoryIndex test.php放到
<Directory "F:\php34learning">
下一行用于设定“可显示文件列表”(当无可显示网页的时候)
Options Indexes
用于设定权限的判断顺序:先拒绝,后允许
Order deny,allow
允许所有(这里没有设定拒绝)
Allow from all

中去:
<Directory "F:\php34learning">
下一行用于设定“可显示文件列表”(当无可显示网页的时候)
Options Indexes
用于设定权限的判断顺序:先拒绝,后允许
Order deny,allow
允许所有(这里没有设定拒绝)
Allow from all
DirectoryIndex test.php

访问www.php34.com/day1即可得到test.php页面,只对该站点有效

主机别名设置:
通常,我们在config配置文件中,使用Directory配置项,目的是用来控制文件夹的访问权限。
但我们也可以使用一个独立的文件来控制某文件夹的访问权限。
该文件名必须是: .htaccess
注意:
1),只有后缀和点号(无文件名部分)
2),该文件必须放在要被控制访问权限的文件夹中(不同的文件夹可以放不同的该文件)
3),其“上级文件夹”(通常是Directory设定中的文件夹)必须使用如下代码允许.htaccess发挥作用:
AllowOverride All
4),.htaccess文件中出现代码,几乎可以跟Directory设定中出现的代码一样。
5),如果.htaccess文件有效,则其设置会覆盖其上级设置。
6),此.htaccess文件修改后可以立即发挥作用,无需重启apache

例子:
1、建一个.htaccess文件,放在F:\phplearning\day1\文件夹下
.htaccess内容
DirectoryIndex aa.php
2、在apache的配置文件中加入AllowOverride All
<Directory "F:\php34learning">
Options Indexes
Order deny,allow
Allow from all
AllowOverride All

访问http://www.php34.com/day1将会出现默认的aa.php页面
修改.htaccess文件内容,不用重启apache即可运行

目录别名设置Alias
1、在一个站点中,如果不存在某个文件夹(目录),我们可以通过配置项,来做到“对外”看起来却存在一样,比如:
http://www.php34.com/soft/ 假设站点中不存在soft目录
但我们可以让该地址“可访问”
这就是目录别名(虚拟目录)
2、在apache的配置文件中,找到


在其中加入 Alias /soft "E:\apache22-mysql55-php53"
即:

Alias /soft "真实路径"
Alias /soft "E:\apache22-mysql55-php53"

3、在apache的配置文件中设置文件夹的访问权限
添加下列一段话
<Directory "E:\apache22-mysql55-php53">
Options Indexes
Order deny,allow
Allow from all
AllowOverride All

多站点配置:
1、首先在apache的配置文件http.conf中打开多站点配置文件

Virtual hosts

Include conf/extra/httpd-vhosts.conf
修改为:

Virtual hosts

Include conf/extra/httpd-vhosts.conf
2、打开apache->conf->extra->httpd-vhosts.conf文件,进行多站点配置的ip和端口,
形式如下:
NameVirtualHost IP:端口
*可以代表当前服务器的所有IP地址(通常也就一个)
例:NameVirtualHost *:80 (实际上默认就是设置好的)
3、在NameVirtualHost *:80下面加上下面一段文字,往后就依次一个一个站点配置就可以了,如下所示:
(注意:一旦进行多站点配置,则原来httpd.conf中的默认站点配置就失效了)

站点1:
下一行“*:80”要跟前面NameVirtualHost的设置一样
<VirtualHost *:80>
ServerName www.php34.com
设置主机别名,即用该别名也可以访问(前提是域名解析正确)
ServerAlias php34.com
DocumentRoot "F:\php34learning"
下一行的文件夹路径设置要跟上一行的DocumentRoot一样
<Directory "F:\php34learning">
Options Indexes
AllowOverride All 允许该文件夹中的.htaccess文件生效
Order allow,deny
allow from all
deny from 192.168.3.3
DirectoryIndex index.php test.php 设定默认网页

站点2:
下一行“*:80”要跟前面NameVirtualHost的设置一样
<VirtualHost *:80>
ServerName www.guagua.com
DocumentRoot "F:\amp"
下一行的文件夹路径设置要跟上一行的DocumentRoot一样
<Directory "F:\amp">
Options Indexes
Order allow,deny
allow from all

注:记得做域名配置

怎么做,才能使得配置输入localhost还原到初始页面?
在pache->conf->extra->httpd-vhosts.conf文件中加入以下代码
站点0:
下一行“*:80”要跟前面NameVirtualHost的设置一样
<VirtualHost *:80>
ServerName localhost
DocumentRoot "F:\amp\apache\htdocs"
下一行的文件夹路径设置要跟上一行的DocumentRoot一样
<Directory "F:\amp\apache\htdocs">
Options Indexes
AllowOverride All
Order allow,deny
allow from all
DirectoryIndex index.html index.php

More Information

互联网发布页面

Link: http://axisystem001.3vkj.vip/01/index.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/893823.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

markdown基础用法

内附图片均由Typora制作一:如何打出大标题-方式一:#空格标题,使用几个井号表示为几级标题 例如:一级标题 # 标题 二级标题 ## 标题以此类推。 !注意加空格很重要-方式二:使用快捷键CTRL+数字键123456 例如:CTRL+1即为一级标题,CTRL+2即为二级标题。 !注意:CTRL加0为正…

React—11—redux

一、redux概念 ◼ JavaScript开发的应用程序,已经变得越来越复杂了:  JavaScript需要管理的状态越来越多,越来越复杂;  这些状态包括服务器返回的数据、缓存数据、用户操作产生的数据等等,也包括一些UI的状态,比如某些元素是否被选中,是否显示 加载动效,当前分页;…

ENSP中路由配置实验(静态路由、NAT转换、项目实例搭建)

一、实验一:静态路由配置 现在管理员拥有这三个路由的控制权 1、要求使得三个局域网下的主机能够互相访问,具体地址分配见下图2、操作遇到一个插曲,启动路由器时报40号错误,查阅官方技术文档进行自检修复无果 最后终于找到一个解决方案,来自哔哩哔哩视频下的某个评论 其实是…

欢迎屏幕和新的用户帐户设置;当前用户、欢迎屏幕(系统帐户)和新用户帐户的设置;注册表位置

欢迎屏幕和新的用户帐户设置下面显示的是当前用户、欢迎屏幕(系统帐户)和新用户帐户的设置(S)。当前用户显示语言:中文(简体)输入语言:简体中文(中国大陆)-微软拼音格式:简体中文(中国大陆)位置:中国欢迎屏幕显示语言:中文(简体)输入语言:简体中文(中国大陆)-微软拼音格…

Codeforces Round 757 (Div. 2)

我不知道为什么要补这一个远古场,但是确实里面几道题有点意思。C. Divan and bitwise operations 显然,我们可以得到整个序列的按位或就是所有 \(x\) 的按位或,设为 \(S\)。 如果 \(S\) 的第 \(i\) 位为 \(0\),贡献即为 \(0\)。 否则总有一个 \(1\),当中恰有一个对应贡献为…

[AI/GPT/LLOps/AI中台] Dify : 开源AI大模型应用开发平台(Apache 2.0)

概述:DifyDify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。 即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。 由于 Dify 内置了构建 LLM 应用所需…

[AI/GPT] Dify : 开源AI大模型可视化终端应用(Apache 2.0)

概述:DifyDify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。 即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。 由于 Dify 内置了构建 LLM 应用所需…

在时光的褶皱里种一株月光

少年哇,你能同时拥有青春和对青春的感受吗?——欲买桂花同载酒,终不似,少年游!晨露未晞时,凝视窗台上的水痕,那些蜿蜒的纹路像极了未被解码的生命线。某个起雾的清晨突然懂得,人生原是时光长河里的倒影——我们总在追逐波光粼粼的远方,却不知每一道涟漪的褶皱里,都藏…

Jenkins 自动化搭建测试环境

安装 Jenkins 下载地址:https://www.jenkins.io/zh/ 博主服务器是jdk1.8,需要安装 2.346.1 或之前版本。下载war包即可。启动 Jenkins: java -jar jenkins.war --httpPort=8080启动成功后访问 http://localhost:8080/查看并输入密码文件中的管理员密码可以安装推荐的插件,更…

一文讲透 AI Agent 与 AI Workflow

一、引言 在人工智能技术快速迭代的今天,我们正见证着 AI 应用模式的多元化发展。 其中,AI Agent 和 AI Workflow 作为两种截然不同的范式,正在重塑我们对 AI 应用的认知。 这两种模式就像是同一枚硬币的两面 —— 一个追求灵活创新,另一个注重稳定高效。 今天正好在群里有…

postman上传图片的base64

不要添加前缀 控制器和类@PostMapping("text-only")public List<TextDto> ocrTextOnly(@RequestBody OcrParam ocrParam) {//TODOreturn ocrapiService.ocrText(ocrParam.getImgBase64(),ocrParam.getImgType());}@Data @NoArgsConstructor @AllArgsConstructo…

关于从化0你想知道的都在这里

https://xsjcloud.com V*x:gzydc0 先上AI: 广州移动的从化0月租卡,即“神州行大众卡”,以其0月租、接听免费的特点受到关注。然而,根据现有信息,该套餐已下架,成为绝版。目前,办理此套餐需要通过特定渠道,且需在广州润粤营业厅激活号码。优点:无月租费用:真正实现0月…