在 CentOS 上,Apache 一般叫 httpd(不是 apache2,apache2 是 Ubuntu/Debian 的叫法)。下面以 CentOS 7/8 为例,说明如何绑定域名。
yum install httpd -y
# 或
dnf install httpd -y
域名已解析到服务器公网 IP(A 记录)
防火墙放行 80/443
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
mkdir -p /var/www/example.com/public_html
chown -R apache:apache /var/www/example.com
chmod -R 755 /var/www/example.com
vi /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 /var/log/httpd/example.com-error.log
CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>
httpd -t # 检查配置是否正确
systemctl restart httpd
systemctl enable httpd
浏览器访问:
http://example.com
每个域名一个配置文件即可:
/etc/httpd/conf.d/a.com.conf
/etc/httpd/conf.d/b.com.conf
yum install mod_ssl -y
# 或使用 Let's Encrypt
yum install certbot python3-certbot-apache -y
certbot --apache -d example.com -d www.example.com
setsebool -P httpd_can_network_connect 1
如果你用的是 CentOS + Nginx,或 Docker / 面板(宝塔),可以告诉我,我给你对应方案。