LNMP架构之搭建Discuz论坛

LNMP

  • 一、编译安装Nginx
    • 1)前置准备
    • 2)开始编译安装
    • 3)添加到系统服务(systemd启动)
  • 二、编译安装MySQL服务
    • 1)前置准备
    • 2)编译安装
    • 3)编辑配置文件
    • 4)更改mysql安装目录和配置文件的属主属组
    • 5)设置路径环境变量
    • 6)数据库初始化
    • 7)添加mysqld系统服务
    • 8)修改用户mysql 的登录密码
  • 三、编译安装PHP
    • 1)前置准备
    • 2)编译安装
    • 3)路径优化
    • 4)调整PHP配置文件
      • 调整主配置文件
      • 调整进程服务配置文件
      • 调整扩展配置文件
    • 5)启动php-fpm
    • 6)配置 Nginx 支持 PHP 解析
    • 7)验证PHP 测试页
  • 四、安装论坛
    • 1)以 root 用户身份登录到 MySQL 数据库,进行配置
    • 2)解压Discuz源码包并配置
    • 3)安装Discuz论坛
      • 进入安装向导界面
      • 进入开始安装界面
      • 安装向导
      • 进入安装数据库界面,等待安装完成
      • 访问论坛

补充说明LNMP架构是一种用于搭建 Web 服务器环境的常用架构。由 Linux、Nginx、MySQL和PHP组成。
组成部分功能
Linux作为操作系统的基础,提供稳定的环境。
Nginx作为反向代理服务器,处理客户端的请求并将它们转发给后端的应用服务器。
MySQL作为关系型数据库管理系统,用于存储和管理数据。
PHP用来编写服务器端的动态网页代码,与数据库和其他服务进行交互。

一、编译安装Nginx

1)前置准备

#关闭防火墙和selinux
systemctl stop firewalldsetenforce 0
#安装依赖
yum -y install pcre-devel zlib-devel gcc gcc-c++ make#创建用户
useradd -M -s /sbin/nologin nginx#获取源码包
wget https://nginx.org/download/nginx-1.24.0.tar.gz

在这里插入图片描述

cd /opt 
tar xf nginx-1.24.0.tar.gz#解压

2)开始编译安装

cd nginx-1.24.0/#编译
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

在这里插入图片描述

#安装
make -j2 && make install 
#让系统识别nginx操作命令,可以补全
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

在这里插入图片描述

3)添加到系统服务(systemd启动)

#新建nginx.service
vim /lib/systemd/system/nginx.service[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.targetsystemctl daemon-reload 
systemctl start nginx

在这里插入图片描述

二、编译安装MySQL服务

1)前置准备

#依赖环境
yum -y install \
ncurses \
ncurses-devel \
bison \
cmake#添加用户
useradd -s /sbin/nologin  mysql
将MySQL源代码包放在 /opt目录下tar xf mysql-boost-5.7.20.tar.gz #解压cd mysql-5.7.20

在这里插入图片描述

2)编译安装

#编译
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1#安装
make -j2 && make install 

在这里插入图片描述

3)编辑配置文件

#进入配置文件,把内容全删掉,然后加入以下内容
vim /etc/my.cnf[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

在这里插入图片描述
在这里插入图片描述

4)更改mysql安装目录和配置文件的属主属组

chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

5)设置路径环境变量

echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile	
source /etc/profile

6)数据库初始化

cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

在这里插入图片描述

7)添加mysqld系统服务

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
#能用systemd启动
systemctl daemon-reload          刷新识别     
systemctl start mysqld.service   开启服务
systemctl enable mysqld          开机自启动ss -natp | grep 3306        查看端口

在这里插入图片描述

8)修改用户mysql 的登录密码

mysqladmin -u root -p password "123abc" mysql -u root -p #授权远程登录

在这里插入图片描述

三、编译安装PHP

1)前置准备

#安装依赖环境
#安装GD库和GD库关联程序,用来处理和生成图片
yum -y install \
libjpeg \
libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel
将PHP源代码包放在 /opt目录下tar -jxvf php-7.1.10.tar.bz2 #解压cd /opt/php-7.1.10/

2)编译安装

#编译环境检测 功能模块添加
./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip

在这里插入图片描述

#安装
make -j2 && make install

在这里插入图片描述

3)路径优化

ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/

4)调整PHP配置文件

php有三个配置文件
php.ini			主配置文件  
php-fpm.conf	进程服务配置文件 
www.conf		扩展配置文件

调整主配置文件

cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini #模板vim /usr/local/php/lib/php.ini #修改主配置文件

在这里插入图片描述

在这里插入图片描述

调整进程服务配置文件

cd /usr/local/php/etc/
cp  php-fpm.conf.default php-fpm.confvim php-fpm.conf

在这里插入图片描述

调整扩展配置文件

cd /usr/local/php/etc/php-fpm.d/cp www.conf.default www.conf

5)启动php-fpm

