CentOS 是一个广泛使用的 Linux 发行版,其稳定性和灵活性使其成为服务器环境的首选之一,在 CentOS 上安装 HTTPD(即 Apache HTTP server)是配置 Web 服务器的重要步骤之一,HTTPD 是一个功能强大、灵活且可扩展的 Web 服务器,适用于从小型个人网站到大型企业级应用的各种场景。
CentOS 7 安装 HTTPD
1、准备工作
确保系统已更新:
sudo yum update y
检查是否已经安装了 HTTPD:
rpm qa | grep httpd
2、安装 HTTPD
使用 YUM 安装 HTTPD:
sudo yum install y httpd
启动并设置开机自启:
sudo systemctl start httpd sudo systemctl enable httpd
3、验证安装
查看 HTTPD 服务状态:
sudo systemctl status httpd
在浏览器中访问服务器 IP 地址或域名,应看到 Apache 的默认欢迎页面。
4、基本配置
编辑主配置文件:
sudo vi /etc/httpd/conf/httpd.conf
修改DocumentRoot
和DirectoryIndex
:
DocumentRoot "/var/www/html" DirectoryIndex index.html index.htm
5、防火墙配置
开放 HTTP 服务端口:
sudo firewallcmd permanent addservice=http sudo firewallcmd reload
6、SELinux 配置
SELinux 启用,允许 HTTPD 访问 Web 内容目录:
sudo setsebool P httpd_can_network_connect 1 sudo setsebool P httpd_can_network_connect_db 1 sudo setsebool P httpd_read_user_content 1
CentOS 8 安装 HTTPD
1、准备工作
确保系统已更新:
sudo dnf update y
检查是否已经安装了 HTTPD:
rpm qa | grep httpd
2、安装 HTTPD
使用 DNF 安装 HTTPD:
sudo dnf install y httpd
启动并设置开机自启:
sudo systemctl start httpd sudo systemctl enable httpd
3、验证安装
查看 HTTPD 服务状态:
sudo systemctl status httpd
在浏览器中访问服务器 IP 地址或域名,应看到 Apache 的默认欢迎页面。
4、基本配置
编辑主配置文件:
sudo vi /etc/httpd/conf/httpd.conf
修改DocumentRoot
和DirectoryIndex
:
DocumentRoot "/var/www/html" DirectoryIndex index.html index.htm
5、防火墙配置
开放 HTTP 服务端口:
sudo firewallcmd permanent addservice=http sudo firewallcmd reload
6、SELinux 配置
SELinux 启用,允许 HTTPD 访问 Web 内容目录:
sudo setsebool P httpd_can_network_connect 1 sudo setsebool P httpd_can_network_connect_db 1 sudo setsebool P httpd_read_user_content 1
HTTPD 常用配置与优化
1、虚拟主机配置
编辑配置文件:
sudo vi /etc/httpd/conf/httpd.conf
添加虚拟主机配置:
<VirtualHost *:80> DocumentRoot "/var/www/html/mywebsite" ServerName www.mywebsite.com <Directory "/var/www/html/mywebsite"> Require all granted </Directory> </VirtualHost>
2、SSL 配置
生成 SSL 证书:
sudo yum install y mod_ssl sudo vim /etc/httpd/conf.d/ssl.conf
配置 SSL:
SSLEngine on SSLCertificateFile /etc/pki/tls/certs/server.crt SSLCertificateKeyFile /etc/pki/tls/private/server.key
启动 SSL:
sudo systemctl restart httpd
3、性能优化
启用缓存:
sudo vi /etc/httpd/conf/httpd.conf
添加缓存模块:
LoadModule cache_module modules/mod_cache.so CacheEnable disk / CacheRoot "/var/cache/httpd" CacheDirLevels 2 CacheDirPermission 755
调整工作进程数:
sudo vi /etc/sysconfig/httpd
设置HTTPD_WORKER_PROCESSES
和HTTPD_WORKER_THREADS
。
常见问题解答(FAQs)
Q1:如何更改 HTTPD 默认监听的端口?
A1:编辑主配置文件/etc/httpd/conf/httpd.conf
,找到以下行:
Listen 80
将其改为所需的端口号,
Listen 8080
然后重启 HTTPD 服务:
sudo systemctl restart httpd
Q2:如何配置 HTTPD 以允许目录浏览?
A2:编辑主配置文件/etc/httpd/conf/httpd.conf
,找到<Directory "/var/www/html">
部分,确保包含以下选项:
Options Indexes FollowSymLinks AllowOverride None Require all granted
然后重启 HTTPD 服务:
sudo systemctl restart httpd