搭建Discuz论坛

lnmp

l:linux操作系统
n:nginx前端页面
m:mysql数据库,账号密码等等都是保存在这个数据库里面
p:php------nginx擅长处理的是静态页面,页面登录账户,需要请求到数据库,通过php把动态请求转发数据库

搭建Discuz论坛

1、编译安装数据库mysql

安装依赖源

apt install -y libaio1 libncurses5

将mysql的源代码包放置到/opt的目录下,然后解压mysql源代码包,将解压好的mysql移到/usr/local/目录下

tar -xf mysql-8.0.30-el7-x86_64.tar.gz
mv mysql-8.0.30-el7-x86_64 /usr/local/mysql

创建用户并修改mysql的所属者和所属组为mysql

useradd -s /usr/sbin/nologin mysql
chown -R mysql.mysql mysql/

修改mysql的主配置文件,并修改其的所属者和所属组

vim /etc/my.cnf[client]port = 3306socket=/usr/local/mysql/mysql.sock[mysqld]user = mysqlbasedir=/usr/local/mysqldatadir=/usr/local/mysql/dataport = 3306character-set-server=utf8pid-file = /usr/local/mysql/mysqld.pidsocket=/usr/local/mysql/mysql.sockbind-address = 0.0.0.0skip-name-resolvemax_connections=2048default-storage-engine=INNODBmax_allowed_packet=16Mserver-id = 1sql_mode = 	STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_D		IVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION保存退出
chown mysql.mysql /etc/my.cnf

配置环境变量

echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile 

初始化数据库,并给/etc/init.d/mysqld赋权

cd /usr/local/mysql/bin
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/datacd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
#刷新和重启
systemctl daemon-reload
systemctl restart mysql
#查看数据库的端口是否开启
netstat -antp | grep 3306

初始化数据库密码

mysqladmin -u root -p password "123456"
#测试数据库是否完成
mysql -u root -p123456
create user 'root'@'%' identified by '123456';
grant all privileges on *.* to 'root'@'%';
flush privileges;
alter user 'root'@'%' identified with mysql _native_password by '123456';

2、php

安装php的依赖环境
将php的源码包放到/opt目录下,并将其解压

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
tar -xf php-8.1.27.tar.gz

创建用户

groupadd nobody

编译安装

编译
./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

建立软链接

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

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

#从php源码包中复制主配置文件到指定目录
cp php.ini-development /usr/local/php/lib/php.ini
#修改主配置文件
vim /usr/local/php/lib/php.ini
#第976行
date.timezone = Asia/Shanghai
#第1181行
mysqli.default_socket = /usr/local/mysql/mysql.sock

php-fpm.conf:进程服务端的配置文件

cd /usr/local/php/etc/
#把 php-fpm.conf.default重命名php-fpm.conf
cp php-fpm.conf.default  php-fpm.conf
vim php-fpm.conf
#第17行去掉注释,并改变路径
pid = /var/log/php-fpm.pid
#第24行去掉注释,改变路径
error_log = /var/log/php-fpm.pid

www.conf:扩展配置文件

cp /usr/local/php/etc/php-fpm.d/www.conf.default   /usr/local/php/etc/php-fpm.d/www.conf
#启动
/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
#把系统管理文件复制到指定目录
cp php-fpm.service  /usr/lib/systemd/system/php-fpm.service

3、nginx的配置

修改nginx的配置文件
vim /usr/local/nginx/conf/nginx.conf
loction / {root /var/www/html;index index.html;
}
location ~ \.php$ {#locatioan的正则匹配root /var/www/html;fastcgi_pass 127.0.0.1:9000;#指定转发动态请求的地址fastcgi_index index.php;#指定处理动态请求的文件和后缀名fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;#表示当前请求的脚本路径,$fastcgi_script_name/bbs/install/index.phpfastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#$document_root,nginx访问的默认的路径/usr/local/nginx/html/bbs/install/index.php,变量赋值,传给phpinclude fastcgi_params;#使用include指令,把fastcgi_param的配置合并到一起
}
#重启nginx
systemctl restart nginx

创建数据库

mysql -u root -p123456
CREATE DATABASE bbs;
CREATE USER 'bbsuser'@'%' IDENTIFIED BY 'admin123';
GRANT ALL PRIVILEGES ON bbs.* TO 'bbsuser'@'%';
FLUSH PRIVILEGES;
CREATE USER 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
GRANT ALL PRIVILEGES ON bbs.* TO 'bbsuser'@'localhost';
FLUSH PRIVILEGES;

创建网页文件

