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.mzph.cn/news/58671.shtml

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

相关文章

macOS使用命令行连接Oracle(SQL*Plus)

Author: histonevonzohomail.com Date: 2023/08/25 文章目录 SQL\*Plus安装下载环境配置 SQL\*Plus远程连接数据库参考文献 原文地址&#xff1a;https://histonevon.top/archives/oracle-mac-sqlplus数据库安装&#xff1a;Docker安装Oracle数据库 (histonevon.top) SQL*Plus…

Ansys Zemax | 手机镜头设计 - 第 2 部分:使用 OpticsBuilder 实现光机械封装

本文是3篇系列文章的一部分&#xff0c;该系列文章将讨论智能手机镜头模块设计的挑战&#xff0c;从概念、设计到制造和结构变形的分析。本文是三部分系列的第二部分。概括介绍了如何在 CAD 中编辑光学系统的光学元件以及如何在添加机械元件后使用 Zemax OpticsBuilder 分析系统…

二级MySQL(十)——单表查询

这里我们只在一个表内查询&#xff0c;用到的是较为简单的SELECT函数形式 1、查询指定的字段&#xff1a; 用到的数据库是之前提到的S、P、SP数据库 S表格用到的总数据&#xff1a; 首先我们查询所有供应商的序号和名字 这时都是独立的&#xff0c;没有关系&#xff0c;我们找…

android多屏触摸相关的详解方案-安卓framework开发手机车载车机系统开发课程

背景 直播免费视频课程地址&#xff1a;https://www.bilibili.com/video/BV1hN4y1R7t2/ 在做双屏相关需求开发过程中&#xff0c;经常会有对两个屏幕都要求可以正确触摸的场景。但是目前我们模拟器默认创建的双屏其实是没有办法进行触摸的 修改方案1 静态修改方案 使用命令…

对class文件进行base64编码

