LNMP架构之搭建Discuz论坛

news2024/11/18 13:29:46

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 firewalld

setenforce 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.target


systemctl 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 = 1

sql_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.conf

vim 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.ini

ss -napt | grep 9000

在这里插入图片描述

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

systemctl 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.coloradmin.cn/o/946630.html

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

相关文章

【流量分析】Godzilla分析

一、哥斯拉流量的特点&#xff1a; 1.User-Agent (弱特征) 哥斯拉客户端使用JAVA语言编写&#xff0c;在默认的情况下&#xff0c;如果不修改User-Agent&#xff0c;User-Agent会类似于Java/1.8.0_121&#xff08;具体什么版本取决于JDK环境版本&#xff09;。但是哥斯拉支持…

Pytest参数详解 — 基于命令行模式

1、--collect-only 查看在给定的配置下哪些测试用例会被执行 2、-k 使用表达式来指定希望运行的测试用例。如果测试名是唯一的或者多个测试名的前缀或者后缀相同&#xff0c;可以使用表达式来快速定位&#xff0c;例如&#xff1a; 命令行-k参数.png 3、-m 标记&#xff0…

K-Means(K-均值)聚类算法理论和实战

目录 K-Means 算法 K-Means 术语 K 值如何确定 K-Means 场景 美国总统大选摇争取摆选民 电商平台用户分层 给亚洲球队做聚类 ​编辑 其他场景 K-Means 工作流程 K-Means 开发流程 K-Means的底层代码实现 K-Means 的评价标准 K-Means 算法 对于 n 个样本点来说&am…

unity VS无法进行断点调试

有时候我们的VS无法进行断点调试&#xff0c;报错如下&#xff1a; 原因是&#xff1a;开启了多个项目&#xff0c;vs无法找到调式项目 解决&#xff1a;点击菜单栏--调试----附加unity调试程序 会弹出一个框&#xff0c;然后选择你要调试的项目 即可

长安链并行调度机制(1):交易调度与冲突检测流程

长安链采用高效的并行调度方式执行交易&#xff0c;了解长安链交易调度、冲突检测和DAG构建流程有助于开发者更好地理解长安链并行调度的运行机制&#xff0c;帮助开发者编写高质量、低冲突的智能合约&#xff0c;更好地构建区块链应用。 我们将用两篇文章说明长安链交易调度、…

Linux特殊指令

目录 1.dd命令 2.mkfs格式化 3.df命令 4.mount实现硬盘的挂载 5.unshare 1.dd命令 dd命令可以用来读取转换并输出数据。 示例一&#xff1a; if表示infile&#xff0c;of表示outfile。这里的/dev/zero是一个特殊文件&#xff0c;会不断产生空白数据。 bs表示复制一块的大…

ZLMediaKit 重建docker包

1.下载容器到本地服务器并运行 #此镜像为github持续集成自动编译推送&#xff0c;跟代码(master分支)保持最新状态 docker run -id -p 1935:1935 -p 8080:80 -p 8443:443 -p 8554:554 -p 10000:10000 -p 10000:10000/udp -p 8000:8000/udp -p 9000:9000/udp zlmediakit/zlmedi…

阿姆达尔定律(Amdahl‘s Law)通俗解释

阿姆达尔定律&#xff08;Amdahl’s Law&#xff09;&#xff0c;它描述了在对系统的某个部分进行加速时&#xff0c;该部分对整体系统性能的影响&#xff0c;取决于该部分的重要性和加速程度。 原书给的例子不太好懂&#xff0c;下面是一个更好懂的例子。 例子&#xff1a;汽车…

Python数据分析实战-修改 DataFrame 中的字段(列)名(附源码和实现效果)

实现功能 修改 DataFrame 中的字段&#xff08;列&#xff09;名 实现代码 import pandas as pd# 创建一个示例 DataFrame df pd.DataFrame({A: [1, 2, 3], B: [4, 5, 6], C: [7, 8, 9]})# 使用 rename 方法修改列名这,将返回一个新的 DataFrame&#xff0c;其中列名已更改…

构建产品帮助中心:SaaS产品帮助中心必备要素,需要规避的问题

