Cent OS-7的Apache服务配置
WWW是什么?
WWW(World Wide Web,万维网)是一个全球性的信息空间,其中的文档和其他资源通过URL标识,并通过HTTP或其他协议访问。万维网是互联网的一个重要组成部分,但它并不是互联网的全部。互联网是一个全球性的计算机网络,而万维网则是通过互联网访问的一个庞大信息资源网络。
主要特点和功能
- 超文本和超链接:万维网的核心技术之一是超文本标记语言(HTML),它允许创建包含超链接的文档。超链接使得用户可以从一个文档跳转到另一个文档,无论这些文档是否存储在同一台计算机上。
- 客户端/服务器架构:万维网采用了客户端/服务器架构。用户通过浏览器(客户端)访问存储在服务器上的网页和其他资源。
- 统一资源定位符(URL):URL是万维网上资源的唯一标识符。它包含了资源的位置信息,使得浏览器能够找到并显示该资源。
- 超文本传输协议(HTTP):HTTP是万维网上用于客户端和服务器之间通信的协议。它定义了如何通过互联网请求和传输网页和其他资源。
API是什么?
API(Application Programming Interface,应用程序编程接口)是一组定义和协议,用于构建和集成软件应用程序。API允许不同的软件组件在没有人为干预的情况下相互通信。它是一组代码接口,提供给开发者使用,以便他们能够轻松地访问某些功能或数据,而无需了解其内部实现细节。
API的特点和好处
- 抽象化:API将复杂的操作封装成简单的函数或方法,使得开发者无需关注底层实现细节,只需调用这些接口即可完成所需的功能。
- 重用性:API提供了标准化的接口,使得相同的功能可以在不同的应用程序中被重复使用,从而提高开发效率。
- 模块化:API促进了软件的模块化设计,使得系统更易于维护和扩展。
- 安全性:通过API,系统可以控制外部访问,确保只有授权的用户或应用才能访问特定的数据或功能。
API的工作原理
API的工作原理可以通过一个银行的例子来形象地理解。假设你有一个银行账户,你可以通过银行的API来查询余额、转账等操作。在这个过程中,API充当了你和银行系统之间的中介。你发送一个请求(例如查询余额),API接收到请求后,会与银行的内部系统进行交互,获取到所需的信息,然后将结果返回给你。
API的类型
API可以分为多种类型,包括但不限于:
- 操作系统API:如Windows API、Linux系统调用等,提供操作系统级别的功能。
- 编程语言API:如Java的String类、Python的内置函数等,提供编程语言内置的功能。
- 第三方库API:如libxml2、CURL等,提供第三方库的功能。
- Web API:如RESTful API、SOAP Web服务等,提供通过网络访问的功
能。
半结构化、结构化和非结构化数据
在数据管理和处理领域,数据通常被分为三种主要类型:结构化数据、半结构化数据和非结构化数据。这些分类基于数据的组织和格式。
结构化数据
结构化数据是指具有固定格式或结构的数据,通常存储在关系型数据库中,以行和列的形式组织。这种数据类型严格遵循预定义的模式,例如数据库表中的字段和类型。结构化数据的优点是可以很容易地被查询和分析,因为它的格式是明确和一致的。
半结构化数据
半结构化数据介于结构化数据和非结构化数据之间。它没有像关系型数据库那样的严格结构,但仍然有一定的组织形式。常见的半结构化数据格式包括XML、JSON和HTML。这些格式允许数据具有层次结构,并且可以包含标签或标记来描述数据的内容和结构。
非结构化数据
非结构化数据是指没有固定格式或结构的数据。这种数据类型包括文本文件、图像、音频和视频等。非结构化数据的处理通常更加复杂,因为它没有预定义的模式或结构。然而,随着大数据和机器学习技术的发展,对非结构化数据的分析和利用变得越来越重要。
Web工作原理
Web(万维网)的工作原理基于客户端/服务器架构,涉及多个组件和技术的协同工作。以下是Web工作原理的详细解释:
1. 用户请求
当用户在浏览器中输入URL或点击超链接时,浏览器会生成一个HTTP请求。这个请求包含了用户想要访问的资源的URL以及其他一些信息,如浏览器类型、请求方法(GET、POST等)。
2. 域名解析
URL中的域名部分会被解析为一个IP地址。这个过程通常由域名系统(DNS)完成。DNS会将人类可读的域名(如www.example.com )转换为计算机可识别的IP地址(如192.0.2.1)。
3. 请求发送
一旦域名被解析为IP地址,浏览器会将HTTP请求发送到对应的Web服务器。这个请求通过互联网传输,可能经过多个中间节点。
4. 服务器处理请求
Web服务器接收到请求后,会根据请求的内容进行处理。服务器可能会:
- 从文件系统中读取静态网页(如HTML、CSS、JavaScript文件)。
- 调用应用程序服务器来处理动态内容(如PHP、Python、Java等生成的页面)。
- 查询数据库以获取所需的数据。
5. 响应生成
服务器处理完请求后,会生成一个HTTP响应。这个响应包含了请求的资源(如HTML文档、图片、视频等)以及一些元数据(如状态码、内容类型、缓存控制等)。
6. 响应发送回客户端
服务器将生成的HTTP响应发送回用户的浏览器。这个响应也会通过互联网传输,可能经过多个中间节点。
7. 浏览器渲染内容
浏览器接收到服务器的响应后,会开始解析和渲染内容。浏览器会将HTML文档解析为DOM(文档对象模型),然后根据CSS样式和JavaScript代码来呈现最终的网页内容给用户。
8. 用户交互
用户可以与网页进行交互,如点击链接、填写表单、滚动页面等。这些操作可能会触发新的HTTP请求,从而重复上述过程。
关键技术
- HTTP:超文本传输协议,用于客户端和服务器之间的通信。
- HTML:超文本标记语言,用于定义网页的结构和内容。
- CSS:层叠样式表,用于控制网页的外观和布局。
- JavaScript:一种编程语言,用于在客户端执行动态操作。
- DNS:域名系统,用于将域名解析为IP地址。
Apache HTTP Server
Apache HTTP Server(简称Apache)是Apache软件基金会(The Apache Software Foundation,ASF)开发的一个开放源码的网页服务器。它广泛应用于各种操作系统中,包括Linux、Windows和macOS等。以下是关于Apache HTTP Server的详细信息:
1. 简介
Apache HTTP Server是一个高性能、可扩展的Web服务器,能够处理大量的并发请求。它以其简单、快速、稳定和安全的特点而闻名,并且可以作为代理服务器使用。
2. 特性
Apache HTTP Server具有以下主要特性:
- 跨平台:可以在多种操作系统上运行,包括Linux、Windows、macOS等。
- 安全性:提供了多种安全特性,如SSL/TLS加密、访问控制、防火墙支持等。
- 可扩展性:通过模块化设计,可以添加或移除功能模块,以满足不同的需求。
- 高性能:优化了性能,能够处理大量的并发请求。
- 灵活性:支持多种配置选项,可以根据具体需求进行定制。
3. 安装与配置
Apache的主要配置文件位于/etc/httpd/conf/httpd.conf 路径下。用户可以通过编辑这个文件来配置Apache服务的各种参数,如监听端口、文档根目录、访问控制等。
. 常用模块
Apache HTTP Server支持多种模块,以扩展其功能。以下是一些常用的模块:
- mod_ssl:提供SSL/TLS加密支持,用于保护数据传输的安全性。
- mod_php:提供PHP语言的支持,用于运行PHP脚本。
- mod_rewrite:提供URL重写功能,用于实现友好的URL和SEO优化。
- mod_proxy:提供代理服务器功能,用于转发请求和负载均衡。
5. 日志文件
Apache HTTP Server生成多个日志文件,用于记录服务器的运行状态和错误信息。以下是一些常见的日志文件:
- access_log:记录所有访问请求的日志文件,位于/var/log/httpd/access_log路径下。
- error_log:记录所有错误信息的日志文件,位于/var/log/httpd/error_log路径下。
第一部分:基础五步
1,挂载光盘,并写镜像源方便装包
Linux 编写本地仓库
2,寻找我们需要的软件包
yum search http
3,安装软件包
yum install -y httpd
4,关闭selinux
vim /etc/selinux/config
更改配置文件之后再重启centOS-7,再查看setenforce 0
5,关闭防火墙 systemctl stop firewalld.service
可以看到这个时候服务是正常运行着的 systemctl restart httpd
可以做开机自启动 systemctl enable httpd
实验一:显示默认页面
6,访问http://192.168.23.157,能够正常访问
实验二:自定义页面
7,查找配置文件 rpm -qc httpd
8,通过查看配置文件,找网站首页路径
找到默认页面文件名称
9,修改首页文件 vim /var/www/html/index.html,添加任意内容
如果存在无法访问,那么就是权限的问题。需要检查文件权限: 确保/etc/www/html目录及其内容具有适当的权限,以便Apache服务器可以读取它们。您可以使用以下命令来设置正确的权限:
chown -R www-data:www-data /etc/www/html
chmod -R 755 /etc/www/html
修改权限之后,就能够正常访问了
实验三:自定义首页文件路径及首页文件名
1、创建首页文件目录
mkdir /test
2、修改主配置文件
vim /etc/httpd/conf/httpd.conf
修改首页文件路径
119 DocumentRoot "/test1"
120 #DocumentRoot "/var/www/html"
132 <Directory "/test1">
133 #<Directory "/var/www/html">
修改首页文件名
166 DirectoryIndex wangke.html
3、重启服务 systemctl restart httpd
4、编写首页文件内容 vim /test/1.html
5、访问web网站 http://192.168.23.157
实验四:修改端口号
1、修改主配置文件
vim /etc/httpd/conf/httpd.conf
42 Listen 8080
43 #Listen 80
2、重启服务
systemctl restart httpd
3、访问web网站 http://192.168.23.157:8080
实验五:使用域名访问web网站
修改linux下记录域名的文件 vim /etc/hosts
192.168.23.157 www.testtest.com
然后启动文件使配置生效 /etc/init.d/network restart
修改windows下记录域名的文件
C:\Windows\System32\drivers\etc\hosts
192.168.23.157 www.testtest.com
在该文件加上了文本之后,还需要刷新DNS缓存 ipconfig /flushdns
然后就能够能够通过域名访问网站了
解决无法访问Linux下/etc/www/html页面的问题
按照以下步骤进行排查和解决:
- 检查文件权限: 确保/etc/www/html目录及其内容具有适当的权限,以便Apache服务器可以读取它们。您可以使用以下命令来设置正确的权限:
sudo chown -R www-data:www-data /etc/www/html
sudo chmod -R 755 /etc/www/html - 检查Apache配置: 确保Apache配置文件中正确设置了DocumentRoot和其他相关配置。您可以编辑httpd.conf 文件(通常位于/etc/httpd/conf/或/etc/apache2/目录中),并确保以下配置正确:
DocumentRoot "/etc/www/html"
<Directory "/etc/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory> - 检查Apache模块: 确保启用了必要的Apache模块,例如mod_rewrite和mod_php。您可以使用以下命令来启用这些模块:
sudo a2enmod rewrite
sudo a2enmod php - 检查Apache日志: 查看Apache错误日志以获取有关问题的更多信息。错误日志通常位于/var/log/apache2/error.log 或/var/log/httpd/error_log路径下。您可以使用以下命令来查看错误日志:
tail -f /var/log/apache2/error.log - 检查SELinux设置: 如果您的系统启用了SELinux,您可能需要调整SELinux设置以允许Apache访问/etc/www/html目录。您可以使用以下命令来临时禁用SELinux:
sudo setenforce 0 - 重启Apache服务器: 在进行上述更改后,重启Apache服务器以应用新的配置:
sudo systemctl restart apache2