温馨提示×

如何配置apache2在ubuntu

小樊
39
2026-08-27 14:42:09
栏目: 智能运维

下面是在 Ubuntu 上配置 Apache2 的常用步骤,从安装到基本站点配置,适合新手和日常使用。


一、安装 Apache2

sudo apt update
sudo apt install apache2 -y

安装完成后,Apache 会自动启动。

检查状态:

sudo systemctl status apache2

二、防火墙配置(如有 UFW)

如果启用了防火墙,需要允许 HTTP / HTTPS:

sudo ufw allow 'Apache Full'

查看状态:

sudo ufw status

三、测试 Apache 是否运行

在浏览器中访问:

http://服务器IP

看到 Apache2 Ubuntu Default Page 即表示成功。


四、Apache 目录结构说明

路径 作用
/var/www/html 默认网站根目录
/etc/apache2 主配置目录
/etc/apache2/sites-available 可用站点配置
/etc/apache2/sites-enabled 已启用站点
/etc/apache2/mods-available 可用模块
/etc/apache2/mods-enabled 已启用模块

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

1️⃣ 创建网站目录

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

2️⃣ 创建测试页面

echo "<h1>Welcome to example.com</h1>" | 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>
    ServerAdmin webmaster@example.com
    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

六、启用常用模块

启用重写模块(常见用于伪静态)

sudo a2enmod rewrite
sudo systemctl restart apache2

启用 SSL(HTTPS)

sudo a2enmod 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

证书会自动续期。


八、常用管理命令

sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl reload apache2

九、常见问题排查

查看错误日志

sudo tail -f /var/log/apache2/error.log

配置文件语法检查

sudo apache2ctl configtest

如果你需要:

  • 配置 PHP
  • 配置多站点
  • Apache + MySQL
  • 反向代理
  • 安全加固

可以告诉我你的具体需求,我可以一步步帮你配置。

0