Apache HTTP Server(简称 Apache)在 Ubuntu 上可以通过 系统包管理器(APT) 原生适配和安装,这也是最常见、最推荐的方式。下面我从 安装 → 配置 → 常见适配场景 → 排错建议 给你一个完整说明。
sudo apt update
sudo apt install apache2 -y
安装完成后,Ubuntu 会自动:
sudo systemctl status apache2
sudo systemctl enable apache2
http://服务器IP
看到 Apache2 Ubuntu Default Page 说明成功。
Ubuntu 对 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/ |
日志目录 |
✅ Ubuntu 使用 sites-available / sites-enabled 机制(区别于 CentOS)。
sudo mkdir -p /var/www/example.com/public_html
sudo nano /etc/apache2/sites-available/example.com.conf
内容示例:
<VirtualHost *:80>
ServerName 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 a2enmod rewrite
sudo a2enmod ssl
sudo a2dismod php7.4
sudo a2ensite default-ssl
sudo systemctl reload apache2
sudo ufw allow 'Apache Full'
sudo ufw enable
sudo ufw status
sudo apt install php libapache2-mod-php -y
sudo systemctl restart apache2
测试:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
sudo ss -tlnp | grep :80
sudo apache2ctl configtest
sudo chown -R www-data:www-data /var/www
sudo chmod -R 755 /var/www
| 对比项 | Ubuntu | CentOS |
|---|---|---|
| 服务名 | apache2 | httpd |
| 配置目录 | /etc/apache2 | /etc/httpd |
| 启用站点 | a2ensite | 直接编辑 conf |
| 包管理器 | apt | yum/dnf |
Apache 在 Ubuntu 上几乎“开箱即用”,只需使用
apt + a2enmod + a2ensite即可完成完整适配。
如果你有 特定场景(如:反向代理、HTTPS、多端口、Docker、ARM 服务器),可以告诉我,我可以给你更针对性的配置方案。