CentOS作为一款基于Linux的开源操作系统,凭借其稳定性和安全性,常被用于搭建企业级服务器,以下是使用CentOS搭建服务器的详细步骤,从基础环境配置到常用服务部署,帮助您快速上手。
基础环境准备
系统更新与工具安装
确保系统为最新状态,并安装必要的运维工具,通过SSH连接到CentOS服务器后,执行以下命令:
sudo yum update -y # 更新系统所有包 sudo yum install -y wget vim net-tools curl # 安装常用工具
wget
用于下载文件,vim
用于编辑配置,net-tools
提供ifconfig
等网络命令,curl
用于测试网络连通性。
配置静态IP地址
服务器需固定IP以便远程访问,以CentOS 7为例,编辑网络配置文件:
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
关键参数配置如下(表格形式展示):
参数名 | 示例值 | 说明 |
---|---|---|
TYPE | Ethernet | 网络类型 |
BOOTPROTO | static | 静态IP获取方式 |
IPADDR | 168.1.100 | 目标IP地址 |
NETMASK | 255.255.0 | 子网掩码 |
GATEWAY | 168.1.1 | 网关地址 |
DNS1 | 8.8.8 | DNS服务器(可配置公共DNS) |
ONBOOT | yes | 开机自动启用网卡 |
保存后重启网络服务:sudo systemctl restart network
,并通过ifconfig
或ip addr
确认IP配置生效。
防火墙与SELinux配置
CentOS默认启用firewalld
防火墙和SELinux安全模块,需放行服务端口。
防火墙配置
sudo systemctl start firewalld # 启动防火墙 sudo firewall-cmd --permanent --add-service=http # 放行HTTP服务(80端口) sudo firewall-cmd --permanent --add-service=https # 放行HTTPS服务(443端口) sudo firewall-cmd --permanent --add-port=22/tcp # 放行SSH服务(22端口) sudo firewall-cmd --reload # 重新加载防火墙规则
SELinux配置
若不熟悉SELinux,可临时设置为宽松模式(生产环境建议精细配置策略):
sudo setenforce 0 # 临时关闭(重启后失效) sudo vim /etc/selinux/config # 永久关闭,将SELINUX=enforcing改为SELINUX=disabled
安装常用服务
部署Web服务器(以Nginx为例)
Nginx是一款高性能HTTP服务器,支持反向代理和负载均衡。
sudo yum install -y epel-release # 安装EPEL源(扩展软件包) sudo yum install -y nginx # 安装Nginx sudo systemctl start nginx # 启动Nginx sudo systemctl enable nginx # 设置开机自启
访问服务器IP,若看到Nginx欢迎页面,则安装成功,默认网站目录为/usr/share/nginx/html
,可通过修改/etc/nginx/nginx.conf
调整配置。
部署数据库(以MariaDB为例)
MariaDB是MySQL的开源分支,兼容性良好。
sudo yum install -y mariadb-server mariadb # 安装MariaDB sudo systemctl start mariadb # 启动数据库 sudo systemctl enable mariadb # 开机自启 sudo mysql_secure_installation # 安全初始化(设置root密码、移除匿名用户等)
初始化后,可通过mysql -u root -p
登录数据库管理。
安装PHP环境(可选)
若需运行动态网页,可安装PHP及扩展:
sudo yum install -y php php-fpm php-mysqlnd # 安装PHP及MySQL扩展 sudo systemctl start php-fpm # 启动PHP-FPM sudo systemctl enable php-fpm # 开机自启
在Nginx配置中添加PHP解析规则(编辑/etc/nginx/conf.d/default.conf
),在server
块中添加:
location ~ .php$ { root /usr/share/nginx/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
重启Nginx:sudo systemctl restart nginx
,并在网站目录创建info.php
测试PHP是否正常解析。
安全配置
-
创建普通用户:避免直接使用root账号,创建新用户并赋予sudo权限:
sudo useradd -m admin # 创建用户admin并创建家目录 sudo passwd admin # 设置用户密码 echo "admin ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/admin # 赋予sudo权限
-
禁用root远程登录:编辑SSH配置文件
/etc/ssh/sshd_config
,将PermitRootLogin yes
改为PermitRootLogin no
,重启SSH服务:sudo systemctl restart sshd
。 -
定期更新系统:设置定时任务自动更新:
echo "0 3 * * * yum update -y" | sudo crontab - # 每天凌晨3点自动更新
监控与日志
通过top
、htop
查看系统资源占用,或安装nmon
工具实时监控,日志文件位置:Nginx日志在/var/log/nginx/
,系统日志在/var/log/messages
,可通过logrotate
配置日志轮转,避免日志文件过大。
相关问答FAQs
Q1:如何查看CentOS系统的版本信息?
A:可通过以下命令查看:
cat /etc/redhat-release
:显示CentOS完整版本号(如“CentOS Linux release 7.9.2009”)。uname -a
:显示内核版本及系统架构(如“Linux 3.10.0-1160.el7.x86_64”)。
Q2:搭建的网站无法访问,可能的原因及排查步骤?
A:常见原因及排查方法如下:
- 防火墙未放行端口:执行
sudo firewall-cmd --list-ports
检查80/443端口是否已开放,未开放则使用firewall-cmd --permanent --add-port=80/tcp
添加并重载。 - 服务未启动:通过
systemctl status nginx
检查Nginx是否运行,未启动则执行systemctl start nginx
。 - 安全组(云服务器)未开放端口:登录云平台控制台,检查服务器的安全组规则,是否添加了80、22等端口的入站规则。
- 网站目录权限问题:确保Nginx用户(默认为
nginx
)对网站目录有读取权限,执行sudo chown -R nginx:nginx /usr/share/nginx/html
。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/44196.html