温馨提示×

如何配置linux apache

小樊
51
2026-10-29 00:40:10
栏目: 智能运维

下面我按最常见的 Linux 发行版(CentOS / Rocky / Ubuntu)给你一个从零到可访问网页的 Apache 配置指南。如果你有特定需求(虚拟主机、HTTPS、PHP、反向代理等),可以再告诉我。


一、安装 Apache

✅ Ubuntu / Debian

sudo apt update
sudo apt install apache2 -y

✅ CentOS / Rocky / AlmaLinux

sudo dnf install httpd -y

二、启动并设置开机自启

Ubuntu

sudo systemctl start apache2
sudo systemctl enable apache2

CentOS

sudo systemctl start httpd
sudo systemctl enable httpd

三、防火墙放行 80 / 443 端口

firewalld(CentOS)

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

ufw(Ubuntu)

sudo ufw allow 80
sudo ufw allow 443

四、测试 Apache 是否成功

浏览器访问:

http://服务器IP

看到 Apache 默认欢迎页即成功。


五、网站目录结构(重点)

Ubuntu

/var/www/html/        # 默认网站目录
/etc/apache2/         # 配置目录

CentOS

/var/www/html/
/etc/httpd/

六、配置一个简单网站

1️⃣ 创建网站目录

sudo mkdir -p /var/www/example.com
sudo chown -R $USER:$USER /var/www/example.com

2️⃣ 创建测试页面

echo "<h1>Hello Apache</h1>" > /var/www/example.com/index.html

七、配置虚拟主机(推荐)

Ubuntu

sudo nano /etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example.com

    <Directory /var/www/example.com>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

启用站点:

sudo a2ensite example.com
sudo a2dissite 000-default
sudo systemctl reload apache2

CentOS

sudo nano /etc/httpd/conf.d/example.com.conf
<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example.com

    <Directory /var/www/example.com>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
sudo systemctl restart httpd

八、开启 HTTPS(可选但强烈推荐)

Ubuntu

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d example.com

CentOS

sudo dnf install certbot python3-certbot-apache -y
sudo certbot --apache -d example.com

九、常见问题排查

Apache 无法启动

sudo apachectl configtest
journalctl -xe

403 Forbidden

  • 目录权限不对
  • SELinux 未关闭或配置错误(CentOS)
sudo setsebool -P httpd_read_user_content 1

十、你接下来可能需要

  • ✅ PHP 支持
  • ✅ 反向代理(Node / Java)
  • ✅ 多域名
  • ✅ 限速 / 防盗链
  • ✅ 日志分析

告诉我你的 Linux 版本 + 使用场景,我可以给你更精准的配置示例。

0 踩