从零开始设置 CentOS 虚拟主机
一 环境准备与安装
sudo yum install httpd -ysudo systemctl start httpd && sudo systemctl enable httpdsudo systemctl status httpd(看到 active (running) 即正常)sudo firewall-cmd --permanent --add-service=httpsudo firewall-cmd --permanent --add-service=httpssudo firewall-cmd --reloadsudo yum install nginx 安装,后续按 Nginx 的 server 配置方式创建虚拟主机。二 基于域名的虚拟主机 Apache 版
sudo mkdir -p /var/www/example.com/htmlecho "<h1>Welcome to example.com</h1>" | sudo tee /var/www/example.com/html/index.htmlsudo chown -R apache:apache /var/www/example.com && sudo chmod -R 755 /var/www/example.comsudo vi /etc/httpd/conf.d/example.com.conf<VirtualHost *:80>
ServerAdmin webmaster@example.com
DocumentRoot /var/www/example.com/html
ServerName example.com
ServerAlias www.example.com
ErrorLog /var/log/httpd/example.com-error.log
CustomLog /var/log/httpd/example.com-access.log combined
<Directory /var/www/example.com/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
sudo httpd -t(出现 Syntax OK 再继续)sudo systemctl restart httpd<VirtualHost> 段。三 基于域名的虚拟主机 Nginx 版
sudo yum install nginx -ysudo systemctl start nginx && sudo systemctl enable nginxsudo vi /etc/nginx/conf.d/example.com.confserver {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_log /var/log/nginx/example.com-error.log;
access_log /var/log/nginx/example.com-access.log;
}
sudo nginx -tsudo systemctl reload nginx(或 restart)四 DNS 解析与本地测试
服务器IP example.com www.example.comhttp://example.com 应看到你的测试页。五 常见问题与进阶
<Directory> 配置,确保有 Require all granted,并且目录属主为 apache:apache。httpd -t(Apache)或 nginx -t(Nginx)查看语法;确认站点配置位于正确目录(Apache 为 /etc/httpd/conf.d/*.conf;Nginx 为 /etc/nginx/conf.d/*.conf),然后重启服务。firewall-cmd 已放行 80/443,用 ss -tulpen | grep ':80\|:443' 检查端口占用。sudo yum install certbot python2-certbot-apache(Apache)sudo certbot --apache -d example.com -d www.example.com