cd /usr/local/nginx/html
vim index.php
<?php
$link=mysqli_connect('192.168.233.61','bbsuser','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>

4、搭建论坛discuz

将discuz源码包放到/opt目录下,并将其解压到dis目录下

unzip Discuz_X3.5_SC_UTF8.zip -d /opt/dis/

创建目录

mkdir -p /var/www/html
#拷贝文件到数据
cp -r upload/ /var/www/html/bbs/
cd  /var/www/html/bbs/config
cp config_global_default.php config_global.php
cp config_ucenter_default.php config_ucenter.php
#修改所属者和所属组
chmod -R 777 bbs/
chown -R nginx.nginx bbs/

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

nginx的优化

1、隐藏版本号

第一种:通用方法编译,apt,yum都可以使用

vim nginx.conf
在http模块
http {
server_tokens off;
}

在这里插入图片描述

在这里插入图片描述
第二种(仅限于编译安装)

vim /opt/nginx-1.22.0/src/core/nignx.h
第13行和14行可以改成xy104和xy105
cd /opt/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 install
vim /usr/local/nignx/conf/nginx.conf
http {
server_tokens on;
}
systemctl restart nginx

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

2、日志分割

nginx本身没有设计日志分割的工具,是由运维人员自己进行处理和分割
使用shell脚本实现日志分割

vim /opt/nginxlogs.sh
#!/bin/bash
d=$(date +%Y-%m-%d)
#直接获取当前日期
dir=/usr/local/nginx/logs”
#获取日志目录所在的位置
logs_access='/usr/local/nginx/logs/access.log'
logs_error='/usr/local/nginx/logs/error.log'
#定义需要分割的日志文件
pid_file='/usr/local/nginx/run/nginx.pid'
#定义pid文件的位置
if [ ! -d "$dir" ]
then
mkdir -p $dir
fi
mv ${logs_access} ${dir}/access_${d}.log
mv ${logs_error} ${dir}/error_${d}.log
kill -USR1 $(cat ${pid_file})
#-USR1,通过发送USR1这个信号,给nginx的主进程,让nginx重新生成access.log和error.log#日志清理,清理30天以前的日志
find $dir -mtime +30 -exec rm -rf {} \;

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

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

相关文章

SpringBoot3整合SpringMVC

一、实现过程: (1).创建程序 (2).引入依赖: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"…

移动应用开发课程第六次实验:为实验2添加登陆页面,用SQList存储好友基本信息

1、在Android Studio中&#xff0c;请在第二次实验成果的基础上完成以下实验要求。 向右滑动 请添加登录页面。在登录页面中&#xff0c;如果用户输入的用户名和密码正确&#xff0c;则跳转至如上图所示的好友列表&#xff0c;并记录用户的登录信息&#xff0c;在用户第一次登…

杨振宁大学物理视频中黄色的字,c#写程序去掉

先看一下效果&#xff1a;&#xff08;还有改进的余地&#xff09; 我的方法是笨方法&#xff0c;也比较刻板。 1&#xff0c;首先想到&#xff0c;把屏幕打印下来。c#提供了这样一个函数&#xff1a; Bitmap bmp new Bitmap(640, 480, PixelFormat.Format32bppArgb); // 创…

MaxEnt模型在物种分布模拟中如何应用?R语言+MaxEnt模型融合物种分布模拟、参数优化方法、结果分析制图与论文写作

目录 第一章 以问题导入的方式&#xff0c;深入掌握原理基础 第二章 常用数据检索与R语言自动化下载及可视化方法 第三章 R语言数据清洗与特征变量筛选 第四章 基于ArcGIS、R数据处理与进阶 第五章 基于Maxent的物种分布建模与预测 第六章 基于R语言的模型参数优化 第七…

数字图像处理(15):图像平移

&#xff08;1&#xff09;图像平移的基本原理&#xff1a;计算每个像素点的移动向量&#xff0c;并将这些像素按照指定的方向和距离进行移动。 &#xff08;2&#xff09;平移向量包括水平和垂直分量&#xff0c;可以表示为&#xff08;dx&#xff0c;dy&#xff09;&#xff…

海外的bug-hunters,不一样的403bypass

一种绕过403的新技术&#xff0c;跟大家分享一下。研究HTTP协议已经有一段时间了。发现HTTP协议的1.0版本可以绕过403。于是开始对lyncdiscover.microsoft.com域做FUZZ并且发现了几个403Forbidden的文件。 &#xff08;访问fsip.svc为403&#xff09; 在经过尝试后&#xff0…

WPF Prism 01-BootstrapperShell

Prism介绍 Prism 是一个用于在 WPF、.NET MAUI、Uno 平台和 Xamarin Forms 中构建松耦合、可维护和可测试的 XAML 应用程序的框架。每个平台都有单独的发布版本&#xff0c;并且这些版本将在独立的开发时间线上进行开发。Prism 提供了一组设计模式的实现&#xff0c;这些模式有…

计算机网络-Wireshark探索ARP

使用工具 Wiresharkarp: To inspect and clear the cache used by the ARP protocol on your computer.curl(MacOS)ifconfig(MacOS or Linux): to inspect the state of your computer’s network interface.route/netstat: To inspect the routes used by your computer.Brows…

Sketch中文版下载安装:一站式设计平台指南

Sketch&#xff0c;这个以轻量和高效著称的矢量设计工具&#xff0c;已经在全球设计领域创造了许多令人惊叹的成果。它以其矢量编辑、控件和样式等功能而闻名。而其中文版本——一站式设计平台“在线设计工具”&#xff0c;在功能全面性、中文操作环境、简洁界面以及设备兼容性…

机器学习决策树原理详解

一、引言 在当今蓬勃发展的人工智能与大数据领域&#xff0c;大模型正以前所未有的影响力改变着众多行业的格局。而决策树作为机器学习算法家族中的经典成员&#xff0c;以其简洁直观的特点和广泛的适用性&#xff0c;不仅能独立解决诸多实际问题&#xff0c;更是诸多先进大模…

Kafka怎么发送JAVA对象并在消费者端解析出JAVA对象--示例

1、在pom.xml中加入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-stream-kafka</artifactId><version>3.1.6</version></dependency> 2、配置application.yml 加入Kafk…

物品识别 树莓派 5 YOLO v5 v8 v10 11 计算机视觉

0. 要实现的效果 让树莓派可以识别身边的一些物品&#xff0c;比如电脑&#xff0c;鼠标&#xff0c;键盘&#xff0c;杯子&#xff0c;行李箱&#xff0c;双肩包&#xff0c;床&#xff0c;椅子等 1. 硬件设备 树莓派 5 raspberrypi.com/products/raspberry-pi-5/树莓派官方摄…

大数据-245 离线数仓 - 电商分析 缓慢变化维 与 拉链表 SCD Slowly Changing Dimensions

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; Java篇开始了&#xff01; 目前开始更新 MyBatis&#xff0c;一起深入浅出&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff0…

【LeetCode: 160. 相交链表 + 链表】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

从爱尔兰歌曲到莎士比亚:LSTM文本生成模型的优化之旅

上一篇&#xff1a;《再用RNN神经网络架构设计生成式语言模型》 序言&#xff1a;本文探讨了如何通过多种方法改进模型的输出&#xff0c;包括扩展数据集、调整模型架构、优化训练数据的窗口设置&#xff0c;以及采用字符级编码。这些方法旨在提高生成文本的准确性和合理性&am…

51c大模型~合集86

我自己的原文哦~ https://blog.51cto.com/whaosoft/12772867 #MILP-StuDio 拆解高复杂运筹问题的砖石&#xff0c;打破数据稀缺的瓶颈&#xff0c;中科大提出高质量运筹数据生成方法 论文作者刘昊洋是中国科学技术大学 2023 级硕士生&#xff0c;师从王杰教授&#xff0c;…

从零用java实现 小红书 springboot vue uniapp (1)

前言 偶尔会用小红书发一些笔记 闲来无事 想自己实现一个小红书 正好可以学习一下 帖子 留言 im 好友 推送 等功能 下面我们就从零 开发一个小红书 后台依旧用我们的会员系统的脚手架 演示 http://120.26.95.195:8889/ 客户端我们使用uniapp 我们首先对主页进行一个分解 顶部我…

pyside6学习专栏(一)常用控件的使用(非QML方式)

前段业余时间在用pythonpyqt5边学边作一些小程序&#xff0c;总算作到了一个相对复杂的基本VTK三维显示地形图并计算挖填方工程量&#xff0c;作完后&#xff0c;又发现pyqt又是要收费的&#xff0c;就又看了下对应的替代库pyside6,对用此库的一些基本技能分享到此专栏中&#…

活动|华院计算董事长宣晓华应邀出席2024科创大会并作圆桌嘉宾

2024科创大会在上海举行&#xff0c;由中央广播电视总台和上海市人民政府共同主办。本次大会以“创新驱动 新质未来”为主题&#xff0c;来自知名院校、科研机构的专家学者以及科技企业、金融机构的相关负责人共聚一堂&#xff0c;探讨人工智能、生物医药等产业应用前景&#x…

计算机网络-IPSec VPN工作原理

一、IPSec VPN工作原理 昨天我们大致了解了IPSec是什么&#xff0c;今天来学习下它的工作原理。 IPsec的基本工作流程如下&#xff1a; 通过IKE协商第一阶段协商出IKE SA。 使用IKE SA加密IKE协商第二阶段的报文&#xff0c;即IPsec SA。 使用IPsec SA加密数据。 IPsec基本工作…