Linux 基础 WEB 服务搭建详解
- 访问网络服务需要的元素(详解见1.7):
主机名 网 网卡 网址
- 网络协议:https://
超文本:超级链接的纯文本
http:超文本传输协议,传输超文本
httpd:最古老的网络服务,给用户提供页面,托管给Apache
html:超文本标记语言,用于标记超文本中各种元素
基本Web服务
1.搭建过程
① 配置本地仓库
先切换到仓库的目录下。 cd /etc/yum.repos.d/
使用 ll
命令查看当前目录下文件是否存在仓库 rpm.repo
,若不存在,使用以下命令创建仓库。
若命令 vim rpm.repo
不能执行则说明系统没有安装vim,执行命令 vi rpm.repo
或者 dnf install vim
;
若命令vi rpm.repo
不能执行则说明装系统的时候出错。
成功执行命令后编辑仓库内容,其中 baseurl
的标准书写格式应该是 baseurl=file:///mnt/BaseOS
,因为 file
表示用的是本地文件, //
表示的是使用了 file
的协议。如果使用的是 http
协议就将file部分替换即可。
[BaseOS]
name=BaseOS
baseurl=/mnt/BaseOS
enabled=1
gpgcheck=0
[Appstream]
name=AppStream
baseurl=/mnt/AppStream
enabled=1
gpgcheck=0
如果写完之后不能保存,可能存在两种情况:
第一种:当前操作用户没有权限
第二种:路径写错了
解决这个问题也有两种方案:
方案一:将内容拷贝后退出文件,检查路径是否正确。cd、ll
方案二:切换管理员用户再操作
编辑完成后:wq
保存并退出,将仓库挂载在目录下后,切换到根目录。 mount /dev/sr0 /mnt
② 安装httpd软件包
使用 dnf install httpd -y
指令安装httpd软件包
完成安装后使用 systemctl start httpd
命令启动httpd服务
③ 查看监听端口
使用 netstat
指令查看监听端口,如果不存在则使用 dnf install net-tools
命令下载。其中 bash-com*
的作用是自动补齐命令, lrz*
的作用是进行上传和下载。
安装成功后使用 netstat -lntup | grep httpd
命令查看监听端口。
可以看出在80端口上监听了一个web服务,它的进程号是11124。
因此我们可以访问测试页面,使用 curl localhost
命令。
此时用浏览器不能访问该页面,因为虚拟机防火墙未关闭。
使用 systemctl stop firewalld
命令关闭防火墙,此时可以根据虚拟机的ip在浏览器中访问测试页面。该测试页面的本质是 404
。
如果想要显示内容 则可以使用命令输入内容。
其中 echo
命令用于输出指定的字符串。>
符号表示重定向输出,即将 echo
命令的输出结果重定向到指定的文件中。如果指定的文件不存在,会创建该文件;如果文件已存在,则会覆盖原文件的内容。
2. 关于httpd
①目录
- conf:主配置文件
- conf.d:子配置文件,包含在
conf
中。 - conf.modules.d:关于模块的配置文件。
- logs:运行日志
- modules:关于模块的内容
- run:关于运行的内容
- state:状态的内容
只有前三个文件真正在 /etc/httpd
下,其余内容被引入其他文件夹中。
②配置文件
默认的主配置文件在 /etc/httpd/conf/httpd.conf
路径下。
普通配置文件
蓝色部分是注释,一部分是描述性的注释,一部分是配置性的注释,系统不会运行。
- ServerRoot
/etc/httpd
:所有内容都在该目录下
- Listen:监听。
IP地址在OSI模型中的第三层(网络层),而它的上一层是传输层,其中包含了部分端口。由此可见,网络层可以定义到主机,而端口可以定位到应用,通常给IP加端口也叫套接字(socket)。
监听实际上是将某一个应用绑定在某一个套接字上,用于对外提供服务。用户通过套接字可以直接访问应用。
- Include
conf.modules.d/*.conf
:动态共享对象支持。
包含一些配置文件,这些文件在 conf.modules.d
中,包含了所有以 .conf
结尾的文件。其中 *
在这里表示为任意长度的任意字符。
动态共享对象(DSO,在Windows中叫动态链接库,DLL)不能主动运行,只有在程序调用的时候才能运行,通常一个程序可以调用多个动态共享对象。
- User
apache
、Groupapache
:一些用户和组。
主配置文件
- ServerAdmin
root@localhost
:管理员
- #ServerName
www.example.com:80
:当通过端口和地址访问某一个服务时除了IP地址的访问之外也可以使用ServerName访问。ServerName可以转换成IP地址,所以用户可以通过主机名访问,而服务器通过主机名确定提供给用户的服务。
- 容器(控制块):定义跟目录下不能访问的文件不能修改。
- DocumentRoot
/var/www/html
:访问网站的时候,网站要提供页面或者内容。这条命令定义了网站内容所在目录。
- 容器(控制块):定义根下所有目录都不能修改,除了
/var/www/html
。
- 定义
/var/www/html
- Option
Indexes FollowSymLinks
- Indexes:是否需要索引
- FollowSymLinks:跟踪软连接
- Option
- 控制模块:如果有这个模块,所包含的参数生效。
-
定义文件,在访问文件时要求以
.ht
开头的所有文件都不能访问。因为在服务里一些服务一般做访问控制,不让用户访问。
-
ErrorLog
"logs/error_log"
:错误日志,在/etc/httpd
中。
-
LogLevel
warn
:定义日志级别。
-
定义模块:如果这个模块存在,可以定义一些新的东西
- LogFormat:定义日志的格式
- CustomLog:用户日志,格式同上
-
定义模块:
- ScriptAlias :给某个文件取别名 方便用户访问
- ScriptAlias :给某个文件取别名 方便用户访问
-
容器(控制块):定义路径文件
-
定义模块:如果这个模块存在,可以定义一些新的东西
- mime:多用途互联网邮件扩展
- mime:多用途互联网邮件扩展
-
不多做解释,编程的时候会用到
-
AddDefaultCharset
UTF-8
:默认字符集
-
如果系统报错显示第358行报错,则有另种情况
- 358行出错
- 在目录
conf.d/*.conf
下的某个配置文件代码出错
以上就是我整理的Linux系统的基本Web服务,如有遗漏欢迎补充。