在 Apache 里设置虚拟主机(Virtual Host),常见有两种方式:基于端口和基于域名。下面以 Linux(如 Ubuntu / CentOS) 为例,一步一步说明,Windows 也类似。
apachectl -v
sudo systemctl start apache2 # Ubuntu
sudo systemctl start httpd # CentOS
sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html
添加测试页面:
echo "example.com" | sudo tee /var/www/example.com/public_html/index.html
echo "test.com" | sudo tee /var/www/test.com/public_html/index.html
sudo nano /etc/apache2/sites-available/example.com.conf
sudo nano /etc/httpd/conf.d/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}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>
同理再建一个 test.com.conf
sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
sudo systemctl reload apache2
✅ CentOS 无需 a2ensite,直接重启即可:
sudo systemctl restart httpd
sudo nano /etc/hosts
添加:
127.0.0.1 example.com
127.0.0.1 test.com
浏览器访问:
http://example.com
http://test.com
# /etc/apache2/ports.conf 或 httpd.conf
Listen 8080
<VirtualHost *:8080>
DocumentRoot /var/www/port8080
</VirtualHost>
sudo chown -R www-data:www-data /var/www
sudo chmod -R 755 /var/www
a2ensitereload apache/etc/apache2/
├── sites-available/
│ ├── example.com.conf
│ └── test.com.conf
├── sites-enabled/
如果你愿意,可以告诉我:
我可以给你完全贴合你环境的配置示例。