/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.iniss -napt | grep 9000

在这里插入图片描述

cd /opt/php-7.1.10/sapi/fpm
cp php-fpm.service /usr/lib/systemd/system/php-fpm.servicesystemctl restart php-fpm.service

6)配置 Nginx 支持 PHP 解析

vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述

systemctl restart nginx.service

7)验证PHP 测试页

#创建网页文件
vi /usr/local/nginx/html/index.php<?php
phpinfo();
?>#重启nginx服务
systemctl restart nginx#在网页测试
http://192.168.2.102/index.php

在这里插入图片描述

四、安装论坛

1)以 root 用户身份登录到 MySQL 数据库,进行配置

mysql -u root -p 
#以 root 用户身份登录到 MySQL 数据库
mysql> CREATE DATABASE bbs;  #创建一个数据库mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';  #把bbs数据库里面所有表的权限授予给bbsuser,并设置密码mysql>flush privileges; #刷新数据库

在这里插入图片描述

2)解压Discuz源码包并配置

unzip /opt/Discuz_X3.4_SC_UTF8.zip #解压cd /opt/dir_SC_UTF8/#拷贝文件到数据
cp -r upload/ /usr/local/nginx/html/bbs/
#改权限 改属组属主
cd /usr/local/nginx/html/bbs/chown -R root:nginx ./config/
chown -R root:nginx ./data/
chown -R root:nginx ./uc_client/
chown -R root:nginx ./uc_server/chmod -R 777 ./config/
chmod -R 777 ./data/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/

3)安装Discuz论坛

浏览器访问
http://192.168.2.102/bbs/install/index.php

进入安装向导界面

在这里插入图片描述

进入开始安装界面

在这里插入图片描述

安装向导

在这里插入图片描述

进入安装数据库界面,等待安装完成

在这里插入图片描述

访问论坛

访问Discuz论坛
http://192.168.2.102/bbs/index.php

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/111521.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VR全景展示:打造三维、立体化的VR房产参观方式

我们从近期的新闻中可以了解到&#xff0c;房地产行业正在经历挑战和压力&#xff0c;因为房地产销售市场的持续低迷&#xff0c;导致很多公司出现了债务危机。线下销售模式效果不佳&#xff0c;很多房企开始转战线上销售&#xff0c;VR全景展示方案为房地产销售带来了全新的体…

下面是实践百度飞桨上面的pm2.5分类项目_logistic regression相关

part1:数据的引入&#xff0c;和前一个linear regression基本是一样 part2:数据解析——也就是数据的“规格化” 首先&#xff0c;打算用dataMat[]和labelMat[]数据存储feature和label&#xff0c;并且文件变量fr 然后&#xff0c;是这个for line in fr.readlines()循环&#…

华为OD机试 - MELON的难题 - 动态规划(Java 2023 B卷 100分)

目录 一、题目描述二、输入描述三、输出描述四、动态规划五、解题思路六、Java算法源码七、效果展示1、输入2、输出3、说明华为OD机试 2023B卷题库疯狂收录中,刷题点这里 一、题目描述 MELON有一堆精美的雨花石(数量为n,重量各异),准备送给S和W。MELON希望送给俩人的雨花石…

【javaweb】学习日记Day6 - Mysql 数据库 DDL DML

之前学习过的SQL语句笔记总结戳这里→【数据库原理与应用 - 第六章】T-SQL 在SQL Server的使用_Roye_ack的博客-CSDN博客 目录 一、概述 1、如何安装及配置路径Mysql&#xff1f; 2、SQL分类 二、DDL 数据定义 1、数据库操作 2、IDEA内置数据库使用 &#xff08;1&…

微服务--服务介绍

1.2.2 常见微服务架构 1. dubbo: zookeeper dubbo SpringMVC/SpringBoot 配套 通信方式: rpc 注册中心: zookeeper/redis 配置中心: diamond 2.SpringCloud: 全家桶轻松入第三方组件(Netflix) 配套 通信方式: http restful 注册中心: eruka /consul 配置中心: config 断 路器…

系统架构设计师-计算机系统基础知识(2)

目录 一、存储管理 1、页式存储 2、段式存储 3、段页式存储 二、磁盘管理 1、先来先服务FCFS 2、最短寻道时间优先SSTF 三、文件系统 1、文件基本概念 2、文件的类型&#xff1a; 3、索引文件结构 4、位示图 一、存储管理 1、页式存储 将程序与内存划分为同样大小的块&…

java错误处理百科

一、业务开发缺陷 ① 工期紧、逻辑复杂&#xff0c;开发人员会更多地考虑主流程逻辑的正确实现&#xff0c;忽略非主流程逻辑&#xff0c;或保障、补偿、一致性逻辑的实现&#xff1b; ② 往往缺乏详细的设计、监控和容量规划的闭环&#xff0c;结果就是随着业务发展出现各种各…

SpringAOP详解(下)

