LNMP架构搭建Discuz论坛教程

17 篇文章 0 订阅
15 篇文章 0 订阅

文章目录

前言:本文以LNMP(linux+nginx+mysql+php)为基础架构,结合php的扩展程序redis来搭建discuz论坛,如有不足欢迎大家指正。

一、安装linux(centos7)系统

1.1、创建虚拟机

打开虚拟机软件(VMware Workstation),在主页中点击创建新的虚拟机。
在这里插入图片描述

1.2、选择安装类型配置

安装类型选择“典型安装
在这里插入图片描述

1.3、安装来源

选择“稍后安装操作系统”选项

在这里插入图片描述

1.4、选择客户机操作系统

选择Linux系统,版本选择CentOS 7 64 位
在这里插入图片描述

1.5、命名虚拟机

在这里插入图片描述

1.6、指定磁盘容量

在这里插入图片描述

1.7、自定义虚拟机配置

点击“自定义硬件”,配置虚拟机内存、处理器、镜像挂载源以及虚拟机的网络模式。
在这里插入图片描述
在这里插入图片描述

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

1.8、开启虚拟机

点击“开启虚拟机”按钮。
在这里插入图片描述
鼠标点击系统安装界面,鼠标会消失在操作台,点后使用键盘上下键,选择安装的模式:一般都会选择第一个,第二个会检查镜像完整度,比较耗费时间。模式显示白色,表示被选中。
在这里插入图片描述

1.9、选择系统语言

安装时尽量选择英文操作系统,这样出现错误信息后,容易在公网上找到报错原因。
在这里插入图片描述

1.10、配置时间/时区、硬盘分区、系统安装类型、以及系统的网络

在这里插入图片描述

1.10.1、时间选择

使用“亚洲—上海”时间
在这里插入图片描述

1.10.2、系统类型选择

系统安装选择带GUI的系统。
在这里插入图片描述

1.10.4、硬盘分区
1.10.4.1、分区模式

分区时,选择自定义分区模式(I Will Configure Partitioning),然后点击左上角“Done”,进入详细的分区界面。
在这里插入图片描述
选择“Standard Partition”,然后点击 + 号
在这里插入图片描述

1.10.4.2、 /Boot 分区

在这里插入图片描述

1.10.4.3、/swap 分区

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

1.10.4.4、/分区

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

1.10.5、配置操作系统网络

在这里插入图片描述
网络按钮选择“ON”。
在这里插入图片描述
配置时间、系统安装类型、分区以及网络后,点击右下角“begin installation”按钮进入系统正式安装界面。
在这里插入图片描述

1.11、设置boot密码

给root用户设置密码,同时也可以创建其他用户。
在这里插入图片描述
设置密码是时,有密码复杂度策略限制,尽量满足复杂度要求,Weak表示密码复杂度较弱,不满足要求。如果想用弱密码可以连续按2次“Done”按钮会跳过密码复杂度测试。
在这里插入图片描述

1.12、系统安装完成重启虚拟机

点击右下角“reboot”按钮,重启虚拟机。
在这里插入图片描述

1.13、接受license 许可

系统重启后,需要接受license 许可才能正式使用系统,过程如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.14、操作系统登录界面

点击用户,输入密码登录系统。进入系统后根据如下提示进行继续操作。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击“Start Using CengtOS linux”,开始正式使用操作系统,出现如下提示界面,点击关闭即可。
在这里插入图片描述

二、安装nginx

nginx的安装用很多种方法,这里我们以源码编译安装为例:

2.1、 安装编译环境和依赖库等

yum -y install gcc gcc-c++ make zlib-devel pcre-devel openssl-devel

在这里插入图片描述

2.2、下载nginx 源码包

使用wget命令下载nginx源码包。
下载地址: http://nginx.org/download/nginx-1.24.0.tar.gz

wget http://nginx.org/download/nginx-1.24.0.tar.gz

在这里插入图片描述

2.3、解压nginx-1.24.0.tar.gz

tar -xzvf nginx-1.24.0.tar.gz

