CentOS环境部署

一、基础环境准备

1. 系统初始化

# 更新系统
sudo yum update -y

# 配置防火墙(以开放HTTP/HTTPS为例)
sudo systemctl enable --now firewalld
sudo firewall-cmd --add-service=http --add-service=https --permanent
sudo firewall-cmd --reload

# 禁用SELinux(临时)
sudo setenforce 0
# 永久禁用:编辑 /etc/selinux/config,将 SELINUX=enforcing 改为 SELINUX=disabled

2. 安装必要工具

sudo yum install -y vim wget curl net-tools git

二、Apache 服务器部署

1. 安装与启动

sudo yum install -y httpd
sudo systemctl enable --now httpd

2. 配置虚拟主机(示例)

创建网站目录:
mkdir -p /var/www/example.com/public_html
sudo chown -R apache:apache /var/www/example.com
sudo chmod -R 755 /var/www/example.com
创建虚拟主机配置文件:
sudo vim /etc/httpd/conf.d/example.com.conf
添加以下内容:
<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog /var/www/example.com/error.log
    CustomLog /var/www/example.com/access.log combined
</VirtualHost>
重启 Apache:
sudo systemctl restart httpd

三、MySQL/MariaDB 数据库部署

1. 安装 MariaDB(CentOS 7 默认)

sudo yum install -y mariadb-server
sudo systemctl enable --now mariadb

2. 初始化安全设置

sudo mysql_secure_installation
# 按提示设置 root 密码、删除匿名用户、禁止远程 root 登录等

3. 创建数据库和用户(示例)

sudo mysql -u root -p
在 MySQL 命令行中执行:
CREATE DATABASE exampledb CHARACTER SET utf8mb4;
CREATE USER 'exampleuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON exampledb.* TO 'exampleuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

四、PHP 环境部署

1. 安装 PHP(以 PHP 8.1 为例,需启用 Remi 源)

sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo yum module enable php:remi-8.1 -y
sudo yum install -y php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json

2. 配置 PHP

sudo vim /etc/php.ini
调整以下参数:
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 32M
date.timezone = Asia/Shanghai
重启 Apache:
sudo systemctl restart httpd

五、验证部署

1. 测试 PHP

创建测试文件:
sudo vim /var/www/example.com/public_html/info.php
添加内容:
<?php
phpinfo();
?>
访问 http://your-server-ip/info.php,若看到 PHP 信息页面,则部署成功。

2. 测试数据库连接

创建测试文件:
sudo vim /var/www/example.com/public_html/db_test.php
添加内容:
<?php
$servername = "localhost";
$username = "exampleuser";
$password = "password";
$dbname = "exampledb";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
echo "数据库连接成功";
$conn->close();
?>
访问 http://your-server-ip/db_test.php,若显示 “数据库连接成功”,则配置正确。

六、HTTPS 配置(可选)

1. 安装 Certbot

sudo yum install -y certbot python3-certbot-apache

2. 获取 SSL 证书

sudo certbot --apache -d example.com -d www.example.com

3. 自动续期

sudo crontab -e
添加任务(每天检查证书,到期自动续期):
0 0 * * * /usr/bin/certbot renew --quiet

七、性能优化建议

  1. 调整 Apache 配置
    sudo vim /etc/httpd/conf/httpd.conf
    
    添加 / 修改:
    KeepAlive On
    MaxKeepAliveRequests 100
    KeepAliveTimeout 5
    
    <IfModule mpm_prefork_module>
        StartServers 8
        MinSpareServers 5
        MaxSpareServers 20
        ServerLimit 256
        MaxClients 256
        MaxRequestsPerChild 4000
    </IfModule>
    
  2. 启用 PHP OPcache
    sudo vim /etc/php.d/10-opcache.ini
    


    确保以下参数存在:
    opcache.enable=1
    opcache.memory_consumption=128
    opcache.interned_strings_buffer=8
    opcache.max_accelerated_files=4000
    opcache.revalidate_freq=60
    
  3. 数据库优化
    sudo vim /etc/my.cnf.d/server.cnf
    


    添加 / 修改:
    [mysqld]
    innodb_buffer_pool_size = 512M
    innodb_log_file_size = 128M
    query_cache_type = 1
    query_cache_size = 64M
    max_connections = 200
    

八、安全强化

  1. 限制 SSH 访问
    sudo vim /etc/ssh/sshd_config
    
    修改:
    Port 2222  # 非标准端口
    PermitRootLogin no
    PasswordAuthentication no  # 仅密钥认证
    
  2. 安装 Fail2Ban
    sudo yum install -y fail2ban
    sudo systemctl enable --now fail2ban
    
  3. 定期备份
    # 数据库备份脚本
    mkdir -p /backup/mysql
    echo "mysqldump -u root -p'password' --all-databases > /backup/mysql/backup_$(date +%F).sql" > /root/backup.sh
    chmod +x /root/backup.sh
    
    # 添加 cron 任务(每天凌晨 2 点执行)
    echo "0 2 * * * /root/backup.sh" | sudo crontab -
    

九、监控与维护

  1. 安装系统监控工具
    sudo yum install -y htop iotop iftop glances
    
  2. 日志管理
    sudo yum install -y logrotate
    # 配置日志轮转(示例:Apache 日志每周轮转并压缩)
    sudo vim /etc/logrotate.d/httpd
    
以上步骤可根据实际需求调整,例如替换数据库为 PostgreSQL、使用 Nginx 替代 Apache,或部署特定应用(如 WordPress、Django 项目等)。部署后建议进行压力测试(如使用 Apache JMeter 或 wrk)以验证性能。
阅读剩余
THE END