proxyFactory代理对象创建方式和代理对象调用方法过程&#xff1a; springaop创建动态代理对象和代理对象调用方法过程&#xff1a; 一、TargetSource的使用 Lazy注解&#xff0c;当加在属性上时&#xff0c;会产生一个代理对象赋值给这个属性&#xff0c;产生代理对象的代码为…

一台服务器上部署 Redis 伪集群

哈喽大家好&#xff0c;我是咸鱼 今天这篇文章介绍如何在一台服务器&#xff08;以 CentOS 7.9 为例&#xff09;上通过 redis-trib.rb 工具搭建 Redis cluster &#xff08;三主三从&#xff09; redis-trib.rb 是一个基于 Ruby 编写的脚本&#xff0c;其功能涵盖了创建、管…

c++ opencv将彩色图像按连通域区分

要将彩色图像按连通域区分&#xff0c;您可以使用 OpenCV 中的 cv::connectedComponents 函数。 下面是一个简单的示例代码&#xff0c;说明如何使用 cv::connectedComponents 函数来检测并标记图像中的连通域&#xff1a; #include <opencv2/opencv.hpp> #include <…

uniapp微信小程序使用stomp.js实现STOMP传输协议的实时聊天

简介&#xff1a; 原生微信小程序中使用 本来使用websocket&#xff0c;后端同事使用了stomp协议&#xff0c;导致前端也需要对应修改。 如何使用 1.yarn add stompjs 2.版本 “stompjs”: “^2.3.3” 3.在static/js中新建stomp.js和websocket.js&#xff0c;然后在需要使用…

kafka消息系统实战

kafka是什么&#xff1f; 是一种高吞吐量的、分布式、发布、订阅、消息系统 1.导入maven坐标 <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>2.4.1</version></dependency&…

MyBatis-Plus 总结

MyBatis-Plus简介 官网&#xff1a;https://baomidou.com/ GitHub&#xff1a;https://github.com/baomidou/mybatis-plus Gitee&#xff1a;https://gitee.com/baomidou/mybatis-plus 简介 MyBatis-Plus &#xff08;简称 MP&#xff09;是一个 MyBatis的增强工具&#x…

(十九)大数据实战——Flume数据采集框架安装部署

前言 本节内容我们主要介绍一下大数据数据采集框架flume的安装部署&#xff0c;Flume 是一款流行的开源分布式系统&#xff0c;用于高效地采集、汇总和传输大规模数据。它主要用于处理大量产生的日志数据和事件流。Flume 支持从各种数据源&#xff08;如日志文件、消息队列、数…

危险的套娃:攻击者在 PDF 文件中隐藏恶意Word 文档

据BleepingComputer消息&#xff0c;日本计算机紧急响应小组 (JPCERT) 日前分享了在2023 年 7 月检测到的利用PDF文档的新型攻击——PDF MalDoc攻击&#xff0c;能将恶意 Word 文件嵌入 PDF 来绕过安全检测。 JPCERT采样了一种多格式文件&#xff0c;能被大多数扫描引擎和工具识…

机器学习-神经网络(西瓜书)

神经网络 5.1 神经元模型 在生物神经网络中&#xff0c;神经元之间相互连接&#xff0c;当一个神经元受到的外界刺激足够大时&#xff0c;就会产生兴奋&#xff08;称为"激活"&#xff09;&#xff0c;并将剩余的"刺激"向相邻的神经元传导。 神经元模型…

Spring Boot框架以及它的优势

文章目录 介绍1. **简化配置**2. **快速启动**3. **自动配置**4. **集成第三方库和框架**5. **微服务支持**6. **内嵌式数据库支持**7. **健康监控和管理**8. **可插拔的开发工具**9. **丰富的社区和生态系统**10. **良好的测试支持&#xff1a;** 核心特性**1. 依赖注入&#…

2023蓝帽杯初赛ctf部分题目

Web LovePHP 打开网站环境&#xff0c;发现显示出源码 来可以看到php版本是7.4.33 简单分析了下&#xff0c;主要是道反序列化的题其中发现get传入的参数里有_号是非法字符&#xff0c;如果直接传值传入my_secret.flag&#xff0c;会被php处理掉 绕过 _ 的方法 对于__可以…

设计模式-组合模式

核心思想 组合模式可以使用一棵树来表示组合模式使得用户可以使用一致的方法操作单个对象和组合对象组合模式又叫部分整体模式&#xff0c;将对象组合成树形结构以表示“部分-整体”的层次结构&#xff0c;可以更好的实现管理操作&#xff0c;部分-整体对象的操作基本一样&…

Jmeter+ServerAgent

一、Jmeter 下载 https://jmeter.apache.org/download_jmeter.cgi选择Binaries二进制下载 apache-jmeter-5.6.2.tgz 修改配置文件 jmeter下的bin目录&#xff0c;打开jmeter.properties 文件 languagezh_CN启动命令 cd apache-jmeter-5.6/bin sh jmeter二、ServerAgent 监…