ubuntu apache虚拟主机如何设置
导读:Ubuntu 下 Apache 虚拟主机设置指南 一 准备与目录结构 安装 Apache:sudo apt update && sudo apt install apache2 启用常用模块(按需):sudo a2enmo...
Ubuntu 下 Apache 虚拟主机设置指南
一 准备与目录结构
- 安装 Apache:sudo apt update & & sudo apt install apache2
- 启用常用模块(按需):sudo a2enmod rewrite;如需 HTTPS:sudo a2enmod ssl
- Ubuntu 的 Apache 采用“分文件 + 软链”机制:站点配置放在 /etc/apache2/sites-available/,启用后通过软链到 /etc/apache2/sites-enabled/;主配置 /etc/apache2/apache2.conf 会自动包含这些目录,便于按站点启停管理。
二 创建并启用虚拟主机
- 创建站点目录与示例首页:
- sudo mkdir -p /var/www/example.com
- echo “Hello example.com” | sudo tee /var/www/example.com/index.html
- 新建站点配置:
- sudo nano /etc/apache2/sites-available/example.com.conf
- 写入示例(*:80 为 HTTP 端口):
< VirtualHost *:80> ServerAdmin webmaster@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com < Directory /var/www/example.com> Options Indexes FollowSymLinks AllowOverride All Require all granted < /Directory> ErrorLog ${ APACHE_LOG_DIR} /example.com_error.log CustomLog ${ APACHE_LOG_DIR} /example.com_access.log combined < /VirtualHost>
- 启用站点与(可选)禁用默认站点:
- sudo a2ensite example.com.conf
- sudo a2dissite 000-default.conf(如不需要默认站点)
- 检查语法并重新加载:
- sudo apache2ctl configtest
- sudo systemctl reload apache2
- 说明:
- 将日志拆分到站点目录(如 example.com_error.log)便于排错与审计。
- 若使用 .htaccess,需将目录中的 AllowOverride 设为 All。
三 DNS 与本地测试
- 域名解析:在域名 DNS 管理添加 A 记录 指向服务器公网 IP;如需同时支持 www,可添加 CNAME 指向主域名或再添加一条 A 记录。
- 本地测试(无公网域名时):
- 编辑本机 hosts:sudo nano /etc/hosts
- 添加行:127.0.0.1 example.com www.example.com
- 浏览器访问:http://example.com
- 端口与监听:如需改用其他端口(如 8080),在 /etc/apache2/ports.conf 添加 Listen 8080,并将 VirtualHost 改为 < VirtualHost *:8080> 。
四 启用 HTTPS 与自动续期
- 安装 Certbot:sudo apt install certbot python3-certbot-apache
- 获取并配置证书(同时处理 example.com 与 www.example.com):
- sudo certbot --apache -d example.com -d www.example.com
- 自动续期:
- sudo systemctl enable --now certbot.timer
- 测试续期:sudo certbot renew --dry-run
- 完成后,Certbot 会自动创建 HTTPS 虚拟主机并做 HTTP→HTTPS 重定向(若选择)。
五 常用排错与优化
- 语法与虚拟主机匹配检查:
- sudo apache2ctl configtest
- sudo apache2ctl -S(或 httpd -S),可查看加载的站点与匹配规则
- 权限与目录:
- 确保目录属主为 www-data:sudo chown -R www-data:www-data /var/www/example.com
- 目录权限建议 755,文件 644
- 常见问题:
- 端口被占用:检查 sudo lsof -iTCP:80 -sTCP:LISTEN 或 ss -tlnp | grep :80
- 403 Forbidden:检查 的 Require all granted 与目录权限
- 域名访问到默认页:确认已 a2ensite 目标站点并禁用 000-default.conf,且 DNS 已生效
- 性能与安全建议:
- 开启 mod_rewrite 以支持框架路由(如 Laravel、WordPress 固定链接)
- 关闭目录浏览(生产环境将 Options Indexes 移除)
- 启用 HTTP/2(在启用 SSL 后,按需加载相关模块并调整 MPM)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu apache虚拟主机如何设置
本文地址: https://pptw.com/jishu/769299.html
