HCRM博客

如何在CentOS 7上安装和配置Apache服务器?

Apache for centos7

一、背景介绍

如何在CentOS 7上安装和配置Apache服务器?-图1
(图片来源网络,侵权删除)

1.1 什么是Apache HTTP服务器?

Apache HTTP服务器(简称Apache)是由Apache软件基金会开发和维护的开源Web服务器,它具有跨平台、安全性高、速度快和稳定性强等特点,是世界上最流行的Web服务器软件之一,通过简单的API扩展,Apache能够将Perl/Python等解释器编译到服务器中。

1.2 Apache在CentOS中的角色与重要性

在CentOS操作系统中,Apache作为默认的Web服务器扮演着至关重要的角色,其广泛的应用于托管网站和Web应用程序,提供静态内容和媒体服务,并支持负载均衡和反向代理等功能,Apache在CentOS中的安装和管理相对简单,使其成为许多开发者和企业的首选。

二、安装步骤

1 准备工作

在进行Apache安装之前,确保你的系统是最新的,并且已经安装了必要的依赖包,你可以通过以下命令更新系统:

如何在CentOS 7上安装和配置Apache服务器?-图2
(图片来源网络,侵权删除)
sudo yum update y

2 安装Apache

使用yum命令来安装Apache:

sudo yum install httpd y

此命令会同时安装httpd软件包及其相关的依赖项。

3 启动与停止Apache服务

安装完成后,启用并启动Apache服务:

sudo systemctl enable httpd
sudo systemctl start httpd

如果你需要停止或重启Apache服务,可以使用以下命令:

sudo systemctl stop httpd  # 停止服务
sudo systemctl restart httpd  # 重启服务

4 防火墙配置

如果你正在运行防火墙,还需要打开HTTP和HTTPS端口80和443:

sudo firewallcmd permanent addservice=http
sudo firewallcmd permanent addservice=https
sudo firewallcmd reload

三、配置Apache

如何在CentOS 7上安装和配置Apache服务器?-图3
(图片来源网络,侵权删除)

1 主配置文件路径

Apache的主配置文件位于/etc/httpd/conf/httpd.conf,你可以使用任何文本编辑器打开和编辑这个文件,

sudo vi /etc/httpd/conf/httpd.conf

i键进入插入模式,进行修改后按Esc键退出插入模式,然后输入:wq保存并退出

2 修改监听端口

默认情况下,Apache监听80端口,如果需要修改为其他端口,可以在配置文件中找到以下行并进行修改:

Listen 80

将其改为所需的端口号,例如8080:

Listen 8080

保存后重启Apache服务以使更改生效:

sudo systemctl restart httpd

3 配置虚拟主机

虚拟主机允许你在一台服务器上运行多个网站,虚拟主机的配置文件通常位于/etc/httpd/conf.d/目录下,每个域名一个独立的配置文件,创建一个名为example.com.conf的文件:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/html/example
    ErrorLog logs/example.comerror_log
    CustomLog logs/example.comaccess_log common
</VirtualHost>

创建目录并设置适当的权限:

sudo mkdir p /var/www/html/example
sudo chown R apache:apache /var/www/html/example

重启Apache服务以应用配置更改:

sudo systemctl restart httpd

3.4 配置.htaccess文件(可选)

.htaccess文件用于对特定目录进行配置,确保Apache启用了mod_rewrite模块:

sudo grep q "LoadModule rewrite_module" /etc/httpd/conf.modules.d/00base.conf || echo "LoadModule rewrite_module modules/mod_rewrite.so" | sudo tee a /etc/httpd/conf.modules.d/00base.conf
sudo systemctl restart httpd

在需要配置的目录中创建.htaccess文件,

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^index\.php$ [L]
    RewriteCond %{REQUEST_FILENAME} !f
    RewriteCond %{REQUEST_FILENAME} !d
    RewriteRule . /index.php [L]
</IfModule>

这将启用URL重写规则,使得所有请求都指向index.php

四、安全配置

1 隐藏版本信息

为了提高安全性,可以配置Apache不泄露版本信息,编辑主配置文件httpd.conf,添加或修改以下行:

ServerSignature Off
ServerTokens Prod

保存后重启Apache服务:

sudo systemctl restart httpd

再次访问服务器时,你会发现版本信息已被隐藏。

2 禁用不必要的模块和服务

为了减少潜在的攻击面,建议禁用不必要的Apache模块和服务,编辑配置文件/etc/httpd/conf.modules.d/00base.conf,注释掉不需要的模块:

LoadModule some_module_module modules/mod_some_module.so

保存后重启Apache服务:

sudo systemctl restart httpd

3 使用SSL/TLS加密通信

启用SSL/TLS加密通信可以提高数据传输的安全性,安装mod_ssl模块:

sudo yum install mod_ssl y

生成自签名证书:

sudo openssl req x509 nodes days 365 newkey rsa:2048 keyout /etc/pki/tls/private/selfsigned.crt out /etc/pki/tls/certs/selfsigned.crt

修改主配置文件httpd.conf,添加以下内容:

<VirtualHost *:443>
    ServerName yourdomain.com
    DocumentRoot /var/www/html
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/selfsigned.crt
    SSLCertificateKeyFile /etc/pki/tls/private/selfsigned.crt
    <Directory "/var/www/html">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

重启Apache服务:

sudo systemctl restart httpd

你的网站将通过HTTPS访问。

五、管理与维护

1 查看Apache状态与日志

你可以使用以下命令查看Apache的状态:

sudo systemctl status httpd

日志文件通常位于/var/log/httpd/目录下,包括访问日志和错误日志,你可以使用grep命令查找特定的日志记录:

sudo grep "search_term" /var/log/httpd/error_log

2 备份与恢复配置

定期备份Apache配置文件是一个好习惯,你可以使用cp命令备份整个配置文件目录:

sudo cp r /etc/httpd /backup/httpdbackup

恢复时,只需将备份的文件复制回原位置:

sudo cp r /backup/httpdbackup /etc/httpd

然后重启Apache服务:

sudo systemctl restart httpd

3 更新与升级Apache

为了保持安全性和性能,建议定期更新Apache,使用以下命令检查可用更新:

sudo yum checkupdate httpd

如果有更新可用,使用以下命令进行更新:

sudo yum update httpd y

更新后重启Apache服务:

sudo systemctl restart httpd

注意,在更新之前,请备份现有的配置文件和数据。

六、常见问题解答(FAQs)

6.1 Q1: 如何更改Apache的默认根目录?

A1: 你可以通过修改主配置文件httpd.conf中的DocumentRoot参数来更改默认根目录,将根目录更改为/var/www/new_root

DocumentRoot "/var/www/new_root"
<Directory "/var/www/new_root">
    AllowOverride All
    Require all granted
</Directory>

保存后重启Apache服务:

sudo systemctl restart httpd
分享:
扫描分享到社交APP
上一篇
下一篇