Apache概述#
Copy
'''
Apache HTTPD Server 简称 Apache,是 Apache 软件基金会的一个开源的网页服务器, 可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,
是最流行的 Web 服务器端软件之一。它快速、可靠并且可通过简单的 API 扩展,将 Perl/Python 等解释器编 译到服务器中!Apache HTTP 服务器是一个模块化的服务器,
各个功能使用模块化进行插拔! 目前支持 Windows, Linux, Unix 等平台!
Apache 软件基金会(也就是 Apache Software Foundation,简称为 ASF),是专门为运 作一个开源软件项目的 Apache 的团体提供支持的非盈利性组织,
这个开源软件项目就是 Apache 项目!那么我们的 HTTPD 也只是 Apache 的开源项目之一!
主要的开源项目:HTTP Server,Ant,DB,iBATIS,Jakarta,Logging,Maven,Struts, Tomcat,Tapestry,Hadoop 等等。只是最有名的是 HTTP Server,
所以现在所说的 Apache 已 经就是 HTTPD Server 的代号了! 我们还见的比较多的是 Tomcat, Hadoop 等项目官方网站:
'''
Apache安装使用#
Copy
[root@server ~]
[root@server ~]
[root@server ~]
服务启动#
Copy
[root@server ~]
[root@server ~]

配置文件介绍#
Copy
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
ServerAdmin root@localhost
ServerName www.example.com:80
AddDefaultCharset UTF-8
DocumentRoot "/var/www/html"
LogLevel warn
<Directory "/var/www/html">
Options:配置在特定目录使用哪些特性
Indexes:当用户访问该目录的时候如果找不到指定文件(例如:index.html)则返回该目录下文件列表
FollowSymLinks:在该目录下允许文件系统使用符号链接
AllowOverride:允许存在于.htaccess文件中的指令类型(.htaccess文件名是可以改变的,其文件名由AccessFileName指令决定):
None:当AllowOverride被设置为None时。不搜索该目录下的.htaccess文件(可以减小服务器开销)。
Require all granted
</Directory>
web服务搭建#
修改默认首页#
Copy
'''
1:部门内部搭建一台 WEB 服务器,采用的 IP 地址和端口为 1.1.1.1:80,首页采用 index.html文件。
2:管理员 E-mail 地址为 srcoder@163.com,网页的编码类型采用 UTF-8,所有网站资源都存放
3:在/var/www/html 目录下,并将 Apache 的配置文件根目录设置为/etc/httpd 目录。
'''
[root@server ~]
[root@server html]
Welcome to Apache index
[root@server html]
ServerAdmin srcoder@163.com
ServerName 1.1.1.1:80
Timeout 60
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
[root@server conf.d]
[root@server conf.d]

更改web网站根目录#
Copy
[root@server~]
[root@server ~]
[root@server ~]
DocumentRoot "/var/www/html/bbs"
<Directory "/var/www/html/bbs">
Options Indexes FollowSymLinks
AllowOverride None
<RequireALL>
Require ip 1.1.1.2
Require not ip 1.1.1.188
</RequireALL>
</Directory>
Require all granted
Require all denied
Require method http-method [http-method] ...
Require user userid [ userid ] ...
Require group group-name [group-name] ...
Require valid-user
Require ip 10 172.20 192.168.2
Require not ip 10 172.20 192.168.2

虚拟目录#
Copy
[root@server ~]
[root@server ~]
[root@server ~]
Alias /phpdata/ "/usr/local/phpdata/"
<Directory "/usr/local/phpdata">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
[root@server ~]

Apache禁止显示目录#
Copy
[root@server ~]

Copy
[root@server ~]
<Directory "/var/www/html">
Options Indexes FollowSymLinks
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
[root@server ~]

Apache软链接#
Copy
[root@server ~]

Copy
[root@server ~]
<Directory "/var/www/html">
Options Indexes FollowSymLinks
Options Indexes
AllowOverride None
Require all granted
</Directory>
[root@server ~]

用户认证#
Copy
[root@server ~]
[root@server ~]
<Directory "/usr/local/phpdata">
Options Indexes FollowSymLinks
AllowOverride None
authtype basic
authname "my web site"
authuserfile /etc/httpd/conf/passwd.secret
require valid-user
</Directory>
[root@server ~]
[root@server ~]
[root@server ~]
[root@server ~]

Apache三种搭建方式#
基于不同的IP地址#
Copy
[root@server ~]
[root@server html]
[root@server ~]
<VirtualHost 1.1.1.1:80>
ServerAdmin srconder@163.com
DocumentRoot /var/www/html/
ServerName dummy-host.example.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
<VirtualHost 1.1.1.66:80>
ServerAdmin srconder@163.com
DocumentRoot /var/www/html/bbs/
ServerName dummy-host.example.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
[root@server conf.d]
Copy
[root@client ~]

Copy
[root@client ~]

基于不同域名#
Copy
[root@server ~]
<VirtualHost *:80>
ServerAdmin srconder@163.com
DocumentRoot /var/www/html/
ServerName www.test1.com
ErrorLog logs/www.test1.com-error_log
CustomLog logs/www.test1.com-access_log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin srconder@163.com
DocumentRoot /var/www/html/bbs/
ServerName www.test66.com
ErrorLog logs/www.test66.com-error_log
CustomLog logs/www.test66.com-access_log common
</VirtualHost>
[root@server ~]
[root@client ~]
1.1.1.1 www.test1.com
1.1.1.66 www.test66.com
Copy
[root@client ~]# elinks 1.1.1.1 # 客户端可以使用的测试方式 下图直接在浏览器测试的 与该命令无关

Copy
[root@client ~]

基于不同的端口访问#
Copy
[root@server ~]
Listen 8080
[root@server ~]
<VirtualHost *:80>
ServerAdmin srconder@163.com
DocumentRoot /var/www/html/
ServerName www.test1.com
ErrorLog logs/www.test1.com-error_log
CustomLog logs/www.test1.com-access_log common
</VirtualHost>
<VirtualHost *:8080>
ServerAdmin srconder@163.com
DocumentRoot /var/www/html/bbs/
ServerName www.test1.com
ErrorLog logs/www.test1.com-error_log
CustomLog logs/www.test1.com-access_log common
</VirtualHost>
[root@server ~]
Copy
[root@client ~]# elinks 1.1.1.1 # 客户端可以使用的测试方式 下图直接在浏览器测试的 与该命令无关

Copy
[root@client ~]# elinks 1.1.1.1:8080 # 客户端可以使用的测试方式 下图直接在浏览器测试的 与该命令无关

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!