逃避的一键防护 發表於 2025-7-13 00:00:00

CentOS7 安装配置HTTP服务器的具体教程

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>1、HTTP简介</li><li>2、关闭防火墙</li><li>3、安装HTTP软件包</li><li>4、配置HTTP服务器</li><li>5、重启并配置防火墙</li><li>6、重启HTTP服务</li><li>7、访问测试</li><li>8、拓展配置</li></ul></div><p class="maodian"></p><h2>1、HTTP简介</h2>
<p><strong>Apache HTTP</strong>(简称<strong>Apache</strong>),中文名:阿帕奇,是的一个开放源码的网页服务器</p>
<p>Apache HTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的Web服务器软件</p>
<p>它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中,可以在大多数<code>计算机操作系统</code>中运行,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一</p>
<p class="maodian"></p><h2>2、关闭防火墙</h2>
<p>为了避免不必要的麻烦,我们先关闭防火墙和selinux,等搭建成功之后再开启防火墙和相应的端口</p>
<div class="dxycode"><pre class="brush:bash;"># systemctl status firewalld.service      # 查看防火墙状态
# systemctl stop firewalld.service          # 停止防火墙服务
# systemctl disable firewalld.service       # 关闭防火墙开启自启动
# 把文件中的SELINUX=enforcing 改为SELINUX=disabled
# vim /etc/selinux/config         
# setenforce 0                              # 使修改马上生效</pre></div>
<p class="maodian"></p><h2>3、安装HTTP软件包</h2>
<p>查看一下系统版本</p>
<div class="dxycode"><pre class="brush:bash;"># rpm -q centos-release
centos-release-7-9.2009.0.el7.centos.x86_64</pre></div>
<p>查看是否已经安装了http服务器</p>
<div class="dxycode"><pre class="brush:bash;"># 如果没有返回任何结果,表示没有安装;如果返回文件包名,这表示已经安装了该服务;
# httpd -version
Server version: Apache/2.4.6 (CentOS)
Server built:   Oct1 2020 16:52:05            # 代表已安装            
# rpm -qa|grep httpd
httpd-manual-2.4.6-95.el7.centos.noarch
httpd-tools-2.4.6-95.el7.centos.x86_64
httpd-2.4.6-95.el7.centos.x86_64                # 代表已安装
# rpm -e httpd-manual-2.4.6-95.el7.centos.noarch    # 卸载httpd
# rpm -e httpd-2.4.6-95.el7.centos.x86_64         
# rpm -e httpd-tools-2.4.6-95.el7.centos.x86_64         
# 再次检查
# rpm -qa|grep httpd
# httpd -version
-bash: /usr/sbin/httpd: 没有那个文件或目录.</pre></div>
<p>开始安装</p>
<p>采用<code>yum</code>在线安装方式</p>
<div class="dxycode"><pre class="brush:bash;"># yum install -y mod_ssl openssl httpd</pre></div>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250711/2-250G1115954b3.png" /></p>
<p>采用<code>rpm</code>离线安装方式</p>
<p>*.rpm下载:https://pkgs.org/search/?q=httpd</p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250711/2-250G1115954551.png" /></p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250711/2-250G11159553a.png" /></p>
<div class="dxycode"><pre class="brush:bash;"># 进入准备好httpd服务所需要依赖的目录
# cd /data/http/httpuser/
# ll
总用量 4740
-rw-r--r-- 1 sftpuser sftp106124 8月12 23:55 apr-1.4.8-7.el7.x86_64.rpm
-rw-r--r-- 1 sftpuser sftp   94132 8月12 23:55 apr-util-1.5.2-6.el7.x86_64.rpm
-rw-r--r-- 1 sftpuser sftp   18976 8月12 23:55 apr-util-ldap-1.5.2-6.el7.x86_64.rpm
-rw-r--r-- 1 sftpuser sftp 2846172 8月12 23:55 httpd-2.4.6-95.el7.centos.x86_64.rpm
-rw-r--r-- 1 sftpuser sftp 1409564 8月13 10:21 httpd-manual-2.4.6-95.el7.centos.noarch.rpm
-rw-r--r-- 1 sftpuser sftp   95136 8月12 23:55 httpd-tools-2.4.6-95.el7.centos.x86_64.rpm
-rw-r--r-- 1 sftpuser sftp   31264 8月12 23:55 mailcap-2.1.41-2.el7.noarch.rpm
-rw-r--r-- 1 sftpuser sftp116812 8月12 23:55 mod_ssl-2.4.6-95.el7.centos.x86_64.rpm
-rw-r--r-- 1 sftpuser sftp239900 8月12 23:55 postgresql-libs-9.2.24-4.el7_8.x86_64.rpm
# 开始安装
- 安装依赖的顺序按照以下先后顺序进行
- 安装rpm包的命令:rpm -ivh 包名
# rpm -ivh apr-1.4.8-7.el7.x86_64.rpm
# rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm
# rpm -ivh apr-util-ldap-1.5.2-6.el7.x86_64.rpm
# rpm -ivh mailcap-2.1.41-2.el7.noarch.rpm
# rpm -ivh postgresql-libs-9.2.24-4.el7_8.x86_64.rpm
# rpm -ivh httpd-tools-2.4.6-95.el7.centos.x86_64.rpm
# rpm -ivh httpd-2.4.6-95.el7.centos.x86_64.rpm
# rpm -ivh httpd-manual-2.4.6-95.el7.centos.noarch.rpm
# rpm -ivh mod_ssl-2.4.6-95.el7.centos.x86_64.rpm</pre></div>
<p>采用<code>tar.gz</code>编译安装方式</p>
<p>*.tar.gz下载&nbsp;此方法的安装过程自行百度,此处不在做介绍</p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250711/2-250G11159553A.png" /></p>
<p>设置为开机自动启动服务</p>
<div class="dxycode"><pre class="brush:bash;"># systemctl enable httpd.service</pre></div>
<p>启动httpd服务</p>
<div class="dxycode"><pre class="brush:bash;"># http服务器的服务名是httpd,相关的操作如下:
# systemctl starthttpd.service      # 启动服务
systemctl stophttpd.service                         # 停止服务
systemctl restart httpd.service                     # 重启服务
systemctl status httpd.service                        # 查看服务状态
systemctl enable httpd.service                        # 设置开机自启动httpd服务
systemctl disable httpd.service                     # 禁用开机自启动httpd服务</pre></div>
<p class="maodian"></p><h2>4、配置HTTP服务器</h2>
<p>备份配置文件</p>
<div class="dxycode"><pre class="brush:bash;"># Apache默认将网站的根目录指向/var/www/html
# 默认的主配置文件/etc/httpd/conf/httpd.conf
# 配置存储在的/etc/httpd/conf.d/目录
# 防止后期配置文件出错后无法还原
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.backup
# cd /etc/httpd/conf/
# ll
......
-rw-r--r-- 1 root root 11752 8月13 12:02 httpd.conf
-rw-r--r-- 1 root root 11752 8月16 22:10 httpd.conf.backup
......</pre></div>
<p>其余配置默认就好</p>
<p>新建一个测试文件</p>
<div class="dxycode"><pre class="brush:bash;"># 先新建一个存放文件的文件夹并授权
# mkdir -p /var/www/html/upload
# chmod 755 /var/www/html/upload
# 进入文件夹
# cd /var/www/html/upload
# 新建测试文件,然后保存退出
# vim 测试_20220712.txt
#</pre></div>
<p class="maodian"></p><h2>5、重启并配置防火墙</h2>
<div class="dxycode"><pre class="brush:bash;">systemctl enable firewalld.service                   # 重启防火墙开机自启动
systemctl restart firewalld.service                  # 重启防火墙服务
firewall-cmd --version                               # 查看防火墙版本
firewall-cmd --list-all                                                    # 查看已开放的端口
firewall-cmd --query-port=80/tcp                     # 查询TCP的80端口占用情况
firewall-cmd --permanent --zone=public --add-port=80/tcp   # 开通http服务80端口
firewall-cmd --reload                              # 刷新防火墙,重新载入
# 设置关闭SELinux对ftp的限制
setsebool -P ftpd_full_access on
sed -i s#enforcing#disabled#g /etc/sysconfig/selinux
setenforce 0 &amp;&amp; getenforce
getenforce</pre></div>
<p class="maodian"></p><h2>6、重启HTTP服务</h2>
<div class="dxycode"><pre>systemctl restart httpd.service</pre></div>
<p><strong>至此,HTTP其实就已经搭建成功,可以登录了!</strong></p>
<p class="maodian"></p><h2>7、访问测试</h2>
<p>查看IP地址</p>
<p><code>ip addr</code></p>
<p>注意:</p>
<p>云服务器的ip地址为<code>公网ip地址</code> 虚拟机的ip地址为NAT模式下的<code>固定ip地址</code>,下图用的就是固定ip</p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250711/2-250G1115955307.png" /></p>
<p>浏览器访问测试</p>
<p>在浏览器中输入:<code>http://你的ip地址</code>,显示如下</p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250711/2-250G1115956416.png" /></p>
<p class="maodian"></p><h2>8、拓展配置</h2>
<p>文件目录列表访问问题</p>
<p><code>vim /etc/httpd/conf.d/welcome.conf</code></p>
<div class="dxycode"><pre class="brush:bash;"># 修改/etc/httpd/conf.d/welcome.conf配置文件
# 把Options -Indexes中的减号改为加号
......
&lt;LocationMatch "^/+$"&gt;
    Options +Indexes
    ErrorDocument 403 /.noindex.html
