在CentOS操作系统上搭建网站是许多服务器管理员和开发者的常见需求,CentOS以其稳定性和安全性著称,适合作为Web服务器环境,以下是详细的搭建步骤,包括环境准备、服务安装、配置优化及安全加固等内容。

环境准备
在开始搭建网站前,需确保系统已更新至最新状态,并安装必要的开发工具,执行以下命令更新系统:
sudo yum update -y sudo yum groupinstall "Development Tools" -y
关闭防火墙和SELinux(临时配置,生产环境需谨慎):
sudo systemctl stop firewalld sudo systemctl disable firewalld sudo setenforce 0
安装Web服务器
安装Apache(HTTPd)
Apache是最流行的Web服务器之一,支持PHP、Python等多种语言,安装命令:
sudo yum install httpd -y
启动并设置开机自启:

sudo systemctl start httpd sudo systemctl enable httpd
默认网站根目录为/var/www/html
,可通过修改/etc/httpd/conf/httpd.conf
中的DocumentRoot
调整。
安装Nginx(可选)
若需更高性能,可选择Nginx,安装命令:
sudo yum install nginx -y sudo systemctl start nginx sudo systemctl enable nginx
Nginx默认配置文件位于/etc/nginx/nginx.conf
,网站根目录为/usr/share/nginx/html
。
安装数据库
以MySQL为例,安装MariaDB(CentOS默认替代MySQL):

sudo yum install mariadb-server mariadb -y sudo systemctl start mariadb sudo systemctl enable mariadb
初始化安全配置:
sudo mysql_secure_installation
根据提示设置root密码、移除匿名用户等。
安装PHP(动态网站支持)
若网站需要PHP支持(如WordPress),安装PHP及常用扩展:
sudo yum install php php-mysql php-fpm -y sudo systemctl restart httpd # 若使用Apache+PHP
测试PHP是否生效:在/var/www/html
创建info.php
为<?php phpinfo(); ?>
,访问http://服务器IP/info.php
查看PHP信息。
部署网站文件
将网站代码上传至服务器,可通过SCP、FTP或Git方式,使用SCP上传:
scp -r /local/website root@服务器IP:/var/www/html/
设置文件权限:
sudo chown -R apache:apache /var/www/html/ sudo chmod -R 755 /var/www/html/
配置虚拟主机(多网站支持)
若需托管多个域名,需配置虚拟主机,以Apache为例,在/etc/httpd/conf.d/
创建example.com.conf
:
<VirtualHost *:80> ServerName example.com DocumentRoot /var/www/example.com ErrorLog logs/example.com_error.log CustomLog logs/example.com_access.log combined </VirtualHost>
重启Apache生效:
sudo systemctl restart httpd
安全加固
- 修改默认端口:将Apache或Nginx的监听端口从80改为其他端口(如8080)。
- 启用HTTPS:使用Let's Encrypt免费证书:
sudo yum install certbot python3-certbot-apache -y sudo certbot --apache -d example.com
- 定期备份:编写脚本备份网站文件和数据库,
# 备份网站文件 tar -czf /backup/website_$(date +%F).tar.gz /var/www/html/ # 备份数据库 mysqldump -u root -p database_name > /backup/database_$(date +%F).sql
性能优化
- 启用缓存:对于Apache,安装
mod_cache
模块;对于Nginx,配置proxy_cache
。 - 压缩静态资源:在Apache中启用
mod_deflate
,在Nginx中配置gzip
。 - 限制访问频率:使用
mod_evasive
(Apache)或ngx_http_limit_req_module
(Nginx)防止DDoS攻击。
监控与维护
- 日志分析:使用
goaccess
工具实时分析访问日志:sudo yum install goaccess -y goaccess /var/log/httpd/access.log -o report.html --real-time-html
- 定期更新:定期执行
sudo yum update -y
更新系统和软件包。
相关问答FAQs
如何在CentOS上设置网站自动跳转HTTPS?
答:在Apache虚拟主机配置中添加以下规则:
<VirtualHost *:80> ServerName example.com Redirect permanent / https://example.com/ </VirtualHost> <VirtualHost *:443> ServerName example.com SSLEngine on SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem DocumentRoot /var/www/html </VirtualHost>
重启Apache后,访问HTTP会自动跳转至HTTPS。
网站访问慢如何排查?
答:可通过以下步骤排查:
- 检查服务器负载:
top
或htop
命令查看CPU、内存占用。 - 分析访问日志:使用
grep
或awk
统计高频访问IP或URL,排查异常请求。 - 检查网络带宽:使用
iftop
或nethogs
监控流量占用。 - 优化数据库:检查慢查询日志(
slow_query_log=1
),优化SQL语句或添加索引。 - 启用缓存:确保静态资源(图片、CSS、JS)已启用浏览器缓存或服务器端缓存。