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_module

make -j 4 && make install

ln -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.conf
	PID /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.target

systemctl 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 -p123456
	create 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;
	# 创建一个数据库叫bbs
	create user 'bbsuser'@'%' identified by 'admin123';
	# 创建用户bbsuser,密码为admin123
	grant all privileges on bbs.* to 'bbsuser'@'%';
	# 把bbs数据库里面所有表的权限授予给bbsuser
	create 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-zip

make -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

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

目标跟踪算法:SORT、卡尔曼滤波、匈牙利算法

目录 1 目标检测 2 卡尔曼滤波 3《从放弃到精通&#xff01;卡尔曼滤波从理论到实践》视频简单学习笔记 3.1 入门 3.2 进阶 3.2.1 状态空间表达式 3.2.2 高斯分布 3.3 放弃 3.4 精通 4 匈牙利算法 5 《【运筹学】-指派问题&#xff08;匈牙利算法&#xff09;》视…

Linux DNS之进阶篇bind-chroot企业级部署方式

BIND-chroot 服务是利用 chroot 机制为 BIND 服务创建伪根目录以限制其访问范围&#xff0c;增强安全性&#xff0c;但配置与维护相对较为复杂的一种服务机制。 本章我们将部署chroot模式的DNS服务&#xff0c;以增加安全性 案例要求&#xff1a; 此案例域名为xjh.com www 解析…

241206学习日志——[CSDIY] [InternStudio] 大模型训练营 [21].md

CSDIY&#xff1a;这是一个非科班学生的努力之路&#xff0c;从今天开始这个系列会长期更新&#xff0c;&#xff08;最好做到日更&#xff09;&#xff0c;我会慢慢把自己目前对CS的努力逐一上传&#xff0c;帮助那些和我一样有着梦想的玩家取得胜利&#xff01;&#xff01;&…

YOLOv5白皮书-第Y2周:训练自己的数据集

>- **&#x1f368; 本文为[&#x1f517;365天深度学习训练营]中的学习记录博客** >- **&#x1f356; 原作者&#xff1a;[K同学啊]** 本人往期文章可查阅&#xff1a; 深度学习总结 接着上一篇文章 YOLOv5白皮书-第Y1周&#xff1a;调用官方权重进行检测 &#xff0c;…

Java的Mvc整合Swagger的knife4框架

Swagger的介绍 Swagger 是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。使用Swagger&#xff0c;就是把相关的信息存储在它定义的描述文件里面&#xff08;yml或json格式&#xff09;&#xff0c;再通过维护这个描述 文件可以去更…

共筑数字安全防线,2024开源和软件安全沙龙即将启幕

随着数字化转型进程的加快以及开源代码的广泛应用&#xff0c;开源凭借平等、开放、协作、共享的优秀创作模式&#xff0c;逐渐成为推动数字技术创新、加速传统行业转型升级的重要模式。但随着软件供应链日趋复杂多元&#xff0c;使得其安全风险不断加剧&#xff0c;针对软件供…

SAP导出表结构并保存到Excel 源码程序

SAP导出表结构并保存到Excel,方便写代码时复制粘贴 经常做接口,需要copy表结构,找到了这样一个程程,特别有用。 01. 先看结果

LDR6500:音频双C支持,数字与模拟的完美结合

在当今数字化快速发展的时代&#xff0c;音频设备的兼容性和性能成为了用户关注的重点。LDR6500&#xff0c;作为乐得瑞科技精心研发的USB Power Delivery&#xff08;PD&#xff09;协议芯片&#xff0c;凭借其卓越的性能和广泛的应用兼容性&#xff0c;为音频设备领域带来了新…

Linux下mysql环境的搭建

1.mysql的下载 去MySQL官网下载mysql的linux压缩包 MySQL :: Download MySQL Community Server 如果下载慢请到网盘中自行下载 通过网盘分享的文件&#xff1a;mysql-8.0.40-1.el7.x86_64.rpm-bundle.tar 链接: https://pan.baidu.com/s/1vUJ-VuTwer1nLPT-haQCqw?pwd6342 提…

可视化建模以及UML期末复习篇----UML图

