在 Apache 上绑定域名,通常是指让某个域名(如 www.example.com)指向服务器上的某个网站目录。下面按最常见场景一步步说明(以 Linux 为例,Windows 类似)。
域名已解析到服务器 IP
example.com → 服务器公网IP
www.example.com → 服务器公网IP
ping example.com 测试是否解析成功Apache 已安装
apachectl -v
mkdir -p /var/www/example.com
放一个测试页面:
echo "Hello example.com" > /var/www/example.com/index.html
vim /etc/apache2/sites-available/example.com.conf
vim /etc/httpd/conf.d/example.com.conf
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com
<Directory /var/www/example.com>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>
a2ensite example.com.conf
systemctl restart apache2
systemctl restart httpd
浏览器访问:
http://example.com
如果你只是本地测试:
# Windows
C:\Windows\System32\drivers\etc\hosts
# Linux / macOS
/etc/hosts
添加:
127.0.0.1 example.com
只需创建多个 <VirtualHost> 配置即可:
<VirtualHost *:80>
ServerName site1.com
DocumentRoot /var/www/site1
</VirtualHost>
<VirtualHost *:80>
ServerName site2.com
DocumentRoot /var/www/site2
</VirtualHost>
<Directory>
Require all granted
</Directory>
ss -lntp | grep 80
如果你愿意,可以告诉我:
我可以给你完全对应的配置示例。