LNMP和Discuz论坛

文章目录

  • LNMP和Discuz论坛
    • 1 LNMP搭建
      • 1.1 编译安装nginx服务
        • 1.1.1 编译安装
        • 1.1.2 添加到系统服务
      • 1.2 编译安装MySQL服务
        • 1.2.1 准备工作
        • 1.2.2 编辑配置文件
        • 1.2.3 设置路径环境变量
        • 1.2.4 数据库初始化
        • 1.2.5 添加mysqld系统服务
        • 1.2.6 修改mysql的登录密码
      • 1.3 编译安装PHP服务
        • 1.3.1 准备工作
        • 1.3.2 编译安装
        • 1.3.3 创建软连接
        • 1.3.4 修改PHP配置文件
          • 1.3.4.1 修改主配置文件
          • 1.3.4.2 修改进程服务配置文件
          • 1.3.4.3 修改拓展配置文件
        • 1.3.5 启动php-fpm
        • 1.3.6配置nginx支持PHP解析
        • 1.3.7 验证PHP测试页
    • 2 安装论坛
      • 2.1 解压Discuz源码包并配置
      • 2.2 安装Discuz论坛

LNMP和Discuz论坛

LNMP

L:Linux操作系统

N:nginx前端页面

M:mysql数据库 账号密码,等等都是保存在这个数据库里面

P:php---------nginx擅长处理的是静态页面,页面登录账户,需要请求到数据库,通过php把动态请求转发数据库

1 LNMP搭建

1.1 编译安装nginx服务

1.1.1 编译安装
apt autoremove nginx
# 如果系统中曾经用apt装过nginx,则使用此命令完全卸载,否则可能会出错
apt -y install libpcre3-dev zlib1g-dev libssl-dev build-essential
# 安装nginx依赖环境
useradd -M -s /sbin/nologin nginx
# 创建nginx程序用户tar -xf /opt/nginx-1.22.0.tar.gz
cd nginx-1.22.0/
./configure --prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_modulemake -j 4 && make installln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
# 创建软连接
mkdir /usr/local/nginx/run
chown -R nginx.nginx /usr/local/nginx/
vim /usr/local/nginx/conf/nginx.confPID /usr/local/nginx/run/nginx.pid
1.1.2 添加到系统服务
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/run/nginx.pid
#注意文件位置,如果不对 启动不了
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 
#注意启动文件位置
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.targetsystemctl daemon-reload 
systemctl start nginx

1.2 编译安装MySQL服务

