温馨提示×

apache2配置ubuntu如何做

小樊
50
2026-07-17 11:58:56
栏目: 智能运维

下面给你一份在 Ubuntu 上配置 Apache2 的完整实操指南,从安装到常见配置,适合新手也能当速查表用。


一、安装 Apache2

sudo apt update
sudo apt install apache2 -y

安装完成后,服务会自动启动。

查看状态:

sudo systemctl status apache2

二、防火墙放行(如果有 UFW)

sudo ufw allow 'Apache Full'

验证:

sudo ufw status

三、访问测试

浏览器访问:

http://服务器IP

看到 Apache2 Ubuntu Default Page 说明成功。


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

/var/www/html        # 默认网站根目录
/etc/apache2        # 主配置目录
├── apache2.conf    # 主配置文件
├── sites-available # 可用站点配置
├── sites-enabled   # 已启用站点(软链接)
├── mods-available  # 可用模块
├── mods-enabled    # 已启用模块
└── envvars         # 环境变量

五、配置一个网站(示例)

1️⃣ 新建网站目录

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

2️⃣ 创建测试页面

sudo nano /var/www/example.com/public_html/index.html

内容示例:

<h1>Example.com 网站运行成功</h1>

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

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>

六、启用站点

sudo a2ensite example.com.conf
sudo systemctl reload apache2

如需禁用默认站点:

sudo a2dissite 000-default.conf

七、启用伪静态 / .htaccess(很常见)

sudo a2enmod rewrite
sudo systemctl restart apache2

确认 AllowOverride All 已设置(见上一步 <Directory>)。


八、常见配置示例

✅ 绑定多个域名

新建多个 *.conf,分别 a2ensite 即可。

✅ 修改默认端口(如 8080)

编辑:

sudo nano /etc/apache2/ports.conf

修改:

Listen 8080

虚拟主机中:

<VirtualHost *:8080>

九、日志位置

# 错误日志
/var/log/apache2/error.log

# 访问日志
/var/log/apache2/access.log

查看实时日志:

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

十、常用命令速查

sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl reload apache2
sudo apache2ctl configtest   # 检查配置语法

十一、常见错误排查

❌ 403 Forbidden

  • 目录权限问题
sudo chown -R www-data:www-data /var/www/example.com
sudo chmod -R 755 /var/www/example.com

❌ 端口被占用

sudo netstat -tulpn | grep :80

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

  • ✅ 是 单网站 / 多网站
  • ✅ 是否需要 HTTPS(Let’s Encrypt)
  • ✅ 是否搭配 PHP / MySQL

我可以直接给你定制配置

0