当前位置: 首页 > news >正文

Linux小课堂: LNMP架构下Discuz论坛部署全流程解析

LNMP架构基础与环境检查


1 ) 架构组成:

  • Linux 操作系统 + Nginx 服务器 + MariaDB(MySQL兼容分支) + PHP
  • 对比LAMP:将Apache替换为Nginx,需额外处理 Nginx与PHP的通信机制
  • 技术要点:
    1. Nginx通过FastCGI协议与PHP交互,需安装PHP-FPM(FastCGI进程管理器)
    2. PHP-FPM默认监听127.0.0.1:9000端口,作为Nginx解析PHP脚本的桥梁

2 ) 环境验证:

# 检查Nginx状态 
systemctl status nginx  # 确认服务为active (running)且开机自启 # 检查PHP版本 
php -v  # 输出:PHP 5.6.40 # 登录MariaDB验证 
mysql -uroot -p  # 输入密码后查看版本:5.5.64-MariaDB 

Nginx与PHP通信配置

1 ) 关键问题:
Nginx需通过 FastCGI协议 与PHP交互,需安装 php-fpm(FastCGI进程管理器)。

2 ) 安装php-fpm:

yum install php56w-fpm  # 解决与PHP 5.6.40的版本冲突 
systemctl start php-fpm && systemctl enable php-fpm  # 启动并设自启 

3 ) Nginx配置调整(/etc/nginx/nginx.conf):

server {listen       80;server_name  localhost;root         /usr/share/nginx/html;# 添加PHP文件支持 index index.html index.htm index.php;location ~ \.php$ {# 转发PHP请求到php-fpm(监听127.0.0.1:9000)fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;include        fastcgi_params;  # 关键:修复原配置拼写错误(fastcgi_params非parms)}
}

重点步骤:

  • 注释原有反向代理配置(避免冲突)
  • 执行 nginx -t 测试配置,修复语法错误后重启:
    systemctl restart nginx 
    

4 )验证PHP解析:

# 创建测试文件 
echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/index.php 

访问 http://服务器IP/index.php,确认显示 PHP版本信息及FPM状态

  • PHP版本(5.6.40)
  • FastCGI协议激活状态
  • MariaDB驱动信息

Discuz安装与SELinux权限处理


1 ) 下载Discuz: wget https://gitee.com/ComsenzDiscuz/DiscuzX/archive/v3.4.zip

  • 官方源:Discuz! X3.4(简体中文UTF-8版)
  • 上传至服务器:
    scp v3.4.zip root@192.168.0.106:/usr/share/nginx/html/
    unzip v3.4.zip 
    rm -rf v3.4.zip readme utility   # 保留upload目录 
    mv upload/* . && rm -rf upload   # 移动文件至Web根目录
    

2 ) 目录权限设置:

chmod -R 777 /usr/share/nginx/html  # 开放读写权限 

3 ) 解决SELinux拦截(关键步骤):

  • 现象:安装向导提示目录不可写,即使权限为777
  • 根本原因:SELinux安全上下文限制
  • 解决方案:
    # 修改目录安全上下文类型 
    semanage fcontext -a -t httpd_sys_rw_content_t "/usr/share/nginx/html(/.*)?"
    restorecon -R -v /usr/share/nginx/html  # 递归应用新上下文 
    setenforce 1                           # 重新启用SELinux 
    
  • 验证:刷新安装页面 http://服务器IP/install/,确认权限检测通过

数据库配置与论坛初始化

1 ) 安装向导操作:

  • 访问 http://服务器IP/install/
  • 设置数据库参数:
    数据库名:discuz  
    用户名:root  
    密码:原MariaDB的root密码  
    表前缀:pre_  
    
  • 管理员账号:admin,密码自定义(如 123456

2 ) 安装完成:

  • 登录论坛后台 http://服务器IP/admin.php
  • 验证功能:用户管理、站点设置、应用中心扩展

3 )SELinux调试命令:

tail -f /var/log/audit/audit.log      # 实时查看权限拒绝日志 
grep php-fpm /var/log/audit/audit.log # 过滤PHP-FPM相关错误 

关键问题总结:

  • Nginx+PHP通信:依赖 php-fpm 与正确的 fastcgi_pass 配置
  • SELinux权限:必须将Web目录上下文设为 httpd_sys_rw_content_t
  • Discuz兼容性:PHP 5.6.x + MariaDB 5.5.x 已验证支持

通过上述流程,LNMP架构成功部署动态论坛系统,完整保留原始操作细节与技术要点,同时优化逻辑连贯性与术语准确性

技术总结:LNMP架构的核心在于Nginx与PHP-FPM的协作,需通过FastCGI协议打通通信;SELinux权限管理是部署中的常见障碍,通过调整安全上下文解决。本文档完整保留原始操作步骤,优化逻辑后适用于生产环境部署。

http://www.dtcms.com/a/544555.html

相关文章:

  • 徐州网站建设推广做餐饮企业网站的费用
  • 网站搭建合同基于漏斗模型网站关键路径分析
  • 利用腾讯开源 Hunyuan3D 2.1:在 DigitalOcean GPU Droplet 上快速搭建 3D 模型
  • 【开题答辩全过程】以 多媒体素材管理系统为例,包含答辩的问题和答案
  • 聊聊高并发访问遇到过期的缓存项测试策略
  • 目标检测算法与原理(一):迁移学习
  • 第三章 线性模型
  • 【WordPress】Nova WordPress 主题:为内容创作者打造的极致体验
  • 网站一般几年创新的沈阳网站建设
  • 惠普电脑网站建设策划方案h5模板下载有哪些网站
  • 怎么做网站seo山东省旅游网站建设
  • web网页,在线%抖音,舆情%分析系统demo,基于python+web+echart+nlp+知识图谱,数据库mysql
  • 把浅色的pdf文件加深
  • Actix-Web 框架实战:构建高性能 RESTful API 服务
  • 边缘计算中针对不同类型的任务(如分类、回归)评估指标
  • 【16】C语言-编辑`task.json`文件以改变警告等级
  • Rust高性能优化与零拷贝技术深度实践
  • Linux-Redhat系统启动读取文件流程
  • React 10
  • 京东方 EV101WXM-N10 工业液晶模组技术摘要
  • Deep End-to-End Alignment and Refinement for Time-of-Flight RGB-D modules复现
  • Java-163 MongoDB 生产安全加固实战:10 分钟完成认证、最小权限、角色详解
  • MinIO 与云原生_现代化对象存储解决方案
  • 【C语言实战(63)】从0到1:51单片机GPIO控制实战秘籍
  • 金仓替代MongoDB:互联网医院聊天脱敏实战
  • 使用 ESLint + Prettier + Husky
  • mongodb备份脚本(单机+副本集)
  • 金仓数据库平替MongoDB全栈安全实战:从文档存储到多模一体化的演进之路
  • 基于k8s环境下mongodb备份恢复实战
  • 申威ky10架构安装MongoDB 4.0.1(rpm包:mongodb-4.0.1-8.ky10.sw_64.rpm)详细步骤