奋斗
努力

使用CentOS Stream搭建LNMP或LAMP环境需要注意什么?

云计算

在 CentOS Stream 上搭建 LNMP(Linux + Nginx + MySQL/MariaDB + PHP)或 LAMP(Linux + Apache + MySQL/MariaDB + PHP环境时,需要注意以下几个关键事项:

一、CentOS Stream 特性注意事项

1. 版本定位

  • CentOS Stream 是 RHEL 的滚动上游预览版,不是传统意义上的稳定发行版
  • 软件包更新频率较高,但稳定性略低于正式 RHEL/CentOS 8/9
  • 不适合生产环境使用,更适合开发测试环境

2. 支持周期

  • CentOS Stream 9 预计支持到 2032 年
  • 每个小版本都有较短的支持窗口,需定期升级

二、基础系统准备

1. 最小化安装建议

# 安装基本工具
sudo dnf install -y epel-release
sudo dnf update -y
sudo systemctl disable firewalld  # 或使用 firewall-cmd 配置规则
sudo setenforce 0                 # 临时关闭 SELinux(生产环境建议配置而非禁用)

2. SELinux 处理

  • 生产环境建议正确配置 SELinux 策略,而非简单禁用
  • 可使用 semanage 和 restorecon 调整上下文

三、LNMP 环境搭建要点

1. Nginx 安装

# 官方源安装
sudo dnf install -y nginx
sudo systemctl enable --now nginx

2. 数据库选择

  • MariaDB(默认推荐):

    sudo dnf install -y mariadb-server mariadb
    sudo systemctl enable --now mariadb
    sudo mysql_secure_installation
  • MySQL(如需):

    # 从 MySQL 官方仓库安装
    sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
    sudo dnf install -y mysql-server
    sudo systemctl enable --now mysqld

3. PHP 安装与配置

# 安装 PHP 及常用扩展
sudo dnf install -y php php-fpm php-mysqlnd php-pdo php-gd php-mbstring php-json php-xml

# 启动 PHP-FPM
sudo systemctl enable --now php-fpm

4. Nginx 与 PHP-FPM 集成

编辑 /etc/nginx/conf.d/default.conf 或创建新虚拟主机配置:

server {
    listen 80;
    server_name example.com;
    root /var/www/html;
    index index.php index.html;

    location ~ .php$ {
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location / {
        try_files $uri $uri/ =404;
    }
}

四、LAMP 环境搭建要点

1. Apache 安装

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

2. PHP 模块安装

sudo dnf install -y php php-mysqlnd php-pdo php-gd php-mbstring php-json php-xml mod_php

3. Apache 配置

确保 /etc/httpd/conf.d/php.conf 存在并正确加载 PHP 模块

五、通用注意事项

1. 防火墙配置

# 如果使用 firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

2. 目录权限设置

# LNMP: Nginx 用户通常为 nginx
sudo chown -R nginx:nginx /var/www/html
sudo chmod -R 755 /var/www/html

# LAMP: Apache 用户通常为 apache
sudo chown -R apache:apache /var/www/html
sudo chmod -R 755 /var/www/html

3. 日志位置

  • Nginx: /var/log/nginx/
  • Apache: /var/log/httpd/
  • PHP-FPM: /var/log/php-fpm/
  • MariaDB: /var/log/mariadb/
  • MySQL: /var/log/mysqld.log

4. 安全加固

  • 修改数据库默认密码
  • 禁用远程 root 登录
  • 限制 PHP 危险函数(如 exec, shell_exec 等)
  • 启用 HTTPS(使用 Let’s Encrypt 证书)

5. 性能优化

  • 调整 PHP-FPM 子进程数量(pm.max_children)
  • 配置 Nginx/Apache 缓存头
  • 启用 OPcache(php.ini 中 opcache.enable=1)

六、常见问题排查

1. PHP 不执行

  • 检查 PHP-FPM 是否运行:systemctl status php-fpm
  • 检查 Nginx 配置中的 location ~ .php$ 块
  • 确认 fastcgi_pass 路径正确

2. 数据库连接失败

  • 检查服务状态:systemctl status mariadb
  • 验证用户名密码和权限
  • 检查 SELinux 是否阻止连接

3. 权限错误

  • 检查 Web 服务器用户对网站目录的读写权限
  • 确认文件所有者正确

七、备份与维护

# 定期备份
sudo cp -r /var/www/html /backup/www_$(date +%Y%m%d)
sudo mysqldump -u root -p database_name > backup.sql

# 监控服务状态
sudo journalctl -u nginx -f
sudo journalctl -u php-fpm -f
sudo journalctl -u mariadb -f

总结

项目 LNMP LAMP
Web 服务器 Nginx(高性能、异步) Apache(模块化、兼容性好)
PHP 处理方式 PHP-FPM(独立进程) mod_php(Apache 模块)
适用场景 高并发、静态资源多 需要 .htaccess、mod_rewrite 复杂规则
内存占用 较低 相对较高

重要提醒:由于 CentOS Stream 的定位,建议在生产环境中使用 Rocky Linux、AlmaLinux 或正式版的 RHEL/CentOS。CentOS Stream 更适合开发和测试用途。

未经允许不得转载:云服务器 » 使用CentOS Stream搭建LNMP或LAMP环境需要注意什么?