凌峰创科服务平台

CentOS Web服务器如何快速配置?

目录

  1. 第一步:准备工作
    • 更新系统
    • 配置防火墙
    • 设置 SELinux (重要)
    • 安装 EPEL 源
  2. 第二步:安装 MySQL (MariaDB) 数据库
    • 安装 MariaDB
    • 安全初始化
  3. 第三步:安装 Nginx Web 服务器
    • 安装 Nginx
    • 启动并设置开机自启
    • 测试 Nginx 页面
  4. 第四步:安装 PHP 和 PHP-FPM
    • 安装 PHP-FPM 和常用扩展
    • 启动并设置开机自启
  5. 第五步:配置 Nginx 与 PHP-FPM 协同工作
    • 创建一个测试站点
    • 配置 Nginx 虚拟主机
    • 设置目录权限
    • 测试 PHP
  6. 第六步:部署一个简单的 PHP 应用 (WordPress 示例)
    • 创建数据库和用户
    • 下载并配置 WordPress
  7. 第七步:安全与性能优化
    • 配置防火墙规则
    • 禁用 root 远程登录
    • 定期更新系统
    • 配置 Fail2Ban 防暴力破解
    • 配置 SSL (Let's Encrypt 免费证书)
  8. 第八步:常用维护命令

第一步:准备工作

在安装任何软件之前,确保你的系统是最新的,并且基本的安全配置已经完成。

CentOS Web服务器如何快速配置?-图1
(图片来源网络,侵删)

更新系统

# 更新所有已安装的软件包
sudo yum update -y
# 清理缓存
sudo yum clean all

配置防火墙

CentOS 7+ 使用 firewalld 作为默认防火墙,我们需要开放 HTTP (80) 和 HTTPS (443) 端口。

# 永久开放 HTTP 端口
sudo firewall-cmd --permanent --add-service=http
# 永久开放 HTTPS 端口
sudo firewall-cmd --permanent --add-service=https
# 重新加载防火墙规则使配置生效
sudo firewall-cmd --reload
# 查看当前开放的端口和服务
sudo firewall-cmd --list-all

设置 SELinux (Security-Enhanced Linux)

SELinux 是一个强大的安全模块,但配置不当会导致服务无法运行,对于新手,可以暂时设置为 permissive 模式(只记录警告,不阻止操作),或者直接禁用。生产环境建议学习并正确配置 SELinux。

# 检查 SELinux 状态 ( enforcing | permissive | disabled )
sestatus
# 临时设置为 permissive 模式 (重启后失效)
sudo setenforce 0
# 永久设置为 permissive 模式 (需要重启)
# sudo nano /etc/selinux/config
# 将 SELINUX=enforcing 改为 SELINUX=permissive
# 然后执行: sudo reboot
# 永久禁用 SELinux (不推荐,但最简单)
# sudo nano /etc/selinux/config
# 将 SELINUX=enforcing 改为 SELINUX=disabled
# 然后执行: sudo reboot

安装 EPEL 源

EPEL (Extra Packages for Enterprise Linux) 提供了许多 CentOS 官方源中没有的软件包。

sudo yum install epel-release -y

第二步:安装 MySQL (MariaDB) 数据库

CentOS 官方推荐使用 MariaDB,它是 MySQL 的一个完全兼容的分支。

CentOS Web服务器如何快速配置?-图2
(图片来源网络,侵删)

安装 MariaDB 服务器

sudo yum install mariadb-server mariadb -y

启动并设置开机自启

# 启动 MariaDB
sudo systemctl start mariadb
# 设置开机自启
sudo systemctl enable mariadb

安全初始化

运行 mysql_secure_installation 脚本可以帮你:

  • 设置 root 密码
  • 移除匿名用户
  • 禁止 root 远程登录
  • 移除测试数据库
  • 重新加载权限表
sudo mysql_secure_installation

按照提示操作即可,建议全部选择 Y (Yes)。


第三步:安装 Nginx Web 服务器

Nginx 是一个高性能的 HTTP 和反向代理服务器。

安装 Nginx

sudo yum install nginx -y

启动并设置开机自启

# 启动 Nginx
sudo systemctl start nginx
# 设置开机自启
sudo systemctl enable nginx

测试 Nginx 页面

打开你的浏览器,访问服务器的 IP 地址或域名: http://你的服务器IP

CentOS Web服务器如何快速配置?-图3
(图片来源网络,侵删)

你应该能看到 Nginx 的欢迎页面。


第四步:安装 PHP 和 PHP-FPM

PHP-FPM (FastCGI Process Manager) 是一个 PHP 的 FastCGI 实现,Nginx 通过它来处理 PHP 请求。

安装 PHP-FPM 和常用扩展

根据你的项目需求安装不同的扩展,这里安装一个常见的组合。

sudo yum install php-fpm php-mysqlnd php-mbstring php-gd php-xml php-json -y

启动并设置开机自启

# 启动 PHP-FPM
sudo systemctl start php-fpm
# 设置开机自启
sudo systemctl enable php-fpm

第五步:配置 Nginx 与 PHP-FPM 协同工作

我们需要告诉 Nginx 如何将 .php 文件的请求转发给 PHP-FPM 处理。

创建一个测试站点

Nginx 的默认配置在 /etc/nginx/nginx.conf,站点配置通常放在 /etc/nginx/conf.d/ 目录下。

# 创建一个新的配置文件
sudo nano /etc/nginx/conf.d/mywebsite.conf

粘贴到文件中:

server {
    listen 80;
    server_name your_domain.com; # 替换成你的域名或 IP
    root /usr/share/nginx/html;  # 网站根目录
    index index.php index.html index.htm;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    # 将所有 .php 文件请求传递给 PHP-FPM
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass 127.0.0.1:9000; # PHP-FPM 默认监听 9000 端口
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
  • server_name: 替换为你的域名或服务器 IP。
  • root: 网站文件存放的目录。
  • fastcgi_pass: 指向 PHP-FPM 的监听地址和端口,默认是 0.0.1:9000

设置目录权限

确保 Nginx 用户(通常是 nginx)有权限写入网站目录。

# 设置网站目录的所有者为 nginx 用户
sudo chown -R nginx:nginx /usr/share/nginx/html
# 设置正确的权限
sudo chmod -R 755 /usr/share/nginx/html

测试 PHP

创建一个 PHP 测试文件来验证配置是否成功。

sudo nano /usr/share/nginx/html/info.php

在文件中输入:

<?php
phpinfo();
?>

保存文件后,在浏览器访问 http://你的服务器IP/info.php,你应该能看到 PHP 的信息页面。测试成功后,为了安全,请立即删除这个文件!

sudo rm /usr/share/nginx/html/info.php

第六步:部署一个简单的 PHP 应用 (WordPress 示例)

这一步将展示如何为真实应用配置数据库。

创建数据库和用户

# 登录到 MariaDB
mysql -u root -p
# 在 MariaDB 命令行中执行以下 SQL 语句
CREATE DATABASE wordpress_db;
CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

下载并配置 WordPress

# 进入网站根目录
cd /usr/share/nginx/html
# 下载 WordPress (请访问官网获取最新版本号)
wget https://wordpress.org/latest.tar.gz
# 解压
tar -xzvf latest.tar.gz
# 将 WordPress 文件移动到根目录,并清理
mv wordpress/* .
mv wordpress/.* . 2>/dev/null || true
rmdir wordpress
rm latest.tar.gz
# 设置正确的所有者
sudo chown -R nginx:nginx .

你可以通过浏览器访问 http://你的服务器IP,开始 WordPress 的安装向导,填写刚刚创建的数据库名、用户名和密码即可。


第七步:安全与性能优化

配置 Fail2Ban 防暴力破解

Fail2ban 可以通过监控日志来自动封禁恶意 IP 地址。

# 安装 Fail2ban
sudo yum install fail2ban -y
# 创建配置文件
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# 编辑配置文件
sudo nano /etc/fail2ban/jail.local

[DEFAULT] 部分,你可以修改 bantime (封禁时间)、findtime (发现时间窗口) 和 maxretry (最大重试次数),并确保启用了 Nginx 和 SSH 的监狱。

[DEFAULT]
bantime = 10h
findtime = 10m
maxretry = 5
[sshd]
enabled = true
[nginx-http-auth]
enabled = true
[nginx-limit-req]
enabled = true

启动 Fail2ban:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

配置 SSL (Let's Encrypt 免费证书)

强烈建议为所有网站启用 HTTPS。

# 安装 Certbot
sudo yum install certbot python3-certbot-nginx -y
# 获取并安装证书
# Certbot 会自动检测 Nginx 配置并修改
sudo certbot --nginx -d your_domain.com -d www.your_domain.com

按照提示操作,Certbot 会自动处理证书的获取、安装和配置 HTTPS 的 Nginx 虚拟主机,它还会设置自动续期。


第八步:常用维护命令

  • 查看服务状态:

    sudo systemctl status nginx
    sudo systemctl status mariadb
    sudo systemctl status php-fpm
  • 重启服务:

    sudo systemctl restart nginx
  • 查看实时日志:

    # Nginx 访问日志
    sudo tail -f /var/log/nginx/access.log
    # Nginx 错误日志
    sudo tail -f /var/log/nginx/error.log
    # PHP-FPM 错误日志
    sudo tail -f /var/log/php-fpm/www-error.log
  • 查看系统资源:

    # 查看内存和 CPU 使用
    top
    # 查看磁盘空间
    df -h

这份指南为你提供了一个功能完整、安全且性能良好的 CentOS Web 服务器基础配置,你可以根据具体需求进行进一步的定制和优化。

分享:
扫描分享到社交APP
上一篇
下一篇