Apache 是目前使用最广泛的 Web 服务器之一。本文从安装到配置虚拟主机、HTTPS,手把手带你搭建一个完整的 Web 服务环境。
什么是 Apache?
Apache HTTP Server(软件包名为 httpd)是一个开源的 Web 服务器软件,由 Apache 软件基金会维护。它可以托管静态网站、动态网站(配合 PHP),也可以作为反向代理使用。
1. 安装 Apache
yum install httpd -y
# 查看版本确认安装成功
httpd -v2. 启动与管理服务
systemctl start httpd # 启动服务
systemctl enable httpd # 设置开机自启
systemctl status httpd # 查看运行状态(active (running) 为正常)验证是否启动成功:
curl -I http://localhost # 应返回 HTTP/1.1 200 OK打开浏览器访问 http://服务器IP,如果看到 Apache 默认测试页面,说明安装成功。
3. 防火墙配置
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
firewall-cmd --list-all # 确认放行4. Apache 核心目录结构
| 路径 | 说明 |
|---|---|
/etc/httpd/conf/httpd.conf | 主配置文件 |
/etc/httpd/conf.d/ | 子配置文件目录(推荐在此新增配置) |
/var/www/html/ | 默认网站根目录 |
/var/log/httpd/access_log | 访问日志 |
/var/log/httpd/error_log | 错误日志(排错利器) |
5. 配置虚拟主机(VirtualHost)
虚拟主机让你在一台服务器上托管多个网站。
创建网站目录:
mkdir -p /var/www/bytecho
echo "<h1>Hello from Bytecho!</h1>" > /var/www/bytecho/index.html创建虚拟主机配置:
新建 /etc/httpd/conf.d/bytecho.conf:
<VirtualHost *:80>
ServerName bytecho.cn
ServerAlias www.bytecho.cn
DocumentRoot /var/www/bytecho
<Directory /var/www/bytecho>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/httpd/bytecho-error.log
CustomLog /var/log/httpd/bytecho-access.log combined
</VirtualHost>配置说明:
ServerName— 域名DocumentRoot— 网站文件目录Options -Indexes— 禁止目录列表(安全)Require all granted— 允许所有 IP 访问
重启 Apache:
httpd -t # 先检查配置语法(重要!)
systemctl reload httpd # 平滑重载配置(不中断服务)6. 配置 HTTPS(SSL 证书)
安装 mod_ssl:
yum install mod_ssl -y创建自签名证书(测试用):
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/bytecho.key -out /etc/pki/tls/certs/bytecho.crt -subj "/CN=bytecho.cn"创建 HTTPS 虚拟主机:
编辑 /etc/httpd/conf.d/bytecho-ssl.conf:
<VirtualHost *:443>
ServerName bytecho.cn
DocumentRoot /var/www/bytecho
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/bytecho.crt
SSLCertificateKeyFile /etc/pki/tls/private/bytecho.key
<Directory /var/www/bytecho>
Require all granted
</Directory>
</VirtualHost>httpd -t && systemctl reload httpd7. 查看日志排错
tail -f /var/log/httpd/error_log # 实时查看错误日志
tail -f /var/log/httpd/access_log # 查看访问日志
tail -f /var/log/httpd/bytecho-error.log # 查看特定网站的日志常见问题
Q:浏览器访问报 403 Forbidden?
检查目录权限:chmod 755 /var/www/bytecho,并确认 SELinux 没有阻止:restorecon -Rv /var/www/
Q:httpd -t 报错 Syntax error?
通常是配置文件语法错误,仔细检查 VirtualHost 的尖括号是否匹配,路径是否正确。
Q:改完配置要不要重启?
推荐用 systemctl reload httpd 而不是 restart。reload 不断开已有连接,restart 会中断所有正在处理的请求。
掌握了 Apache 的基本配置,你已经可以自己托管网站了。接下来可以学习 Nginx,了解两款服务器的区别和适用场景。
评论 (0)