• LNMP架构:搭建Discuz论坛


    1. 编译安装Nginx

    1.1 前置准备

    systemctl stop firewalld
    setenforce 0
    #关闭防火墙和selinux服务
    
    yum -y install pcre-devel zlib-devel gcc gcc-c++ make
    #安装依赖包
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    useradd -M -s /sbin/nologin nginx
    #Nginx 服务程序默认以 nobody 身份运行,为其创建专门的用户账号,以便更准确地控制其访问权限
    
    • 1
    • 2

    1.2 编译安装

    cd /opt
    
    tar zxvf nginx-1.22.0.tar.gz -C /opt/
    #解压缩源码包
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    cd nginx-1.22.0/
    #搭建编译环境
    ./configure --prefix=/apps/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 -j2 && make install
    #编译并安装
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在这里插入图片描述

    ln -s /apps/nginx/sbin/nginx /usr/sbin/
    #让系统识别nginx的操作命令
    
    • 1
    • 2

    1.3 添加nginx系统服务

    vim /lib/systemd/system/nginx.service
    
    • 1
    vim /usr/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=/apps/nginx/logs/nginx.pid
    #注意文件位置,如果不对 启动不了
    ExecStart=/apps/nginx/sbin/nginx -c /apps/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
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    在这里插入图片描述

    2.编译安装MySql

    2.1 前置准备

    yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake
    #安装Mysql环境依赖包
    
    useradd -M -s /sbin/nologin  mysql
    #创建运行用户
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.2 编译安装

    cd /opt
    tar zxvf mysql-boost-5.7.20.tar.gz
    #解压缩软件包
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    cd /opt/mysql-5.7.20/
    
    #搭建编译环境
    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_EXTRA_CHARSETS=all \
    -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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    在这里插入图片描述

    make -j2 && make install
    #编译并安装
    
    • 1
    • 2

    在这里插入图片描述

    2.3 修改mysql 配置文件

    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                    #设置服务器字符集编码格式为utf8
    pid-file = /usr/local/mysql/mysqld.pid       #指定pid 进程文件路径
    socket = /usr/local/mysql/mysql.sock         #指定数据库连接文件
    server-id = 1                                #指定服务ID号
    
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    #更改mysql安装目录和配置文件的属主属组
    chown -R mysql:mysql /usr/local/mysql/
    chown mysql:mysql /etc/my.cnf
    
    • 1
    • 2
    • 3

    2.4 设置路径环境变量

    echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
    
    echo 'export PATH' >> /etc/profile
    
    source /etc/profile  #刷新使其生效
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.5 初始化数据库

    cd /usr/local/mysql/bin/
    
    ./mysqld \                        
    --initialize-insecure \              #生成初始化密码为空
    --user=mysql \                       #指定管理用户
    --basedir=/usr/local/mysql \         #指定数据库的安装目录
    --datadir=/usr/local/mysql/data      #指定数据库文件的存储路径
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    2.6 添加musql系统服务

    cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
    #使其能使用systemd服务
    
    • 1
    • 2
    systemctl daemon-reload          刷新识别    
    systemctl start mysqld.service   开启服务
    systemctl enable mysqld          开机自启动
    ss -anpt | grep 3306 |tr -s ' '       查看端口
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    2.7 修改MySql登录密码

    mysqladmin -u root -p password "abc123" 
    #刚开始没密码是空的直接回车
    
    • 1
    • 2

    在这里插入图片描述

    mysql -u root -p     
    #这个命令敲下,提示要输入密码,这个就是刚才设置的密码abc123
    
    • 1
    • 2

    在这里插入图片描述

    3. 编译安装PHP

    3.1 前置准备

    #安装GD库和GD库关联程序,用来处理和生成图片
    
    yum -y install \
    gd \
    libjpeg libjpeg-devel \
    libpng libpng-devel \
    freetype freetype-devel \
    libxml2 libxml2-devel \
    zlib zlib-devel \
    curl curl-devel \
    openssl openssl-devel
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

    tar xf php-7.1.10.tar.bz2
    #解压软件模块
    
    • 1
    • 2

    3.2 编译安装

    cd php-7.1.10
    
    ./configure \
    --prefix=/usr/local/php7 \							指定将 PHP 程序的安装路径
    --with-apxs2=/usr/local/httpd/bin/apxs \			指定Apache httpd服务提供的apxs 模块支持程序的文件位置
    --with-mysql-sock=/usr/local/mysql/mysql.sock \		指定mysql 数据库连接文件的存储路径
    --with-config-file-path=/usr/local/php7				设置 PHP 的配置文件 php.ini 将要存放的位置
    --with-mysqli \										添加 MySQL 扩展支持
    --with-zlib \										支持zlib功能,提供数据压缩
    --with-curl \										开启curl扩展功能,实现HTTP的Get下载和Post请求的方法
    --with-gd \											激活gd 库的支持
    --with-jpeg-dir \									激活jpeg 的支持
    --with-png-dir \									激活png 的支持
    --with-freetype-dir \
    --with-openssl \
    --enable-mbstring \									启用多字节字符串功能,以便支持中文等代码
    --enable-xml \										开启扩展性标记语言模块
    --enable-session \									会话
    --enable-ftp \										文本传输协议
    --enable-pdo \										函数库
    --enable-tokenizer \								令牌解释器
    --enable-zip										ZIP压缩格式
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    在这里插入图片描述

    make -j2 && make install
    #编译并安装
    
    • 1
    • 2

    在这里插入图片描述

    3.3 复制模版文件作为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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

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

    3.4 把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别

    ln -s /usr/local/php/bin/* /usr/local/bin/
    ln -s /usr/local/php/sbin/* /usr/local/sbin/
    
    
    php -m 
    #查看php加载了那些模块
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    3.5 调整进程服务配置文件

    cd /usr/local/php/etc/
    
    cp  php-fpm.conf.default php-fpm.conf
    
    vim php-fpm.conf
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    3.6 调整扩展配置文件

    cd /usr/local/php/etc/php-fpm.d/
    
    cp www.conf.default www.conf
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    3.7 启动php-fpm

    /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
    #PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器, 由于Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析。
    
    ss -natp |grep 9000|tr -s " "
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    cd /opt/php-7.1.10/sapi/fpm
    
    cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
    #拷贝模板文件
    systemctl restart php-fpm.service
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    3.8 配置 Nginx 支持 PHP 解析

    vim /apps/nginx/conf/nginx.conf
    #编辑主配置文件
    
    • 1
    • 2

    在这里插入图片描述

    sytemctl restart nginx
    #重启服务
    
    • 1
    • 2

    3.9 验证PHP测试页

    #创建网页文件
    vim /apps/nginx/html/index.php
    
    <?php
    phpinfo();
    ?>
    
    #重启nginx服务
    systemctl restart nginx
    
    #在网页测试
    http://192.168.67.100/index.php
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在这里插入图片描述

    4. 搭建Discuz论坛

    4.1 创建数据库并进行授权

    #验证数据库工作是否正常
    mysql -u root -p
    
    
    CREATE DATABASE bbs;
    GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
    GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
    flush privileges;
    #刷新数据库
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    show databases;
    #查看当前创建数据库
    
    • 1
    • 2

    在这里插入图片描述

    4.2 解压论坛压缩包并上传站点压缩包

    unzip Discuz_X3.4_SC_UTF8.zip  
    
    cd /opt/dis/dir_SC_UTF8/
    cp -r upload/ /apps/nginx/html/bbs/
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    4.3 调整论坛目录的权限

    #改权限 改属组属主
    cd /apps/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/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    4.4 安装Discuz论坛

    http://192.168.67.100/bbs/install/index.php
    
    • 1

    进入安装向导界面
    在这里插入图片描述
    进入开始安装界面
    在这里插入图片描述
    设置运行环境
    在这里插入图片描述

    进入安装数据库界面,等待安装完成

    在这里插入图片描述

    访问论坛

    http://192.168.67.100/bbs/index.php
    
    • 1

    在这里插入图片描述

  • 相关阅读:
    javascript中先加加和后加加区别 ++a,a++
    复杂网络中的模体motif(python模体检测和随机网络生成)
    qt作业day5
    湖科大计网:传输层
    MyBatis 源码系列:MyBatis 解析配置文件、二级缓存、SQL
    Interview preparation--案例加密后数据的模糊查询
    textarea标签改写为富文本框编辑器KindEditor
    猜数字游戏
    【mysql 大表清理】磁盘占用太多,清理无效大表
    面经-虚拟机-类加载
  • 原文地址:https://blog.csdn.net/m0_74170357/article/details/132650061