温馨提示×

Ubuntu如何配置Apache

小樊
43
2026-07-31 23:01:36
栏目: 智能运维

下面以 Ubuntu 22.04 / 20.04 为例,系统讲解 Apache(httpd)的安装与基本配置。如果你用的是其他版本,步骤也基本一致。


一、安装 Apache

1. 更新软件源

sudo apt update

2. 安装 Apache

sudo apt install apache2 -y

3. 检查服务状态

sudo systemctl status apache2

正常应看到 active (running)

常用命令:

sudo systemctl start apache2    # 启动
sudo systemctl stop apache2     # 停止
sudo systemctl restart apache2  # 重启
sudo systemctl enable apache2   # 开机自启

二、防火墙配置(UFW)

如果启用了 UFW 防火墙:

sudo ufw allow 'Apache Full'

验证:

sudo ufw status

浏览器访问:

http://服务器IP

看到 Apache2 Ubuntu Default Page 即成功。


三、Apache 目录结构说明

路径 说明
/var/www/html 默认网站根目录
/etc/apache2/apache2.conf 主配置文件
/etc/apache2/sites-available/ 可用站点配置
/etc/apache2/sites-enabled/ 已启用站点
/etc/apache2/mods-available/ 可用模块
/etc/apache2/mods-enabled/ 已启用模块
/var/log/apache2/ 日志目录

四、配置一个网站(虚拟主机)

1. 创建网站目录

sudo mkdir -p /var/www/example.com/public_html

2. 添加测试页面

echo "Hello Apache" | sudo tee /var/www/example.com/public_html/index.html

3. 设置权限

sudo chown -R www-data:www-data /var/www/example.com
sudo chmod -R 755 /var/www

4. 创建虚拟主机配置文件

sudo nano /etc/apache2/sites-available/example.com.conf

内容示例:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html

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

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

5. 启用站点

sudo a2ensite example.com.conf
sudo systemctl reload apache2

6. 禁用默认站点(可选)

sudo a2dissite 000-default.conf
sudo systemctl reload apache2

五、启用常用模块

1. 启用 rewrite(URL 重写,常用于 WordPress)

sudo a2enmod rewrite
sudo systemctl restart apache2

2. 启用 SSL(HTTPS)

sudo a2enmod ssl
sudo a2ensite default-ssl
sudo systemctl restart apache2

六、配置 HTTPS(Let’s Encrypt)

1. 安装 Certbot

sudo apt install certbot python3-certbot-apache -y

2. 申请证书

sudo certbot --apache -d example.com -d www.example.com

证书会自动续期。


七、常见问题排查

1. 403 Forbidden

  • 检查目录权限
  • 检查 <Directory> 配置
  • 确保 Require all granted

2. 网站不生效

sudo apache2ctl configtest

查看是否有语法错误。


八、适合你的下一步

你可以告诉我:

  • ✅ 是否用于 PHP / WordPress
  • ✅ 是否需要 多站点
  • ✅ 是否部署在 云服务器
  • ✅ 是否想配置 HTTPS + 反向代理

我可以给你 更精确的配置方案

0