在 Ubuntu 上使用 Apache2 配置多站点(虚拟主机),通常有以下几种常见方式:
sudo apt update
sudo apt install apache2
sudo mkdir -p /var/www/site1
sudo mkdir -p /var/www/site2
echo "site1" | sudo tee /var/www/site1/index.html
echo "site2" | sudo tee /var/www/site2/index.html
sudo nano /etc/apache2/sites-available/site1.conf
内容示例:
<VirtualHost *:80>
ServerName site1.com
DocumentRoot /var/www/site1
<Directory /var/www/site1>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/site1_error.log
CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
</VirtualHost>
sudo nano /etc/apache2/sites-available/site2.conf
<VirtualHost *:80>
ServerName site2.com
DocumentRoot /var/www/site2
<Directory /var/www/site2>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/site2_error.log
CustomLog ${APACHE_LOG_DIR}/site2_access.log combined
</VirtualHost>
sudo a2ensite site1.conf
sudo a2ensite site2.conf
禁用默认站点(可选):
sudo a2dissite 000-default.conf
sudo apache2ctl configtest
sudo systemctl restart apache2
编辑本机 hosts 文件:
sudo nano /etc/hosts
添加:
127.0.0.1 site1.com
127.0.0.1 site2.com
浏览器访问:
http://site1.com
http://site2.com
sudo nano /etc/apache2/ports.conf
添加:
Listen 8080
<VirtualHost *:8080>
DocumentRoot /var/www/site2
</VirtualHost>
<VirtualHost 192.168.1.10:80>
DocumentRoot /var/www/site1
</VirtualHost>
<VirtualHost 192.168.1.11:80>
DocumentRoot /var/www/site2
</VirtualHost>
sudo apt install certbot python3-certbot-apache
sudo certbot --apache
a2ensite # 启用站点
a2dissite # 禁用站点
a2enmod # 启用模块
apache2ctl configtest
systemctl restart apache2
如果你需要:
可以继续告诉我你的具体场景。