# 阿里云配置 Apache
> Ubuntu Apache2 配置指南
---
## 安装 Apache
```bash
sudo apt-get update
sudo apt-get install apache2 -y
```
---
## 配置文件
### 重要文件位置
| 文件 | 说明 |
|------|------|
| `/etc/apache2/apache2.conf` | 主配置文件 |
| `/etc/apache2/sites-available/` | 站点配置目录 |
| `/etc/apache2/sites-enabled/` | 已启用站点 |
| `/etc/apache2/ports.conf` | 端口配置 |
> ⚠️ **注意**:Apache2 用 `apache2.conf`,不是传统的 `httpd.conf`
---
## 基本配置
### 1. 配置 apache2.conf
```bash
sudo vim /etc/apache2/apache2.conf
```
添加:
```apache
ServerName localhost
DirectoryIndex index.html index.htm index.php
```
### 2. 设置默认字符集
```apache
AddDefaultCharset UTF-8
```
### 3. 设置监听端口
```apache
Listen 80 # 监听 80 端口
Listen 8080 # 监听 8080 端口
```
### 4. 创建虚拟目录
```apache
Alias /down "/software/download"
Alias /ftp "/var/ftp"
```
### 5. 设置目录权限
```apache
Options FollowSymLinks
AllowOverride None
Require all granted
```
---
## 配置站点
### 1. 编辑默认站点
```bash
sudo vim /etc/apache2/sites-available/000-default.conf
```
```apache
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/html
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
```
### 2. 启用站点
```bash
sudo a2ensite 000-default.conf
sudo a2enmod rewrite
```
---
## 常用命令
```bash
# 启动/停止/重启
sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
# 或
sudo /etc/init.d/apache2 start
sudo /etc/init.d/apache2 restart
# 查看状态
sudo systemctl status apache2
# 启用/禁用站点
sudo a2ensite site-name
sudo a2dissite site-name
```
---
## 测试配置
```bash
# 测试配置文件语法
sudo apache2ctl configtest
# 查看已启用模块
apache2ctl -M
```
---
## 安全建议
1. 禁用不必要的模块
2. 隐藏 Apache 版本信息
3. 启用 HTTPS (Let's Encrypt)
4. 配置防火墙只开放 80/443
---
> 参考:[百度经验 - Ubuntu Apache2 配置](https://jingyan.baidu.com/article/9158e0006581d1a2541228b5.html)