&lt;/LocationMatch&gt;
......
# 重启httpd服务
# systemctl restart httpd.service</pre></div>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250711/2-250G111595H26.png" /></p>
<p>静态资源名称乱码问题</p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250711/2-250G111595I06.png" /></p>
<p><code>vim /etc/httpd/conf/httpd.conf</code></p>
<div class="dxycode"><pre class="brush:bash;"># 编辑httpd配置文件,增加(或修改)页面的默认编码类型为UTF-8
......
IndexOptions Charset=UTF-8
......
# 重启httpd服务
# systemctl restart httpd.service</pre></div>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250711/2-250G111595GZ.png" /></p>
<p>点击链接直接在浏览器中打开的问题</p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250711/2-250G111595Q04.png" /></p>
<p><code>vim /etc/httpd/conf/httpd.conf</code></p>
<div class="dxycode"><pre class="brush:bash;"># 编辑本地配置文件,将预期直接下载的文件扩展名配置上
# *.txt文件直接下载
AddType application/x-txt-compressed .txt
# *.pdf文件直接下载
AddType application/x-pdf-compressed .pdf
# *.json文件直接下载
AddType application/x-json-compressed .json
# 重启httpd服务
# systemctl restart httpd.service
# 清理浏览器缓存</pre></div>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250711/2-250G111595S05.png" /></p>
<p>注意:</p>
<p>配置完成并重启服务后先清理一下浏览器缓存,有可能会出现因为浏览器缓存未清理,而导致未达到预期效果的问题</p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250711/2-250G111595c22.png" /></p>
<p>文件名较长显示不全的问题</p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250711/2-250G1115959114.png" /></p>
<p><code>vim /etc/httpd/conf.d/autoindex.conf</code></p>
<div class="dxycode"><pre class="brush:bash;"># 编辑httpd配置文件,增加(或修改)索引名长度限制为*(任意长度,不作限制)
......
IndexOptions FancyIndexing HTMLTable VersionSort NameWidth=*
......
# 重启httpd服务
# systemctl restart httpd.service</pre></div>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250711/2-250G1115959222.png" /></p>
<p>指定目录启用用户授权的问题</p>
<div class="dxycode"><pre class="brush:bash;"># 添加访问用户并设置密码
# htpasswd -c /etc/httpd/auth.pwd httpuser
New password:            # 密码输入不显示,正常输入后直接按回车就行
Re-type new password:
Adding password for user httpuser
#
# 添加用户访问权限配置,直接在配置文件中新增以下内容即可
# vim /etc/httpd/conf/httpd.conf
&lt;Directory"/var/www/html/upload"&gt;
AuthName"xxxxx"
AuthTypebasic
AuthUserFile/etc/httpd/auth.pwd
Requirevalid-user
# Requireuser httpuser01
&lt;/Directory&gt;
# 重启httpd服务
# systemctl restart httpd.service</pre></div>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250711/2-250G1120000494.png" /></p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250711/2-250G1120000D9.png" /></p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250711/2-250G1120001528.png" /></p>
<p>以上就是CentOS7 安装配置HTTP服务器详解的详细内容,更多相关资料请阅读琼殿技术社区其它文章!</p>
頁: [1]
查看完整版本: CentOS7 安装配置HTTP服务器的具体教程