1.2.1 准备工作
apt -y install libaio1 libncurses5
# 安装MySQL依赖环境
tar -xf mysql-8.0.30-el7-x86_64.tar.gz
mv mysql-8.0.30-el7-x86_64 /usr/local/mysql
# 将解压的包更名为mysql,移到/usr/local目录下
useradd -M -s /sbin/nologin mysql
# 为MySQL创建程序用户
chown mysql.mysql -R /usr/local/mysql/
# 递归更改/usr/local/mysql的所有者和所属组为mysql
1.2.2 编辑配置文件
vim /etc/my.cnf[client]
port = 3306
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
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
# 服务端配置chown mysql.mysql /etc/my.cnf
1.2.3 设置路径环境变量
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
或创建软链接
ln -s /usr/local/mysql/bin/* /usr/local/bin/
1.2.4 数据库初始化
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
1.2.5 添加mysqld系统服务
cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 让mysql服务可以使用systemd启动
systemctl daemon-reload			# 刷新系统服务配置文件
systemctl restart mysqld		# 重启服务
systemctl enable mysqld			# 开机自启动
netstat -antp | grep 3306		# 查看3306端口判断MySQL服务是否开启
1.2.6 修改mysql的登录密码
mysqladmin -u root -p password "123456"
# !!!这一步非常重要,写错了只能推倒重来!!!
mysql -u root -p123456create user 'root'@'%' identified by '123456';# "%"表示任意地址,可以使用密码123456以root用户远程登录数据库grant all privileges on *.* to 'root'@'%';# 赋予远程连接的权限ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';# 修改加密方式,可以进行远程连接create database bbs;# 创建一个数据库叫bbscreate user 'bbsuser'@'%' identified by 'admin123';# 创建用户bbsuser,密码为admin123grant all privileges on bbs.* to 'bbsuser'@'%';# 把bbs数据库里面所有表的权限授予给bbsusercreate user 'bbsuser'@'localhost' identified by 'admin123';grant all privileges on bbs.* to 'bbsuser'@'localhost';flush privileges;# 刷新数据库

在这里插入图片描述

如下图所示表示能成功登录mysql:

在这里插入图片描述

1.3 编译安装PHP服务

1.3.1 准备工作
apt-get install -y libgd-dev libjpeg8-dev libpng-dev libfreetype6-dev libxml2-dev zlib1g-dev libcurl4-openssl-dev libssl-dev libonig-dev libsqlite3-dev
# 安装PHP依赖环境
cd /opt
tar -xf php-8.1.27.tar.gz
groupadd nobody
# 为PHP创建nobody组
1.3.2 编译安装
cd /opt/php-8.1.27/
./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-pdo-mysql \
--with-openssl \
--with-sqlite-devel \
--with-oniguruma-devel \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zipmake -j 4 && make install
# 编译安装

以下为上述配置各项含义:

  • --prefix=/usr/local/php:指定PHP的安装目录为/usr/local/php。
  • --with-mysql-sock=/usr/local/mysql/mysql.sock:指定MySQL的Unix socket文件路径,用于与MySQL数据库建立连接。
  • --with-mysqli:启用MySQLi扩展,用于支持MySQL数据库。
  • --with-zlib:启用Zlib库,用于压缩和解压缩数据。
  • --with-curl:启用cURL库,用于支持对URL的操作,如下载文件等。
  • --with-gd:启用GD库,用于处理图像。
  • --with-jpeg-dir:指定JPEG库的路径,用于GD库对JPEG格式图片的处理。
  • -with-png-dir:指定PNG库的路径,用于GD库对PNG格式图片的处理。
  • --with-freetype-dir:指定FreeType库的路径,用于GD库对字体的支持。
  • --with-openssl:启用OpenSSL库,用于支持SSL加密和HTTPS协议。
  • --enable-fpm:启用PHP-FPM(FastCGI Process Manager),用于提供更高效的PHP进程管理和请求处理。
  • --enable-mbstring:启用多字节字符串支持,用于处理多字节字符集的操作。
  • --enable-xml:启用XML支持,用于处理XML文档和数据。
  • --enable-session:启用会话支持,用于在不同页面间保持用户会话状态。
  • --enable-ftp:启用FTP支持,用于对FTP服务器进行操作。
  • --enable-pdo:启用PDO(PHP Data Objects),用于支持数据库访问的统一接口。
  • --enable-tokenizer:启用Tokenizer扩展,用于对字符串进行分词处理。
  • --enable-zip:启用Zip扩展,用于对ZIP文件进行操作。

在这里插入图片描述

1.3.3 创建软连接
ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/
1.3.4 修改PHP配置文件
php有三个配置文件
php.ini			主配置文件  
php-fpm.conf	进程服务配置文件 
www.conf		扩展配置文件
1.3.4.1 修改主配置文件
cp /opt/php-8.1.27/php.ini-development /usr/local/php/lib/php.ini
# 模板
vim /usr/local/php/lib/php.ini
# 按下图修改主配置文件

在这里插入图片描述

在这里插入图片描述

1.3.4.2 修改进程服务配置文件
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
vim /usr/local/php/etc/php-fpm.conf
# 按下图修改进程服务配置文件

在这里插入图片描述

1.3.4.3 修改拓展配置文件
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
1.3.5 启动php-fpm
/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
# 启动PHP-FPM服务,并使用/usr/local/php/lib/php.ini文件作为PHP配置文件
# php-fpm: 是一个fastcgi的管理工具, nginx的动态请求实际上是由php-fpm来处理
netstat -antp | grep 9000
# 查看9000端口判断PHP服务是否启用
cp /opt/php-8.1.27/sapi/fpm/php-fpm.service /usr/lib/systemd/system/php-fpm.service
systemctl restart php-fpm.service 
1.3.6配置nginx支持PHP解析
mkdir -p /var/www/html
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak.2024.12.9
# 养成修改配置文件先备份的好习惯
vim /usr/local/nginx/conf/nginx.conf
# 作如下修改
location / {root   /var/www/html;index  index.html index.htm;
}location ~ \.php$ {root /var/www/html;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;
}nginx -t
# 修改完nginx配置文件检查语法
systemctl restart nginx.service
# 重启nginx服务

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

1.3.7 验证PHP测试页
cd /var/www/html/
vim index.php<?php
$link=mysqli_connect('192.168.159.200','bbsuser','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>

结果如下图表示成功:

在这里插入图片描述

2 安装论坛

2.1 解压Discuz源码包并配置

unzip /opt/Discuz_X3.5_SC_UTF8.zip -d /opt/dis
# 解压到指定目录/opt/dis中
cp -a /opt/dis/upload/ /var/www/html/bbs
cd /var/www/html
chmod -R 777 bbs/
chown -R nginx.nginx bbs/
cd bbs/config
cp -a config_global_default.php config_global.php
# 安装Discuz论坛所需文件名config_global.php
cp -a config_ucenter_default.php config_ucenter.php
# 安装Discuz论坛所需文件名config_ucenter.php

2.2 安装Discuz论坛

使用浏览器访问
192.168.159.200/bbs/install/index.php

进入安装界面,安装步骤如下图:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

Yocto 项目运行超出 BitBake 范围的内容

尽管 Yocto 项目依赖 BitBake 解析和调度元数据来完成构建&#xff0c;但在实际开发中&#xff0c;可能需要执行超出 BitBake 直接管理范围的任务。例如&#xff0c;调用外部脚本或工具完成一些特定的处理逻辑&#xff0c;如生成配置文件、执行硬件初始化脚本或调用第三方构建工…

SpringBoot+OSS文件(图片))上传

SpringBoot整合OSS实现文件上传 以前,文件上传到本地(服务器,磁盘),文件多,大,会影响服务器性能 如何解决? 使用文件服务器单独存储这些文件,例如商业版–>七牛云存储,阿里云OSS,腾讯云cos等等 也可以自己搭建文件服务器(FastDFS,minio) 0 过程中需要实名认证 … 1 开…

生产慎用之调试日志对空间矢量数据批量插入的性能影响-以MybatisPlus为例

目录 前言 一、一些缘由 1、性能分析 二、插入方式调整 1、批量插入的实现 2、MP的批量插入实现 3、日志的配置 三、默认处理方式 1、基础程序代码 2、执行情况 四、提升调试日志等级 1、在logback中进行设置 2、提升后的效果 五、总结 前言 在现代软件开发中&#xff0c;性能优…

SQL 在线格式化 - 加菲工具

SQL 在线格式化 打开网站 加菲工具 选择“SQL 在线格式化” 或者直接访问 https://www.orcc.online/tools/sql 输入sql&#xff0c;点击上方的格式化按钮即可 输入框得到格式化后的sql结果

汇编语言学习

文章目录 前言机器语言与机器指令汇编语言与汇编指令用汇编语言编写程序的工作过程注意事项 计算机组成指令和数据的表示计算机中的存储单元计算机中的总线三类总线X86 CPU性能一览 CPU对存储器的读写内存地址空间将各类存储器看作一个逻辑存储器 —— 统一编址内存地址空间的分…

MATLAB深度学习(七)——ResNet残差网络

一、ResNet网络 ResNet是深度残差网络的简称。其核心思想就是在&#xff0c;每两个网络层之间加入一个残差连接&#xff0c;缓解深层网络中的梯度消失问题 二、残差结构 在多层神经网络模型里&#xff0c;设想一个包含诺干层自网络&#xff0c;子网络的函数用H(x)来表示&#x…

【PHP】部署和发布PHP网站到IIS服务器

欢迎来到《小5讲堂》 这是《PHP》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 前言安装PHP稳定版本线程安全版解压使用 PHP配置配置文件扩展文件路径…

SSM 校园一卡通密钥管理系统 PF 于校园图书借阅管理的安全保障

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装校园一卡通密钥管理系统软件来发挥其高效地信息处理的作用&a…

TCP 2

文章目录 Tcp状态三次握手四次挥手理解TIME WAIT状态 如上就是TCP连接管理部分 流量控制滑动窗口快重传 延迟应答原理 捎带应答总结TCP拥塞控制拥塞控制的策略 -- 每台识别主机拥塞的机器都要做 面向字节流和粘包问题tcp连接异常进程终止机器重启机器掉电/网线断开 Tcp状态 建…

【操作系统】实验二:观察Linux,使用proc文件系统

实验二 观察Linux&#xff0c;使用proc文件系统 实验目的&#xff1a;学习Linux内核、进程、存储和其他资源的一些重要特征。读/proc/stat文件&#xff0c;计算并显示系统CPU占用率和用户态CPU占用率。&#xff08;编写一个程序使用/proc机制获得以及修改机器的各种资源参数。…

【密码学】AES算法

一、AES算法介绍&#xff1a; AES&#xff08;Advanced Encryption Standard&#xff09;算法是一种广泛使用的对称密钥加密&#xff0c;由美国国家标准与技术研究院&#xff08;NIST&#xff09;于2001年发布。 AES是一种分组密码&#xff0c;支持128位、192位和256位三种不同…

【学习笔记】目前市面中手持激光雷达设备及参数汇总

手持激光雷达设备介绍 手持激光雷达设备是一种利用激光时间飞行原理来测量物体距离并构建三维模型的便携式高科技产品。它通过发射激光束并分析反射回来的激光信号&#xff0c;能够精确地获取物体的三维结构信息。这种设备以其高精度、适应各种光照环境的能力和便携性&#xf…

探索 LeNet-5:卷积神经网络的先驱与手写数字识别传奇

一、引言 在当今深度学习技术蓬勃发展的时代&#xff0c;各种复杂而强大的神经网络架构不断涌现&#xff0c;如 ResNet、VGG、Transformer 等&#xff0c;它们在图像识别、自然语言处理、语音识别等众多领域都取得了令人瞩目的成果。然而&#xff0c;当我们回顾深度学习的发展历…

【数据结构——栈与队列】链栈的基本运算(头歌实践教学平台习题)【合集】

目录&#x1f60b; 任务描述 相关知识 测试说明 我的通关代码: 测试结果&#xff1a; 任务描述 本关任务&#xff1a;编写一个程序实现链栈的基本运算。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 初始化栈、销毁栈、判断栈是否为空、进栈、出栈、取栈…

【笔记】架构上篇Day6 法则四:为什么要顺应技术的生命周期?

法则四&#xff1a;为什么要顺应技术的生命周期&#xff1f; 简介&#xff1a;包含模块一 架构师的六大生存法则-法则四&#xff1a;为什么要顺应技术的生命周期&#xff1f;&法则四&#xff1a;架构设计中怎么判断和利用技术趋势&#xff1f; 2024-08-29 17:30:07 你好&am…

Security自定义逻辑认证(极简案例)

项目结构 config SecurityConfig package com.wunaiieq.tmp2024121105.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.crypto.password.NoOpPasswordEnco…

docker安装ddns-go(外网连接局域网)

docker先下载镜像&#xff0c;目前最新版是v6.7.6 也可以csdn资源下载 再导入dockers https://download.csdn.net/download/u014756339/90096748 docker load -i ddns-go.tar 启动 docker run -d --name ddns-go --restartalways --nethost -v /opt/ddns-go:/root jeessy/…

技术速递|dotnet scaffold – .NET 的下一代内容创建

作者&#xff1a;Sayed Ibrahim Hashimi - 首席项目经理 排版&#xff1a;Alan Wang Visual Studio 中为 ASP.NET Core 项目搭建脚手架是一项长期特性&#xff0c;是在 ASP.NET Core 发布后不久添加的。多年来&#xff0c;我们一直支持从命令行搭建脚手架。根据从命令行操作中获…

基于ZYNQ 7z010开发板 oled点亮的实现

dc拉高的时候就是发送128字节数据的时候 发送指令dc拉低 模式是00 sck先置低再置高 复位是与开发板上的按键一样都是低有效 25位字节指令 加 3字节的 页地址加起始结束 b0,00,10, timescale 1ns / 1ps module top0(input wire clk ,input wire rst_n,// out…

使用torch模拟 BMM int8量化计算。

使用torch模型BMM int8计算。 模拟&#xff1a;BMM->softmax->BMM 计算流程 import torch import numpy as np torch.manual_seed(777) def int8_quantize_per_token(x: torch.Tensor, axis: int -1, attnsFalse):if x.dtype ! torch.float32:x x.type(torch.float32)…