这是一篇相对较长的文章&#xff0c;如你们所见&#xff0c;比较详细&#xff0c;全长两万字。我不建议你们一次性看完&#xff0c;直接跳目录找你需要的知识点即可。 --------欢迎各位来到我UML国&#xff01; 一、UML图 总共有如下几种&#xff1a; 用例图&#xff08;Use Ca…

jenkins邮件的配置详解

Jenkins邮件的配置涉及多个步骤和细节,以下是详细的配置指南: 一、前期准备 确定邮件服务:明确Jenkins将要使用的邮件服务,如QQ邮箱、163邮箱、公司邮箱(基于Microsoft 365或Exchange Server)等。获取SMTP配置信息:根据邮件服务类型,获取相应的SMTP服务器地址、端口号…

JaveEE初阶--网络编程套接字

目录 一、引言 二、网络编程基本概念 2.1 什么是网络编程&#xff1f; 2.2 基本知识 三、Socket套接字 3.1 概念 3.2 分类 1.流套接字&#xff1a;使用传输层TCP协议 2. 数据报套接字&#xff1a;使用传输层UDP协议 3.原始套接字&#xff1a;用于自定义传输层协议 四、…

Python爬虫——HTML中Xpath定位

Xpath是一种路径查询语言。利用一个路径表达式从html文档中找到我们需要的数据位置&#xff0c;进而将其写入到本地或者数据库中。 学习Xpath爬虫&#xff0c;我们首先学习一下python中lxml库 关于库 lxml 终端下载Xpath需要用到的模块 pip install lxml 关于HTML 超文本标…

Spring Cloud Alibaba 之 “Sentinel”

从网上下载好sentinel-dashboard-1.6.3.jar&#xff0c;然后执行 java -jar sentinel-dashboard-1.6.3.jar,执行成功之后在浏览器输入localhost:8080&#xff0c;Sentinel的登录名和密码都是sentinel,登陆成功之后看到只有一个首页。 接下来开始整合Spring Cloud Alibaba Sen…

伟测科技再融资11.75亿:增收不增利,毛利率近年来持续下滑

《港湾商业观察》施子夫 王璐 12月9日&#xff0c;上海证券交易所上市审核委员会召开2024年第34次上市审核委员会审议会议&#xff0c;审议上海伟测半导体科技股份有限公司(再融资)&#xff08;以下简称&#xff0c;伟测科技&#xff1b;688372.SH&#xff09;事项。 今年8月…

Postman cURL命令导入导出

你是否曾为在Postman和终端之间切换、整理请求而抓狂&#xff1f;其实&#xff0c;Postman支持与cURL命令的无缝互通&#xff0c;通过导入导出&#xff0c;极大提升效率。用好这个功能&#xff0c;分分钟让接口测试更高效&#xff01; Postman如何快速导入cURL命令&#xff1f;…

MR30分布式 I/O 模块助力 CNC 设备产能飞跃

背景分析 在现代制造业中&#xff0c;CNC 设备扮演着极为关键的角色。然而&#xff0c;CNC 设备在运行过程中也存在着诸多痛点。传统的 CNC 设备往往在控制与通信方面存在局限&#xff0c;其内部的 I/O 系统大多采用集中式架构。这种架构下&#xff0c;一旦需要处理大量的输入输…

《ODIN: A Single Model for 2D and 3D Segmentation》CVPR2024

斯坦福和微软&#xff1a; 代码链接&#xff1a;ODIN: A Single Model For 2D and 3D Perception 论文链接&#xff1a;2401.02416 摘要 这篇论文介绍了ODIN&#xff08;Omni-Dimensional INstance segmentation&#xff09;&#xff0c;一个能够同时处理2D RGB图像和3D点云…

从视觉到雷达:多模态感知如何引领自动驾驶安全革命

文章目录 摘要引言多模态感知融合的原理与架构感知技术的特点多模态感知融合的目标 数据融合实现示例代码结构与主要组件模型定义 MultimodalFusionModel前向传播&#xff08;forward 方法&#xff09;模型细节剖析实践应用 QA环节总结参考资料 摘要 本文探讨了多模态感知技术…

uniapp结合movable-area与movable-view实现拖拽功能

前言 因为公司业务开发需要拖拽功能。 ps&#xff1a;该功能只能针对高度一致的&#xff0c;如果高度不一致需要另外二开 演示 开始 <template><view style"height: 100%;"><movable-area :style"{width: 100%, height: allHeight px}"…