在 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 更适合开发和测试用途。
云服务器