CentOS从零搭建Web服务器步骤解析
导读:CentOS 从零搭建 Web 服务器步骤解析 一 环境准备与基础安全 更新系统并安装常用工具:执行 sudo yum update -y,建议同时安装 vim、wget、curl、net-tools 便于后续操作。 开启并放行防火墙:启...
CentOS 从零搭建 Web 服务器步骤解析
一 环境准备与基础安全
- 更新系统并安装常用工具:执行
sudo yum update -y,建议同时安装vim、wget、curl、net-tools便于后续操作。 - 开启并放行防火墙:启用 firewalld 后放行 HTTP/HTTPS 流量,命令为:
sudo firewall-cmd --permanent --add-service=http、sudo firewall-cmd --permanent --add-service=https,随后sudo firewall-cmd --reload。如需限制管理端口,可仅允许可信网段访问 SSH:sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="你的IP/网段" service name="ssh" accept' & & sudo firewall-cmd --reload。 - SELinux 建议保持启用(默认策略),如遇到权限问题优先通过正确的 SELinux 布尔值或文件上下文修正,而非直接关闭;确需临时排障可用
sudo setenforce 0,生产环境不建议长期关闭。
二 安装与启动 Web 服务
- 方案 A Apache(httpd)
- 安装与启动:
sudo yum install httpd -y,随后sudo systemctl start httpd & & sudo systemctl enable httpd。 - 验证:浏览器访问服务器 IP 出现 Apache 测试页即成功。
- 安装与启动:
- 方案 B Nginx
- 安装与启动:建议先启用 EPEL 源
sudo yum install -y epel-release,再安装sudo yum install -y nginx,随后sudo systemctl start nginx & & sudo systemctl enable nginx。 - 验证:访问服务器 IP 出现 Nginx 欢迎页即成功。
- 安装与启动:建议先启用 EPEL 源
- 说明:两者择一部署即可;若需更高并发与反向代理能力可优先 Nginx,若追求通用性与生态兼容可优先 Apache。
三 部署动态站点与数据库
- 安装 PHP 及常用扩展:执行
sudo yum install php php-mysql -y,安装完成后重启 Web 服务(Apache 用sudo systemctl restart httpd,Nginx 用sudo systemctl restart nginx)。 - 创建 PHP 信息页验证:在默认根目录创建
/var/www/html/info.php,内容< ?php phpinfo(); ?>,访问http://服务器IP/info.php出现 PHP 信息页即正常。 - 安装数据库(MariaDB)
- 安装与启动:
sudo yum install mariadb-server mariadb -y,随后sudo systemctl start mariadb & & sudo systemctl enable mariadb。 - 安全初始化:执行
sudo mysql_secure_installation设置 root 密码、移除匿名用户、禁止远程 root 登录、删除测试库等。 - 登录测试:
mysql -u root -p可正常进入数据库即完成。
- 安装与启动:
四 虚拟主机与目录权限
- 以 Apache 为例创建站点 example.com
- 新建目录与权限:
sudo mkdir -p /var/www/html/example.com/public_html,建议将目录属主设为 apache 用户组:sudo chown -R apache:apache /var/www/html/example.com,权限sudo chmod -R 755 /var/www/html/example.com。 - 新建虚拟主机配置:
sudo vim /etc/httpd/conf.d/example.com.conf,内容示例:< VirtualHost *:80> ServerAdmin admin@example.com DocumentRoot /var/www/html/example.com/public_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 < /VirtualHost> - 语法检查与生效:
sudo apachectl configtest,通过后sudo systemctl restart httpd。
- 新建目录与权限:
- Nginx 的 Server 块思路类似:在
/etc/nginx/conf.d/下新增example.com.conf,配置server_name、root、index等指令,完成后sudo nginx -t & & sudo systemctl reload nginx。 - 提示:目录与日志路径可按需调整,但需确保运行用户(Apache 为 apache,Nginx 为 nginx)对相关目录具备读取/写入权限。
五 启用 HTTPS 与运维监控
- 使用 Let’s Encrypt 为 Apache 自动部署免费证书
- 安装 Certbot:
sudo yum install epel-release -y,随后sudo yum install certbot python2-certbot-apache -y。 - 获取并自动配置证书:
sudo certbot --apache -d example.com -d www.example.com,按向导选择是否重定向 HTTP→HTTPS。
- 安装 Certbot:
- 维护与监控
- 证书自动续期:建议定期执行
sudo certbot renew --dry-run验证续期流程,生产环境可配置系统定时任务自动续期。 - 日志与排障:常用命令
sudo tail -f /var/log/httpd/access_log、sudo tail -f /var/log/httpd/error_log(Nginx 为/var/log/nginx/access.log与error.log);配置变更前执行语法检查(Apachesudo apachectl configtest,Nginxsudo nginx -t)。 - 系统与软件更新:定期
sudo yum update -y;可启用 yum-cron 实现自动更新:sudo yum install yum-cron -y & & sudo systemctl enable --now yum-cron。 - 备份策略:定期备份站点目录与数据库,例如
sudo tar -cvzf /backup/example.com.tar.gz /var/www/html/example.com,数据库用mysqldump导出:sudo mysqldump -u root -p 数据库名 > /backup/db.sql。
- 证书自动续期:建议定期执行
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS从零搭建Web服务器步骤解析
本文地址: https://pptw.com/jishu/785116.html