使用以下代码 package org.springframework.cloud.gateway.sample;import org.springframework.util.Base64Utils;import java.io.*; import java.nio.charset.StandardCharsets;public class EncodeShell {public static void main(String[] args){byte[] data null;try {In…

2021年09月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题:抓牛 农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。农夫有两种移动方式: 1、从X移动到X-1或X+1,每次移动花费一分钟 2、从X移动到2*X,每次移动花费一分钟 假设牛没有意识到农夫的…

2023第七届蓝帽杯 初赛 web LovePHP

LovePHP 直接给了源码。 network查看到&#xff0c;PHP版本是7.4.33 题目要求我们GET一个my_secret.flag参数&#xff0c;根据PHP字符串解析特性&#xff0c;PHP需要将所有参数转换为有效的变量名&#xff0c;因此在解析查询字符串时&#xff0c;它会做两件事&#xff1a; 删…

python+TensorFlow实现人脸识别智能小程序的项目(包含TensorFlow版本与Pytorch版本)(一)

pythonTensorFlow实现人脸识别智能小程序的项目&#xff08;包含TensorFlow版本与Pytorch版本&#xff09;&#xff08;一&#xff09; 一&#xff1a;TensorFlow基础知识内容部分&#xff08;简明扼要&#xff0c;快速适应&#xff09;1、下载Cifar10数据集&#xff0c;并进行…

自然语言处理(四):全局向量的词嵌入(GloVe)

全局向量的词嵌入&#xff08;GloVe&#xff09; 全局向量的词嵌入&#xff08;Global Vectors for Word Representation&#xff09;&#xff0c;通常简称为GloVe&#xff0c;是一种用于将词语映射到连续向量空间的词嵌入方法。它旨在捕捉词语之间的语义关系和语法关系&#…

嵌入式Linux开发实操(十三):GPIO接口开发

从版本4.8开始,Linux内核引入了一个新的基于字符设备的用户空间API,用于管理和控制GPIO(通用输入/输出),在Linux内核4.8之前,在用户空间中管理GPIO的唯一接口是sysfs接口,pio通过/sys/class/gpio中的导出文件进行配置和控制,可以通过该接口执行的基本GPIO操作,比如: …

史上最全AP、mAP详解与代码实现

文章目录 前言一、mAP原理1、mAP概念2、准确率3、精确率4、召回率5、AP: Average Precision 二、mAP0.5与mAP0.5:0.951、mAP0.52、mAP0.5:0.95 三、mAP代码实现1、真实标签json文件格式2、模型预测标签json文件格式3、mAP代码实现4、mAP结果显示 四、模型集成mAP代码1、模型mai…

比较器的工作原理及性能指标介绍

一、什么是比较器 比较器的功能是比较两个或更多数据项&#xff0c;以确定它们是否相等&#xff0c;或者确定它们之间的大小关系和排列顺序&#xff0c;这称为比较。可以实现此比较功能的电路或设备称为比较器。比较器是将模拟电压信号与参考电压进行比较的电路。比较器的两个…

解读GIS软件:从ArcGIS到山海鲸可视化的全方位介绍

在现代社会&#xff0c;地理信息系统&#xff08;GIS&#xff09;的应用已经渗透到了各个领域&#xff0c;为我们提供了丰富的地理数据分析和可视化工具。下面介绍几款常见的GIS工具软件&#xff0c;一起来了解它们的特点和优势。 1. ArcGIS: ArcGIS由Esri公司开发&#xff0c;…

使用Spring Boot和Kafka实现消息订阅和发送

文章目录 一&#xff0c;新建Spring Boot1&#xff0c;Maven配置2&#xff0c;无法识别为SpringBoot项目3&#xff0c;无效的源发行版4&#xff0c;无法访问SpringApplication5&#xff0c;运行直接Finish6&#xff0c;服务运行成功 二&#xff0c;安装启动Kafka1&#xff0c;下…

20 MySQL(下)

文章目录 视图视图是什么定义视图查看视图删除视图视图的作用 事务事务的使用 索引查询索引创建索引删除索引聚集索引和非聚集索引影响 账户管理&#xff08;了解非DBA&#xff09;授予权限 与 账户的相关操作 MySQL的主从配置 视图 视图是什么 通俗的讲&#xff0c;视图就是…

Web开发模式、API接口、restful规范、序列化和反序列化、drf安装和快速使用、路由转换器(复习)

一 Web开发模式 1. 前后端混合开发模式 前后端混合开发模式是一种开发方式&#xff0c;将前端和后端的开发工作结合在一起&#xff0c;以加快项目的开发速度和 提高协作效率。这种模式通常用于快速原型开发、小型项目或敏捷开发中。在前后端混合开发模式中&#xff0c;前端和…

CATIA Composer R2023安装教程

软件下载 软件&#xff1a;CATIA Composer版本&#xff1a;2023语言&#xff1a;简体中文大小&#xff1a;1.82G安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.60GHz 内存8G(或更高&#xff09;下载通道①百度网盘丨64位下载链接&#xff1a;https://pa…

汇编-内中断

中断的意思是指, CPU不再接着(刚执行完的指令) 向下执行, 而是转去处理这个特殊信息。 内中断的产生 8086CPU,当CPU内部有下面的情况发生的时候, 将产生相应的中断信息: (1)除法错误, 比如, 执行div指令产生的除法溢出; (2)单步执行;   (3)执行into指令; (4)执…

文件上传漏洞-upload靶场3-4(全网最详细解读)

文件上传漏洞-upload靶场3-4关通关笔记&#xff08;全网最详细解读&#xff09; upload 第三关&#xff08;特殊后缀&#xff09; 思路 按照第一关和第二关的思路&#xff0c;先随便上传一个文件用burpsuite工具抓包&#xff0c;看它到底是前段验证还是后端验证。 上传一个we…

社招中级前端笔试面试题总结

前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 typeof null 的结果是什么&#xff0c;为什么&#xff1f; typeof null 的结果是Object。 在 JavaScript 第一个版本中&#xff0c;所有值都存储在 32…