生成目录nginx-1.24.0
在这里插入图片描述

2.4、进入目录nginx-1.24.0

cd nginx-1.24.0

进入目录可以发现预编译需要的文件configure
在这里插入图片描述

2.5、 预编译

预编译前。建立一个系统用户www(自己定义名字,为了管理方便最好和后面的PHP用一个用户)。

useradd -r www
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

上面两条命令可以一起执行,命令之间要英文分号隔开。
在这里插入图片描述
在这里插入图片描述

2.6、编译 make

make

在这里插入图片描述
编译完成
在这里插入图片描述

2.7、安装 make install

make install

在这里插入图片描述

2.8、查看安装信息:

进入nginx执行程序所在目录

cd /usr/local/nginx/sbin/

执行 ./nginx -v
在这里插入图片描述

2.9、启动nginx

进入目录 /usr/local/nginx/sbin/,执行如下命令

 /usr/local/nginx/sbin/nginx

使用如下命令查看nginx是否启动

ps -ef |grep nginx

在这里插入图片描述

2.10、关闭防火墙

[root@localhost nginx-1.24.0]# systemctl stop firewalld
[root@localhost nginx-1.24.0]# systemctl disable firewalld

2.11、用浏览器测试nginx

在浏览器输入http://192.168.1.103,IP地址要写自己nginx所在机器的。出现welcom to nginx界面表示安装成功。
在这里插入图片描述

2.12、配置nginx的service

2.12.1、使用vim编辑器创建nginx服务文件
[root@localhost nginx-1.24.0]# vim /lib/systemd/system/nginx.service

在这里插入图片描述
在nginx.service文件中配置以下内容:

[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target
2.12.2、重新加载服务

重新加载服务的命令:

[root@localhost nginx-1.24.0]# systemctl daemon-reload

在这里插入图片描述

2.12.3、停止当前启动的nginx进程

查看进程ID

[root@localhost nginx-1.24.0]# ps -ef |grep nginx

我这里主进程是5858,子进程是5859。(注意有几个cpu 的核心就有几个子进程)

[root@localhost nginx-1.24.0]# kill 5858

在这里插入图片描述

2.12.4、使用服务的方式测试启动

启动服务

[root@localhost nginx-1.24.0]# systemctl start nginx.service

查看启动进程

[root@localhost nginx-1.24.0]# ps -ef |grep nginx

在这里插入图片描述

2.12.5、再次浏览器测试

在这里插入图片描述

2.12.6、测试停止服务

停止服务

[root@localhost nginx-1.24.0]# systemctl stop nginx.service

查看进程

[root@localhost nginx-1.24.0]# ps -ef |grep nginx

在这里插入图片描述

2.12.7、设置服务开机启动

服务开机启动

[root@localhost nginx-1.24.0]# systemctl enable nginx.service

注意:服务的开机启动最好是测试好了启/停服务后再设置。
在这里插入图片描述

2.12.8、重启操作系统

重新启动操作系统后查看启动进程

[root@localhost ~]#ps -ef |grep nginx

在这里插入图片描述

2.12.9、浏览器测试

在这里插入图片描述

三、安装MySQL

3.1、创建存放Mysql安装包的目录

我这里创建的是/date/download/

[root@localhost ~]# mkdir -p /date/download/

3.2、将文件上传至指定的目录

我这里时/date/download/
可以使用第三方工具上传。

3.3、解压安装包

[root@localhost ~]# cd /date/download/
[root@localhost download]# tar -xvf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar

3.4、安装开始前卸载系统自带的mysql库

系统自带的数据库版本较低/而且会和新版本的冲突,主要是会和mysql8要安装的lib组件冲突

[root@localhost download]# yum remove -y mysql-libs

3.5、安装(全局的依赖common,必须第一个装

[root@localhost download]# rpm -ivh mysql-community-common-8.0.33-1.el7.x86_64.rpm

3.6、安装(安装lib的依赖

[root@localhost download]# rpm -ivh mysql-community-icu-data-files-8.0.33-1.el7.x86_64.rpm

icu也可在安装完rpm -ivh mysql-community-client后安装

[root@localhost download]# rpm -ivh mysql-community-client-plugins-8.0.33-1.el7.x86_64.rpm

3.7、安装lib(client 和 server 都依赖它

[root@localhost download]# rpm -ivh mysql-community-libs-8.0.33-1.el7.x86_64.rpm

3.8、安装mysql的客户端

[root@localhost download]# rpm -ivh mysql-community-client-8.0.33-1.el7.x86_64.rpm

3.9、安装服务端

必须先客户端后服务端

[root@localhost download]# rpm -ivh mysql-community-server-8.0.33-1.el7.x86_64.rpm

3.10、启动服务

启动数据库

[root@localhost download]# systemctl start mysqld.service

3.11、查看数据库是否启动

[root@localhost download]# ps -ef | grep mysql 

在这里插入图片描述

3.12、在日志里查找root初始密码

启动MySQL服务后才能有此日志,如果从来没有启动过,是不会有这个日志的

[root@localhost download]# grep 'temporary password' /var/log/mysqld.log
2023-07-31T02:01:35.329394Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: )A5x(xuXugP=

初始密码是:)A5x(xuXugP=
密码修改过后,初始密码就失效。

3.13、使用mysql的客户端去验证一下

[root@localhost download]# mysql -u root -p

在这里插入图片描述
mysql 是客户端命令
-u 表示用户,
-p 表示密码,实际使用当中,一般不把密码写在这里,而是直接敲回车(如果写上密码,从历史记录中可以查看到此密码,非常不安全)
在这里插入图片描述

3.14、设置开机启动

[root@localhost download]# systemctl enable mysqld.service

3.15、修改密码(mysql8)

登录数据库,使用如下命令修改密码(不修改密码,数据库不能进行实际的操作)。

[root@localhost download]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.34 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Pa55Word@#';

root:是用户名 , localhost表示本地登录数据库的一个用户可以设置多个密码,可以在不能的环境下登录数据库。Pa55Word@#:修改后的密码
在这里插入图片描述
修改密码后登录测试新密码:
在这里插入图片描述

四、安装PHP

这里我们使用yum安装的方式安装PHP。

4.1、 安装epel源

[root@localhost vhosts]# yum install -y epel-release

在这里插入图片描述

4.2、安装remi源

[root@localhost vhosts]# yum install https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm

在这里插入图片描述

4.3、安装php插件

[root@localhost vhosts]# yum --enablerepo=remi install -y php74-php php74-php-gd php74-php-xml php74-php-sockets php74-php-session php74-php-snmp php74-php-mysql

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

4.4、安装PHP

[root@localhost vhosts]# yum install -y php74-php-fpm

在这里插入图片描述

4.5、查看版本信息

[root@localhost vhosts]# php74 -v

在这里插入图片描述

4.6、启动php

启动服务

[root@localhost vhosts]# systemctl start php74-php-fpm

查看启动进程

[root@localhost vhosts]# ps -ef |grep php74-php-fpm

在这里插入图片描述

4.7、设置开机启动

[root@localhost vhosts]# systemctl enable php74-php-fpm

在这里插入图片描述

4.8、链接php文件

为了方便以后直接通过php命令来执行php脚本,做一个软链接。(此步可以不做)
在这里插入图片描述

五、安装redis

5.1、 安装gcc-c++

执行安装命令

[root@localhost ~]# yum install -y gcc-c++

安装完成后使用gcc -v查看安装及版本信息

[root@localhost ~]# gcc -v

在这里插入图片描述

5.2、创建存放redis安装包

创建目录

[root@localhost ~]# mkdir -p /date/download/redis

进入目录

[root@localhost ~]# cd /date/download/redis/

5.3、下载安装包

下载安装包

[root@localhost redis]# wget http://download.redis.io/releases/redis-7.0.12.tar.gz

5.4、解压安装包

解压安装包

[root@localhost redis]# tar -xzvf  redis-7.0.12.tar.gz

在这里插入图片描述

5.5、安装redis

解压完成后,进入解压后的目录redis-7.0.12,执行命令
make PREFIX=/usr/local/redis install

[root@localhost redis]# ls
redis-7.0.12  redis-7.0.12.tar.gz
[root@localhost redis]# cd redis-7.0.12/
[root@localhost redis-7.0.12]# make PREFIX=/usr/local/redis install

在这里插入图片描述

5.6、拷贝配置文件到安装目录下

将解压后目录中的配置文件拷贝到安装目录下

[root@localhost redis-7.0.12]# cp redis.conf /usr/local/redis/

在这里插入图片描述

5.7、启动redis

redis的默认启动方式是通过执行绝对路径和配置文件来启动

[root@localhost redis-7.0.12]# /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf

这种启动方式有一个弊端,是前台运行服务,运行的服务一直占用当前会话框,需要一直运行当前会话框才能保持服务的运行,如果使用ctr+c终止的话,redis服务也会停止。
为了启动方便在下面的5.9节中,制作redis服务来启动redis。
在这里插入图片描述

5.8、配置环境变量,使用redis-cli工具

配置环境变量,使用redis-cli工具来操作redis-server。如果不配置需要通过执行绝对路径/usr/local/redis/bin/redis-cli来使用此工具。
编辑/etc/profile文件,在末尾加入export PATH=/usr/local/redis/bin:$PATH
然后source来刷新配置文件

[root@localhost redis-7.0.12]# vim /etc/profile
[root@localhost redis-7.0.12]# source /etc/profile

在这里插入图片描述
配置好后可以直接用用redis-cli来连接redis-server
在这里插入图片描述
结束redis服务可以使用redis-cli -p 6379 shutdown 命令

[root@localhost ~]# redis-cli -p 6379 shutdown

在这里插入图片描述

5.9、配置redis的后台服务

将redis的启动做成后台服务的形式来实现,使用vim编辑配置文件/etc/systemd/system/redis.service,配置以下内容。

[root@localhost redis-7.0.12]# vim /etc/systemd/system/redis.service
[Unit]
Description=redis-server
After=netwrok.target

[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

在这里插入图片描述

5.10、刷新服务配置并重启redis

刷新服务配置

[root@localhost redis-7.0.12]# systemctl daemon-reload

启动redis

[root@localhost redis-7.0.12]# systemctl start redis

Redis服务已启动,但是命令systemctl start redis
一直在执行状态,没有返回状态,只能ctrl+c强制返回。
在这里插入图片描述
停止redis服务

[root@localhost redis-7.0.12]# systemctl stopt redis

修改redis的配置文件/usr/local/redis/redis.conf,将daemonize设置成yes

[root@localhost redis-7.0.12]# vim /usr/local/redis/redis.conf

在这里插入图片描述
再次启动redis,状态正确:

[root@localhost redis-7.0.12]# systemctl start redis
[root@localhost redis-7.0.12]# ps -ef |grep redis

在这里插入图片描述

六、配置nginx、mysql、以及PHP

6.1、编辑nginx的配置文件,在末尾加入include vhosts/*.conf;

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
        include vhosts/*.conf;

}

在这里插入图片描述

6.2、 在nginx的 /usr/local/nginx/conf/目录下创建vhosts目录

[root@localhost ~]# mkdir -p /usr/local/nginx/conf/vhosts/

6.3、创建discuz.conf的配置文件

用vim编辑器在目录 /usr/local/nginx/conf/vhosts/下创建discuz.conf文件,并添加以下内容:

[root@localhost ~]# vim /usr/local/nginx/conf/vhosts/discuz.conf

配置内容:

server{
     listen 80;
     server_name discuz;
     index index.html index.php;
     location ~\.php(.*)$ {
         root /data/html/discuz;
         fastcgi_pass 127.0.0.1:9000;
         fastcgi_index index.php;
         fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         fastcgi_param PATH_INFO $fastcgi_path_info;
         fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
         include       fastcgi_params;

}
      location /
      {
               root /data/html/discuz;

}

}

在这里插入图片描述

6.4、测试配置文件是否正确

[root@localhost vhosts]# /usr/local/nginx/sbin/nginx -t

在这里插入图片描述

6.5、创建存在discuz论坛代码的目录

创建目录/data/html/discuz

[root@localhost vhosts]# mkdir -p /data/html/discuz/

6.6、创建phpinfo.php文件

在目录/data/html/discuz中创建phpinfo.php文件,写入以下内容:

<?php
echo phpinfo();
?>

保存退出配置文件。

6.7、重启nginx

重启nginx

[root@localhost vhosts]# systemctl restart nginx

6.8、安装PHP-Redis连接驱动

只有安装好此PHP-Redis连接驱动,PHP才能支持redis扩展模块。

[root@localhost module]# yum -y install php74-php-redis

注意:我去module目录查了个文件,就留在module目录下了。大家仍然在[root@localhost vhosts]#下安装就行。
在这里插入图片描述

6.9、测试php中的redis扩展是否成功

重启php

[root@localhost vhosts]# systemctl restart php74-php-fpm

在浏览器访问http://discuz/phpinfo.php 在当前页面使用ctrl+f 搜索redis。
如果有redis 表示redis扩展成功。
在这里插入图片描述

6.10、修改php配置文件

[root@localhost vhosts]# vim /etc/opt/remi/php74/php-fpm.d/www.conf

将配置文件的
user = www
group = www

在这里插入图片描述

6.11、配置数据库mysql

6.11.1、登录数据库
[root@localhost vhosts]# mysql -u root -p
6.11.2、创建discuz库和用户discuz,并赋予用户对数据库的权限
mysql> CREATE USER 'discuz'@'%' IDENTIFIED WITH mysql_native_password BY 'Pa55Word@#';
Query OK, 0 rows affected (0.03 sec)
mysql> GRANT ALL PRIVILEGES  ON *.* TO 'discuz'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

注意mysql数据库的命令最后都有一个英文的分号结尾。

七、下载及上传代码

7.1、下载代码

官网:https://www.discuz.vip/download.html
在这里插入图片描述

7.2、上传代码

将论坛discuz的代码包上传至目录 /data/html/discuz/,并删除phpinfo.php,然后解压discuz代码包。

[root@localhost date]# cd /data/html/discuz/ 
[root@localhost discuz]# rm phpinfo.php
[root@localhost discuz]# unzip Discuz_X3.5_SC_UTF8_20230726.zip

在这里插入图片描述

7.3、复制代码到目录

移除代码压缩包到其他备份目录,方便以后使用,也可以删除代码压缩包。
将解压出的upload目录内的所有内容复制到discuz目录下,删除upload目录。
注意复制时不要包含目录upload自身,只是复制目录内的所有内容。

[root@localhost discuz]# cp -r ./upload/* ./
[root@localhost discuz]# rm -rf upload/

在这里插入图片描述

7.4、修改目录属性

退回discuz的上一级目录,将目录discuz 的属主和属组都改成www。

[root@localhost discuz]# cd ..
[root@localhost html]#
[root@localhost html]# chown -R www:www discuz/

在这里插入图片描述

八、安装Discuz论坛

8.1、登录论坛地址

在浏览器登录http://discuz/(如果是云主机的话可以绑定自己的域名,我这里用虚拟机做实验),出现discuz安装向导页面,点击同意。
在这里插入图片描述

8.2、环境检测

检测环境通过后,点击下一步
在这里插入图片描述

8.3、安装模式

安装模式根据自己的需求去安装,我这里做演示选择第一个。
选择全新安装discuz(独立模式),继续下一步。
在这里插入图片描述

8.4、输入数据库和discuz管理员信息

数据库填写上面我们已经配置好的,管理员信息是初始填写,以后管理discuz论坛用,自己保管好。
输入数据库的信息和管理员信息后点击下一步。
在这里插入图片描述

8.5、等待Discuz安装完成

在这里插入图片描述

8.6、安装完成后访问站点

在这里插入图片描述
至此Discuz论坛安装完成,自己可以进入论坛维护论坛信息了。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值