温馨提示×

apache2 ubuntu怎么设置好

小樊
37
2026-07-17 12:04:59
栏目: 智能运维

下面是在 Ubuntu 上正确、规范地配置 Apache2 的常用做法,从安装 → 基础配置 → 虚拟主机 → 权限 → 常见优化/安全,按步骤来即可。


一、安装 Apache2

sudo apt update
sudo apt install apache2 -y

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

检查状态:

sudo systemctl status apache2

如果没启动:

sudo systemctl start apache2
sudo systemctl enable apache2

浏览器访问服务器 IP:

http://服务器IP

看到 Apache2 Ubuntu Default Page 表示成功。


二、目录结构说明(很重要)

/etc/apache2/
├── apache2.conf        # 主配置文件
├── ports.conf          # 端口配置
├── sites-available/    # 可用站点配置
├── sites-enabled/      # 已启用站点(软链接)
├── mods-available/
├── mods-enabled/
└── conf-available/

网站根目录默认:

/var/www/html

三、修改默认网站(基础示例)

1️⃣ 修改默认页面

sudo nano /var/www/html/index.html

2️⃣ 修改默认站点配置(可选)

sudo nano /etc/apache2/sites-available/000-default.conf

示例:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

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

保存后:

sudo systemctl reload apache2

四、配置虚拟主机(推荐做法 ✅)

示例:配置 example.com

1️⃣ 创建网站目录

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

2️⃣ 创建虚拟主机配置文件

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}/example.com_error.log
    CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>

3️⃣ 启用站点

sudo a2ensite example.com.conf
sudo systemctl reload apache2

(停用默认站点)

sudo a2dissite 000-default.conf

五、开启 URL 重写(伪静态 / Laravel / WordPress 必备)

sudo a2enmod rewrite
sudo systemctl restart apache2

确认:

apache2ctl -M | grep rewrite

六、权限 & 用户设置(非常重要 ⚠️)

Apache 运行用户

ps aux | grep apache

一般是:

www-data

推荐权限设置

sudo chown -R www-data:www-data /var/www
sudo chmod -R 755 /var/www

如果是 Laravel / ThinkPHP

sudo chmod -R 775 storage bootstrap/cache

七、防火墙设置(UFW)

sudo ufw allow 'Apache Full'
sudo ufw reload

查看:

sudo ufw status

八、开启 HTTPS(Let’s Encrypt 免费证书 ✅)

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache

自动配置 HTTPS + 自动续期。


九、常用优化 & 安全建议

1️⃣ 关闭目录浏览

Options -Indexes

2️⃣ 隐藏 Apache 版本

sudo nano /etc/apache2/conf-available/security.conf
ServerTokens Prod
ServerSignature Off

启用:

sudo a2enconf security
sudo systemctl reload apache2

十、常用命令速查

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

sudo apache2ctl configtest   # 检查配置

十一、典型场景建议

场景 建议
PHP 网站 安装 libapache2-mod-php
Laravel 开启 rewrite + storage 权限
多站点 每个站点一个 sites-available
高并发 mpm_prefork / event

如果你愿意,可以告诉我:

  • ✅ Ubuntu 版本(20.04 / 22.04 / 24.04)
  • ✅ 用途(PHP / Laravel / 静态网站 / 反向代理)
  • ✅ 是否要 HTTPS / 多站点

我可以给你一套完全贴合你服务器的配置方案

0