在 Apache 中设置虚拟主机(Virtual Host),通常用于在一台服务器上托管多个网站。下面以 Linux(如 Ubuntu / CentOS) 为例,说明常见做法。
虚拟主机有两种常见方式:
sudo a2enmod vhost_alias # Ubuntu/Debian
sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html
设置权限:
sudo chown -R $USER:$USER /var/www/example.com
sudo chown -R $USER:$USER /var/www/test.com
sudo nano /etc/apache2/sites-available/example.com.conf
内容示例:
<VirtualHost *:80>
ServerAdmin admin@example.com
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>
sudo a2ensite example.com.conf
sudo a2dissite 000-default.conf # 禁用默认站点(可选)
sudo apache2ctl configtest
sudo systemctl restart apache2
修改本地 hosts 文件:
Linux / macOS
sudo nano /etc/hosts
添加:
127.0.0.1 example.com
127.0.0.1 test.com
浏览器访问:
http://example.com
<VirtualHost *:8080>
DocumentRoot /var/www/port8080
</VirtualHost>
并确保:
Listen 8080
AH00558: 主机名未设置 → 配置 ServerNameRequire all granteda2ensite 或重启 Apache如果你告诉我:
我可以给你更精确的配置示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。