帮助中心本来是为了帮助客户解决问题&#xff0c;了解产品价值&#xff0c;例如&#xff1a;产品使用手册、新手入门视频、核心功能的操作演示、常见问题FAQ都可以当作产品帮助中心的范畴。 以SaaS产品为例&#xff0c;开发帮助中心需要具备内容展示、搜索查询、文档理解等三大…

三分钟了解车规级芯片的特点

汽车已经不再只是一种交通工具&#xff0c;而是一个复杂的智能系统。现代汽车配备了许多电子设备和系统&#xff0c;如发动机控制单元&#xff08;ECU&#xff09;、安全气囊系统、防抱死刹车系统&#xff08;ABS&#xff09;、自动驾驶功能、娱乐系统等。这些系统需要可靠的电…

蒲公英路由器如何设置远程打印?

现如今&#xff0c;打印机已经是企业日常办公中必不可少的设备&#xff0c;无论何时何地&#xff0c;总有需要用到打印的地方&#xff0c;包括资料文件、统计报表等等。 但若人在外地或分公司&#xff0c;有文件急需通过总部的打印机进行打印时&#xff0c;由于不在同一物理网络…

MFC网络编程简单例程

目录 一、关于网络的部分概念1 URL(网址)及URL的解析2 URL的解析3 域名及域名解析3 IP及子网掩码4 什么是Web服务器5 HTTP的基本概念6 Socket库概念7 协议栈8 Socket库收发数据基本步骤 二、基于TCP的网络应用程序三、基于UDP的网络应用程序 一、关于网络的部分概念 1 URL(网址…

低代码的探索之路

Gartner发布报告指出&#xff0c;2023年全球低代码开发平台市场规模将达到345亿美元&#xff0c;比2022年增长20%。 目前&#xff0c;国内外已经有许多低代码平台&#xff0c;包括OutSystems、Mendix、Appian、Microsoft Power App等。这些平台提供了丰富的功能和工具&#xff…

故障演练实战

做了两年多的故障演练&#xff0c; 一直想聊聊自己对故障演练的理解&#xff0c;但是每次提起笔都不知道写一些什么。 什么是故障演练 为什么要做故障演练 在没做故障演练之前&#xff0c;我想很多人可能和我有一样的想法&#xff0c;我的系统跑了好多年&#xff0c;也没出什么…

Docker容器数据持久化

Docker容器数据持久化 Docker容器数据卷&#xff1a;volumes 1、什么是数据卷&#xff1f; 数据卷是经过特殊设计的目录&#xff0c;可以绕过联合文件系统&#xff0c;为一个或者多个容器提供访问&#xff0c;数据卷设计的目的&#xff0c;在于数据的永久存储&#xff0c;它完…

Java-day11(集合)

集合 1.集合框架 用于存储数量不等的多个对象&#xff0c;还可用于保存具有映射关系的关联数组 Java集合可分为Collection和Map两种体系 Collection接口 Set:元素无序&#xff0c;不可重复的集合----&#xff08;类似数学中的集合&#xff09; List:元素有序&#xff0c;可重…

linux内网yum源服务器搭建

1.nginx: location / {root /usr/local/Kylin-Server-V10-SP3-General-Release-2303-X86_64;autoindex on;autoindex_localtime on;autoindex_exact_size off; } 注:指定到镜像的包名 2.修改yum源地址 cd /etc/yum.repos.d/vim kylin_x86_64.repo 注: --enabled设置为1 3.重…

Android Studio 的github 工程克隆

上文介绍了Android Studio 里的"Git 建立和简单操作。本文介绍从github 上的工程fork 和clone到本地&#xff0c;然后学习和改进。 本文参考 https://learntodroid.com/how-to-use-git-and-github-in-android-studio/ 克隆clone Github 仓库&#xff1a; 先 Fork 你选择…

仓储23代拣货标签操作指导

服务器使用 V1.4基站已经内置服务程序&#xff0c;无需搭建服务&#xff1b;可跳至第1.4部分 服务器搭建 安装mysql5.7, 创建db_wms数据库并导入原始数据库文件 安装jdk1.8, 配置java环境变量 下载tomca8.0, 部署wms.war到tomcat, 并启动tomcat 下载资源 Windows 64bit: …